« Shipping WinFS | Main | Monad Providers and UNC Names »

December 12, 2004

Scheduling and Black Hole Projects

Coincidence, I'm sure, that the blogosphere is discussing WinFS on the same day that I read this article about "Black Hole" projects at Microsoft (start at Mini-Microsoft's take for the maximum amount of cynicism/realism).

This point I thought was the most trenchant (note that this should not be interpreted as a comment on WinFS itself): "They must take over any group that does anything that relates to their absurdly broad goals, especially if that group is small, focused, has modest goals and actually has a hope of shipping in a reasonable timeframe."

I do disagree with Frans Bouma's original conspiracy theory that WinFS is late because Microsoft has given it a low priority. I suppose he means we have not allocated enough people to work on it, but as The Mythical Man-Month makes clear, adding more people to a software project that is late just makes it more late. And I doubt the message to the WinFS team was "no pressure, ship whenever you feel like it." But I also don't like Scoble's response, which is full of enabling language and only serves to justify Microsoft making the same mistake again and again.

Here is a little experiment in software scheduling. Assume you have a project that is due to ship in two years, and you do it one of two ways:

A) Schedule two years worth of work, and do it.

B) Schedule four years worth of work (meaning, you think it will take two years but it would really take four), and discover after a year that you are way behind, and cut half the feature set (thus reducing it to what plan A ships).

With plan B, assume half your time during the initial year was wasted because it was working on stuff you wound up cutting. I think this is fair; in some cases you work on the highest-priority stuff (that will be kept) first, but in other cases you spend a lot of time on things that you cut entirely.

Furthermore, assume it takes 3 months to refocus the project to do half the work. Doing only half is a significant cut, so I think 3 months is fair (especially since you probably won't realize right away how much you need to cut, so there will be some churn involved).

Then you have to actually finish the reduced project, and since you have only done 6 months of work on those features, you are still 18 months from shipping.

If you add it up, Plan B takes 2 years and 9 months to do what Plan A does in 2 years. So you waste 3/11 of your time doing it the Plan B way.

More sobering is the fact that AT THE MOMENT YOU REALIZE YOU ARE HOSED (one year into the project), with Plan B you are still 1 year and 9 months from shipping. Which is only 3 months less than if you just toss everything aside and start over with Plan A. In fact you could argue that the benefits of starting clean are worth three months, but I won't.

Posted by AdamBa at December 12, 2004 10:30 PM

Trackback Pings

TrackBack URL for this entry:


Wasn't the point that WinFS was delayed because Microsoft wanted to ship the server version as well as the client? At least that is my recollection from the video I saw on C9.

Posted by: Ross at December 13, 2004 01:47 AM

In your opinion, which was cause and which was effect?

- adam

Posted by: Adam Barr at December 13, 2004 12:06 PM