Not surprisingly, one of the most common questions I get is when will Chandler be ready. Our original standard answer goes like this: We will first put out code for developers to look at by the end of the year. It will be an extremely partial alpha. Optimistically, we could have a 1.0 by the end of 2003. Pessimistically, it will be 2004. I've never been entirely comfortable with this response, so this is my chance to dissect the issues surrounding Chandler's schedule.
Software, like construction projects, is typically late, sometimes very, very late. It typically takes longer and is much harder than any estimates. There are, of course exceptions, like the original version of Lotus 1-2-3, which shipped exactly on time, and there tend to be exceptional reasons why. In the case of 1-2-3, it was implemented almost entirely by one person, Jonathan Sachs, and it was the fifth time Jon had implemented a spreadsheet. Not only did he know what he was doing, but he had enough experience to accurately estimate how long each part of the coding would take. This was one of the keys. The other was that we had a relatively precise idea of the feature set going into the product. In other words, we both knew what work had to be done, and how long each piece would take. It was possible to roll up the schedule from the bottom up.
With Chandler, it its current state, we don't yet know how fast we're going to be able to go, nor how far we have to get to the first release. This is not so much a matter of poor practice as it is reflective of the early stage we are in. The developers have just started to write production code, which is to say, enough decisions have been made about the fundamental building blocks of the product and how they will be put together, to start to build the actual product. Once we have perhaps three months of development under out belts, it will be possible for the first time to predict our rate of progress. To the extent that the specific tasks to be done have been identified at a fine enough granularity to estimate completion times for each task, it becomes possible to develop more or less reliable schedules using a bottom-up approach. That's the goal, and until then, the most accurate summary answer about a schedule is "we don't really know".
As to the absence of a spec, I think it turns out to be a virtue at present. The features are grounded by a set of commitments (e.g. the preliminary feature list on the web site) which should be thought of not as sketches, not blueprints. What is really thrilling is the depth of thoughtfulness and creativity on OSAF's design mailing list which has ensued. Thank you, participants. I've been reading the 30-50 daily comments and have been truly impressed. I can guarantee the design list will have an enormous impact on the product itself, and I'm hopeful we will have on board very shortly the new staff who will coordinate and distill the conversations there.
Of course, I haven't gone into all of this blindly. I know just how hard it is to ship a fully competent product. Fit and finish issues alone are always incredibly time-consuming. The last 10% of the product can take 50% of the total time. There will necessarily have to be a series of releases over a period of years in which the product will mature. One of the key tricks is in proper sequencing -- teams should build on a firm foundation before trying to erect the shell of the structure. However, if the foundation and shell are secure, some of the rooms do not need to be built out before the occupants move in.
Also, if Chandler is good enough to do what people do currently, and there is a painless migration path, it only takes a handful of killer features to make a great first release. The delay in some or even many of the advanced and specific features for a PIM will no doubt frustrate some people, but if can establish credibility as to the quality and rate of progress, I am guessing most people will give us a break on this.
Another schedule variable has to do with how soon and how effectively development by volunteers can take place. It's an old saw that no matter how many men you put on the job, it still takes nine months to make a baby (and let's not forget the hard work is done by woman). Originally I had not counted on more full-time or most full-time volunteer developers, but it is beginning to look like we'll have some on the team, which is fantastic news. It gives us some choice about moving more quickly vs. having a wider scope for the first release.
One area we are rethinking, based on input from the mailing lists and other sources, is whether also build Chandler from the outset to support large organizations, not just small-to-medium ones. There may be an architecture and protocols which reduce the amount of work to do both to less than the 2x effort I had imagined.
Posted by mitch@osafoundation.org at November 14, 2002 08:26 AMThe people behind OpenOffice.org, another opensource project, are also considering implementing an e-mail client and scheduler.
Why don't you join their forces to get the release date sooner?
I myself am not a programmer, but an end-user of opensource software. Of course, I compare opensource with commercial software, and I have a very strong feeling that the opensource community of programmers is much more concerned with themselves than with the end user of their product. Most of them hope to get noticed by the major companies and then, off they are, ditching the project they're working on, which really explains the 'lateness'.
In short, if the release date is 2004, the technology may be 'old' by then...
Posted by: Ivan L at November 15, 2002 10:40 PM
I fondly remember working my way through the Lotus 1-2-3 v1.0 tutorial in the fall 1983. Whenever something unexpected happened -and it did a lot, for this then newbie- I came to be sure I had made a mistake and that the program was not at fault. I kept looking and, sure enough, there was my typing mistake, hidden in some dark corner of the spreadsheet.
To this day, Lotus 1-2-3 and the name of Mitch Kapor, are, for me, THE ultimate benchmark of software quality.
Good luck, Mitch. There are more people behind you than you can imagine.
Dan de Levy,
simple end user
Posted by: Dan de Levy at November 16, 2002 07:15 PM
Mitch, have you thought about using an agile development methodology to speed delivery of customer value? Agile development and the bazaar "release early, release often" model of Open Source development can go hand-in-hand. Rather than going through a bunch of development releases and then trying to clean things up once they're "feature complete," keep a smaller feature set with each release but ship 1.0, 1.1, 1.2, 2.0 etc. very rapidly. (I'll go so far as to say that the end of 2003 is a great target for 2.0, not 1.0.)
Probably the best four agile practices for delivering customer value quickly are The Planning Game, Unit Testing with a good unit testing framework, Refactoring, and Test-Driven Development. Good descriptions of all can be found in "Extreme Programming Explained" by Kent Beck, or on the c2.com wiki at http://c2.com/cgi/wiki?ExtremeProgramming.
Posted by: Chris Hanson at November 18, 2002 12:55 AM
DESIGN COMMENTS FOR CHANDLER -Privacy controls in BCC
Every day I read about another bank that "accidentally" exposed hundreds or thousands of email addresses by inadvertantly putting them in CC instead of BCC, and have always wondered why it is even POSSIBLE in an email client to make such a mistake.
When designing Chandler, consider :
1) if the user had put several hundred email addresses in the CC list, they probably meant to but them in the BCC list, so automatically move those addresses to BCC
or
2) have a user alert that says "Do you REALLY want to expose 700 email addresses in the cc list?"
Posted by: a believer at November 19, 2002 11:40 AM
Chandler ..great, enabling idea. One suggestion ... the opne source should include a replacement for Palm's software. A PDA and a Wintel app should be fully interchangable and linked.
Posted by: Stephen Schwartz at November 22, 2002 12:36 AM
re: -Privacy controls in BCC
All very well, but I'd suggest making it an option, with a custom threshold.
Not everybody wants to be treated like your average Outlluck user ...
Robin
Posted by: robin benson at December 14, 2002 03:05 PM
Please do consider building a scripting interface which will let people plug some custom code in. This is always so useful... esp in an application like a PIM. With a well defined/published API, of course.
Posted by: _deadfish at December 15, 2002 10:50 PM