In the interview, McDonald describes “Windows 2000” as the worst-run project of all time. McDonald says that “stupid decisions” and “7-day weeks for 30 weeks in a row” helped the Windows 2000 project earn that title. Keep in mind that McDonald’s statement is from a project management standpoint, and we shouldn’t equate it to “Windows 2000 was the worst product of all time”.
Larry Dignan goes on to ask:
“Was Windows 2000 really a worse run project than Vista, which had a do-over in the middle of the project?”
If “do-overs” and “stupid decisions” make for the “worst project of all time”, can the OSS development methodology guard against these pitfalls for OSS community projects?
It can be argued that truly open, open source development requires “do-overs” at the core of the project. Well, maybe not “do-overs”, but “do multiple times”. For example, Linux with KDE & Gnome or Apache Geronimo with Tomcat & Jetty. In OSS circles, we talk about better ideas coming from several solutions to the same requirement, but what about the wasted time and effort?
I’d suggest that “stupid decisions” happen in the OSS & Traditional software world at equal proportions. In the OSS world, anyone can reduce the impacts of a “stupid decision” by writing code that addresses the same requirement, without the “stupidity” and let the community pick a winner. But then, we get back to the question of duplicate work.
We’ve seen analysis of what the Linux kernel would have cost to develop inside a Traditional software company. A view of the wasted time and cost would be an interesting adjunct piece of data.
Now, let’s ask if “do-overs” and “stupid decisions” can be minimized at an OSS vendor.
I’d argue no, or yes, but not nearly enough to matter. My premise for this argument is that when a single OSS vendor is driving a project, the majority (90%+) of OSS development work, where the “do-overs” and “stupid decisions” really hit home, is done by internal developers. I’m not saying that the community doesn’t ever contribute valuable code. But if you spend a little time on the mailing lists or Jira’s for some hot OSS vendor-backed OSS products/projects, you’ll find how little the community contributes to the development. (The community definitely contributes in other ways: docs, helping newbies, finding bugs, etc). So, if 90%+ of the core development work, and as a result, core development decisions, occur inside the OSS vendor’s walls, shouldn’t “do-overs” and “stupid decisions” occur at rates similar to those at Traditional vendors?