Microsoft just announced that they’re cutting several key features from their upcoming virtualization technology codenamed “Viridian”. To me this is a case study in some of the differences that you find between closed and open source development. Basically, it comes down to how each methodology grapples with the very first thing you learn about project management.
People at one time hoped that Viridian would ship at the same time as Longhorn Server (LHS), but Microsoft announced that instead, it would end up shipping 6 months after LHS. Apparently, Microsoft has made the decision that Viridian will not be allowed to slip further. In other words, the product has switched from being feature driven to being date driven. On that triangle, “fast” (a.k.a. schedule) just got nailed down.
On projects sometimes cost is self throttling. As they say, nine women and one month doesn’t make a baby. Sometimes you just can’t speed up the schedule by putting more bodies on the job. Viridian has apparently hit this point.
That means that the only thing that can move is “good”. Good encompasses quality, features, performance, and other intrinsics. Unless you’re writing video games that need to ship in time for Christmas, you probably can’t decide to throw quality out the window. I’m thinking that virtualization has to perform well or it’s a non-starter, so the only thing left to move is features.
I’ve heard people in Microsoft refer to this as the, “Which of our fingers do we choose to cut off?” stage of product development.
On Windows Vista, things went differently. For quite some time, there were apparently no limits on cost or features, and as a result, schedule just kept flapping in the wind. Again, Microsoft at some point switched to making Vista date driven, and the wish-list got trimmed in a way that would make Edward Scissorhands proud.
How does it work in the open source world? It seems that if people are volunteering their time, you can get “good”, and “cheap”, but schedule? Fugetaboutit. If a key sponsor like IBM, Intel, HP, or Sun want it faster, they put paid developers on the job. Schedule gets nailed down and cost pops loose.
It’s also worth noting that just because 2 out of the three corners can be constrained, that’s not even a sure thing. I think we’ve all encountered bad expensive software which arrived late.