Dreaming In Code Review

When I first read the excerpts from the book Dreaming in Code I knew it will be an interesting read. The book chronicles the making of open source PIM application Chandler financed by Mitch Kapor. The idea was to create a world changing Personal Information Manager to manage emails, calendars, notes etc. Lofty goal which ended up being project like Chinese Democracy album Guns n’ Roses are still working on since 1994.

The book is really good read especially for developers and development managers. I am sure that anyone can relate to the things Chandler team went through since this stuff is really common throughout the software industry.

To me though, one thing stuck out. Without constraints almost any software project would run in an infinite loop. In most software projects constraint is money. There is only so long investors will keep on financing a project and team is pressured to deliver within certain time limit or go bust. In Chandler project though, the investor is wealthy and willing enough to keep it going for a very long time without project really delivering.

The financing though is not single constraint but it is usually a big one. You can see how no constraints approach has affected this project from selection of the development language/platform to the actual architecture. Without constraints we all want/need to make the really right choice. To make the right choice we need to investigate and evaluate all possible options. That takes time. In teams especially, people are careful about making a “wrong” decision so this process takes forever. Worst of all the choice that is made very likely is not really a good one either.

Most of the time good enough is really good enough.

For example, Chandler team spent lot of time choosing the right programming language for the project. They ended up choosing Python, but nobody on the team seemed to have experience with Python. However, that was not of a concern it seems, since there was really no constraint on project timing and they are all smart developers. At some point in project, after year or two, the little of the software they had written performed poorly. One of the Python gurus looked over the code and commented “Python is not Java“.

I found they had done lots of things that make sense in Java, but which suck terribly in Python“. Well, duh! I see this repeated over and over again. While it is good thing to review the available technologies before starting project (I love doing that and I am personally guilty as well 🙂 ), one must be aware of the actual cost of using something that team is not experienced with. It is my belief that it takes 6-12 months for the developer to truly be productive on new platform or language. There is no way around it…

It is like seeing .NET component that modifies the static class members of StringFormat in .NET Framework and screws up text output for the whole application. You know right away that it was written by platform newbie…

Would things turn differently if Chandler team had chosen Java over Python, I doubt it, but maybe… Would they turn out differently if they had real constraints on their project scope and timing, I am sure they would.

All in all, really enjoyable read, I highly recommend it.


Year in numbers

I did some number crunching on DotNetBar releases we did past year. I hope you find this informative, I certainly did in hindsight.

2006 DotNetBar Statistics

Number of major releases: 9

Total new features added: 166

Total bugs fixed: 198


While most folks relax over the holidays we’ve been busy improving DotNetBar. As result today we released the 6.4 release which adds new Office 2007 style slider control, both as stand-alone control and light-weight item that you can use on your ribbon control, menus, toolbars and almost anywhere else our items are used. Here is small screenshot of that control:

DotNetBar Office 2007 style Slider Control

We paid very close attention to the control styling and developers that have been using it as beta release say that is the best slider implementation available. I tend to agree, but I am biased 🙂

Try it out, fully functional trial is at: http://www.dotnetbar.com and if you own license already head to our Customer Only web site and download latest release.

There is also lot small improvements in this release to that are just too numerous to list, but as usual you can find details in release notes.
With new Slider control we now include total of 28 controls in DotNetBar Suite, and we are far from done 😉

[tags]DotNetBar, Office 2007, Ribbon Control, Slider Control, VS.NET, Visual Studio, Components, VB, C#, WinForms[/tags]


Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

© 2009 Denis Basaric: DevComponents Blog