This blog entry by a Microsoft insider goes partway toward explaining
just what's broken about Microsoft's development process. Good summary,
minus the annoying boldface-every-other-word typography, here at the Inq.
After months of hearing of how a certain influential team in Windows was
going to cause the Vista release to slip, I, full of abstract
self-righteous misgivings as a stockholder, had at last the chance to
speak with two of the team's key managers, asking them how they could be
so, please-excuse-the-term, I-don't-mean-its-value-laden-connotation,
ignorant as to proper estimation of software schedules. Turns out they're
actually great project managers. They knew months in advance that the
schedule would never work. So they told their VP. And he, possibly
influenced by one too many instances where engineering re-routes power to
the warp core, thus completing the heretofore impossible six-hour task in
a mere three, summarily sent the managers back to "figure out how to make
it work." The managers re-estimated, nipped and tucked, liposuctioned,
did everything short of a lobotomy -- and still did not have a schedule
that fit. The VP was not pleased. "You're smart people. Find a way!"
This went back and forth for weeks, whereupon the intrepid managers
finally understood how to get past the dilemma. They simply
stopped telling the truth. "Sure, everything fits. We cut and
cut, and here we are. Vista by August or bust. You got it, boss."
Every once in a while, Truth still pipes up in meetings. When this
happens, more often than not, Truth is simply bent over an authoritative
knee and soundly spanked into silence.
Nicely put, but I don't think he really grasps the whole problem. This is
shown by his assertion that Vista is "the largest concerted software
project in human history. The types of software management issues being
dealt with by Windows leaders are hard problems, problems that no other
company has solved successfully." He's wrong on the first count -- Debian
is bigger -- and probably on the second as well. In any case,
communities such as the Linux and Apache communities solve those
problems spectacularly well on a regular basis.