Another big link today, this time from the folks at Ajaxian. I sit here wondering
if saying thank you for a link makes me not cool. Kind of like the person who is over star-struck meeting a famous person or something. Personally
I’m not terribly fond of the automated trackbacks (plus, spam has limited their usefulness) and it’s the interconnectedness that makes the web work so I’m
going to do it anyway. Thank you Dion!
The combination of the new interest in that write up and a conversation with a client yesterday of course reminds me of another good story. As we
were developing Exchange 2000 / Outlook Web Access we would meet with Bob Muglia pretty much every week. At the time Bob was our senior VP and was
running a pretty huge organization (I think including all of Office). The amazing thing was that despite the size of his organization he managed to
still be very involved. Execs that combined the ability to get it when they saw something important and at the same time inspire people to drive
hard made that a very exciting place to work.
Outlook Web Access was very much a “catch up” project. We started about halfway through Exchange 2000, and were working very quickly to build as
much functionality as possible. Outlook has an incredibly deep feature set including tasks, this thing called the Journal, and of course tons of
contacts and calendar features. At this point we had gotten the basic mail part working but not much else.
I don’t know how he pulled it off, but when we showed Bob a demo of the mail stuff, he managed to do this really cool thing. He managed to show
how enthusiastic he was about what we had pulled off so far. And at the same time somehow he challenged us something along the lines of “of course
contacts are hard, you probably can’t have contacts working quickly”. The next week we demoed the contact list and again, he was enthusiastic, but of
course the “card” view would be tricky. We managed to go for quite some time and every week Jim and Bob somehow managed to pull off a whole major
section of the application into good enough shape for me to demo it.
I’m pretty sure that Bob and Gord Mangione (our GM) knew the difference between getting something to the point where you can demo it vs. shipping
to enterprise customers. Getting this stuff polished and out the door was a huge effort and considerably less glamorous than those rapid development
days, but I don’t think we would have made it to there without the special kind of encouragement we had at the outset. There is a special balance
you need to strike as a manager to create the right atmosphere so that people feel challenged but not overburdened.
Too often the relationship between a development team and their management is some adversarial one where the development team feels
they need to push back on schedules and challenges. I think one of the sources of this problem rests in our assumptions that software
like other engineering disciplines should be something you can accurately schedule. Developers that can come in on time are thought of
as more professional. Plus, I get how difficult it can be to plan a marketing launch or other business issues that need lots of advance
notice when your developers can’t predict how long it will take to finish.
The sad fact is that as a developer I really dislike being pushed to make an accurate estimate of how long a project is going to take,
and as a program manager I dislike having to push my development team for accurate estimates. It takes the right developers, but if your
business and team can support it, you can get lots more done by not having a fixed schedule, tackling projects incrementally with nice
bite sized steps, and just driving hard to get them done as quickly as possible. Sometimes you will hit roadblocks and something will take
longer than expected, but this model doesn’t leave you feeling guilty for missing some arbitrary schedule and encourages people to think
of different ways around the problem.
In other news I’m thrilled to see that the new version of Prototype, 1.5 is now available. I’ve
enjoyed using this library quite a bit to make Javascript much easier to deal with. I haven’t seen any good summary of what has changed
in the new version yet, stay tuned.