Just so I can be magnanimous, I can't have a go at Joel and then ignore the follow up posts. As I said before, because Joel said something about Vista's shutdown menu, it became an issue. He posted three follow ups to that one, and they covered some very interesting ground, namely Microsoft's engineering practices.
It started with one which linked to an ex-Microsoftie who worked on said menu (Moishe's post has moved here). The linked to article is a damning indictment of how badly Microsoft was handling Vista's development. There was an amusing Slashdot comment about Joel's agenda for this one.
There were many negative opinions expressed about this story, some dissing Microsoft's management issues, some dissing the source control. The post I really wanted to write was about the source control - I got caught up in Joel's arguments.
Interestingly, Moishe's article has been updated, with a bit of an apology and a softer tone. Sounds like it's mainly a grump about an isolated incident, rather than a serious indication of Vista's management. What I find myself wondering is where was the accountability? Either Moishe's team had plenty of other features to work on, or someone was letting them get away with delivering very little over a year.
Joel's next post was the story of the OSX equivalent menu, again, straight from the horses mouth. Joel's take on this story was that Apple had essentially validated his original post. It wasn't I read. (I don't think they've managed to get shutdown any simpler than Vista have, but let's not get sidetracked again.) The interesting quote in there was how Apple had huge problems with Copland due to managing a project with the size and complexity of an operating system.
And so we get to the final post, about source control. I had originally wanted to write a post defending Microsoft's multiple branched, gated source tree as one of the only sane ways to do development at this scale. I was even going to spell it out a little - imagine writing an asp.net website, a good complicated one. While the asp.net team are changing asp.net, and the .net team were changing the BCL and the C# compilers. And IIS was changing. As was the network stack. Not to mention the OS's memory management. Oh, and someone was re-writing your display driver too. Fancy working in the same source code repository as all of that lot?
Fortunately, I don't have to do that. Joel's evil twin was gone, and we had our Joel back. Even Slashdot is on my side, with a negative comment that nicely set things up for an explanation of Linux's way (very similar to Window's) and a comment from another Microsoft employee that provides a complimentary explanation to the story in Joel's post.
Out of interest, here's an Apple engineer's view on how they do development and source control on OSX. The scale of the two just don't compare. Read what you want into that one. Have Microsoft over complicated Windows and it's processes? Has Apple just got it sussed? Is Apple's limited hardware support matrix an advantage here? Who knows?