March 2006


At 60,000+ employees, Microsoft is the biggest mainstream software development shop that I’m aware of. For the last few years, the behemoth has been focused on delivering its successor to Windows XP. That project was first called Longhorn, and is now called Vista.

The word “vista” is a noun used to describe a pleasing view. With Windows Vista, there’s nothing to look at it, so I recommend that Microsoft does another name re-alignment and dubs it “Vapor.” That seems appropriate considering that the CorporateSuits just announced this week that Vista would be delayed until the end of 2006.

After multiple delays, no one is really surprised to see it slip again. However, I do find one thing interesting about this particular slippage:

Microsoft is cutting scope!

That’s right, they are eliminating pesky features like 64-bit computing and the media center options from the first set of Vista releases. What!? Aren’t these the things that people actually want and that their own marketing machine is carping about? It’s no wonder they can’t be bothered to support EFI

Previous accounts I’ve read suggested that Microsoft has roughly 20,000 people involved in the development of Vista. I don’t know how factual that number is, but it’s safe to assume that the actual number of developers is VERY high. Now suppose that only a 25% of those are doing actual software development work when you factor out QA folks and miscellaneous process monkeys.

To the layman, it might seem that an army of 5,000 software developers could create a mountain of software, but the truth is that their mountain would probably just be a landfill. I’d say organizing programmers is like herding cats, but that would do a disservice to the feline population of this world. Have you seen the crazy cat ladies with 5+ cats in a single household? They’re a bit batty, and cats do not hold a candle to programmers.

Microsoft gets a lot of press for the use of agile development methodologies and XP in particular, so something is amiss when you take that many developers and fling them at a project. In my own experience, any more than 7 developers on a single team and the process becomes less productive. The integration of change sets and communication become more difficult as the number of developers involved increases. No matter how many teams those 5k developers at Microsoft are broken into, that’s an awful lot of overhead.

Suppose that Vista development is broken down into many efficient teams, each consisting of 7 highly motivated developers. That’s a whopping 714 teams. Suppose you round down to 700 for the sake of simplicity. Does anyone really believe there are 700 sub-projects that Vista development can be broken into? I don’t think so. As a result, one must infer that Microsoft has aggressively ramped up the number of developers per team. In a project as complex as Vista, that pushes the barriers of sanity into the red zone.

In the immortal words of Fred Brooks:

“Adding manpower to a late software project makes it later.”

The size of the teams and overall complexity of the project have already induced multiple release slips. Now take in account the announced “reduction in scope.” It seems likely that the programmers whose features got cut from the release will be reassigned now in order to help stop the other teams from slipping even further. I can think of no better way to guarantee the software ship evens LATER. I wonder if it’s possible derive a lemma from Brooks’s law to say that “Late software will be bloated, buggy and counter-intuitive to the user?”

I wonder how many bugs this version of Windows will have at the time of its release. I remember when 2000 came out with approximately 60,000 bugs and a service pack was available immediately. That’s a high standard to contest, but I feel that Microsoft is capable of producing a product that has a known bug count in excess of 10^5. They have the technology.

But more importantly, will anyone care when Vista finally arrives? If you’re a Windows user, XP (or even 2000) probably does what you need already. If you’re a Mac user like me, the idea of running Vista probably makes you shudder.

Honestly. And no, it isn’t what you think. I didn’t make a vain attempt to read the three part Art of Computer Programming. That would be impossible even with an unlimited supply of my favorite espresso. No, I got hung up on Donald’s other masterpiece, that bastion of intuitive programming known as LaTeX. I have a great deal of respect for Mr. Knuth and do believe that TeX is still the best typesetting system in existence, but easy to use? It is NOT.

Being the picky (read: anal) person I am, I decided to update my resume using that fine tool. Multiple days and several bursts of uncontrolled profanity later, I finally arrived at a resume format that looked beautiful. The only problem was that I had NOT yet written the content. Oops. In my quest for the perfect layout, I totally neglected the entire point of the process, which is to actually transmit information about one’s skill set onto a piece of paper. (err, tex/pdf file)

The act of writing a LaTeX document is so similar to writing actual source code that I spent brain cycles wondering about proper markup idioms and best practices. Sure enough, after the first successful iteration, I realize I had violated the sacred DRY principle. Not to worry, though, because LaTeX allows you to define our own fancy macros.

Tasty.

Ultimately, I wasted too much time on what should have been a simple task, but who can resist the lure of running their prose through a compiler!? Anyway, it looks great now and I can go back to a more normal existence.

(PS: Did you know that the seminal work has a volume 4 on the way?)