I've been defending Microsoft's ship schedule for Windows Vista for quite some time. Up to this point, I've been confident that Vista would be at the quality level it needs to be by RC1 to make the launch fantastic. Having tested several builds between Beta 2 and today, I hate to say that I no longer feel that way.
Beta 2 was a disappointment on many levels. It was nowhere near as stable as it should have been, and was a huge memory hog. Later builds have improved stability and performance, and have introduced visual tweaks and enhancements that make Vista feel more like a finished product. But several events are conspiring to make life a lot more difficult for beta testers, and I forsee problems if they are not addressed.
- Fact: Microsoft is rapidly approaching check-in cutoff date for the Vista teams. According to one Microsoft employee, this date is "only a few weeks away". That means that any changes that need to be made after that date are extremely difficult to get in. If Vista is going to RTM in late October/early November, that means RC1 will be due out late August/early September. If you're a beta tester, that's probably a scary thought.
- Observation: Several teams are scrambling to get code checked in on time. I hate to use the Media Center team as an example, because they're moving extremely fast and working very hard to get their product out the door. But I have to. Media Center has a ton of enhancements in Vista, and is being developed for technology that probably won't even be on the market by the time Vista ships. They are working like crazy to meet their deadlines, and I don't think that it can happen without sacrificing the quality of the product. Unless they plan on updating Windows Media Center frequently after RTM, it's just going to cause problems. But don't come down on that team... several events in the cable industry have hampered some of their work. And don't kid yourself into thinking that the WMC team is the only one scrambling. They're just the easiest example.
- Observation: One door closes, another door opens. No, I'm not talking about opportunity here, I'm talking about issue resolutions causing new issues. I've been thoroughly impressed. When Beta 2 came out, I defended Microsoft against the people that said "XP was more stable at this point, Vista should be too". Back them, I didn't think that was the case. Now, I have to agree. The last beta should have been a lot more stable. The RC1 builds have improved dramatically, but my experience is still vastly different with each build. As some systems tighten up, others seem to come apart. For example, I had issues resuming from Hibernate in Beta 2. Those issues were resolved in later builds, but new ones arose in the latest build I've been testing. That shouldn't be happening.
- Observation: Jim & Co have forgotten what "Release Candidate" means. A release candidate means "Hey, we think we're finished, and this is the build we'd like to put out there. Is it ready yet?" From there, testers sign off on it and say yes, or they say "no" and Microsoft does additional work. It should always follow a stable beta, which Beta 2 was not. It's not another CTP that goes out... this means that they're finished. Windows Vista is not ready yet, and I don't think Microsoft will have it ready by the end of the month. So Microsoft should not call it a "Release Candidate" if it is not seriously up for consideration as a candidate for release.
Time For a Sanity Check
Microsoft has been pushing it's developers too hard to meet this deadline, and Vista is too complicated to allow it to be reached. Many people will twist my words and construe Vista's complexity as a bad thing; it's not, just the nature of software development. But that means that new realities have to be addressed in new ways. So I have a proposal for solving this problem and getting Vista out the door in the first quarter, without sacrificing product quality to the God of Everyone Else's Expectations:
- Step 1: Push the launch back 4-6 weeks and launch at the end of February. Yeah, you're going to get A LOT of flack for it. The stock price will probably drop a percent or two. The Slashdotters will go apeshit. But trust me, your long-term issues will be far worse than your short-term ones if the product is not up to par out of the gate.
- Step 2: Don't defend it, just announce it. There's no point in trying to put a PR spin on it, because nobody is going to listen anyways. Let your thousands of beta testers cheer you for making the right decision, and tell Wall Street to go to hell. At this point, you have the strongest product lineup in a decade and the stock price hasn't moved, so getting Vista out the door on time isn't going to magically make things better.Your customers will be happier in the long term, and your decisions should be based on that, and not what the media says.
- Step 3: Add another beta to the development cycle. That new window gives the team enough time to push back RC1 and add Beta 3 into the mix. This means that Beta 3 comes at the end of this month, RC1 comes at the middle of October, and RTM is Microsoft's last big accomplishment of 2006. That should give the world enough time to try out a much more stable version of the operating system, and see how it works in the real world. It will be shorter than most betas, but it's ok to be a little agile in that respect.
- Step 4: Give the entire Windows team a week off. After Beta 3 releases, anyone who is not responsible for responding to security issues in released products should be given a week to relax, unwind, etc. Let them spend time with family, cause they probably won't see much of them between RC1 and RTM. Clear heads make happy coders. Oh yeah, except for management. They should take that week and figure out how to thin out the management staff when Steven Sinofsky takes over.
- Step 5: Come back strong and release a great product. Enough said.
What Would Beta 3 Accomplish?
I think the first release candidate should be followed by a stable beta. Visual Studio 2005 Beta 2 was an incredibly stable product, even though it underwent major changes between Beta 2 and RC1. Beta 2 of Windows Vista was not usable in any meaningful way on a regular basis, and I uninstalled it after 10 days. I'm running Vista full time now, but not without still dealing with BSODs and other random BS. So here's what changing the current RC1 to Beta 3 and putting additional time into RC1 should allow Microsoft to focus on:
- Fixing bug reports. Too many bugs are being closed as "by design" or "not reproducible", with barely any questions from Microsoft engineers on how to reproduce them. Developers should stop what they're doing and take three weeks on reproducing and resolving issues... not just the beta team, the WHOLE team.
- Display driver stabilization. The entire WDDM team needs to finalize their work, and then go over and kick Nvidia's butt into gear. Seriously, I mean the whole WDDM team needs to go over to Nvidia HQ and get the drivers fixed. Their display drivers have been nothing but a problem, and it's not getting better, despite new driver releases.
- Improve general system stability. Microsoft has been making good progress on making Vista fast and stable, and it needs a bit more time to do so. I'd rather have a few more weeks to make it faster than wait for Windows Server 2007 before I get fast Vista bits.
- Catch up time. Give the Media Center team and others time to let their industries catch up so the products they will support can be refined and finalized. (I'm talking about a specific product here, but can't mention it specifically due to NDAs).
In Conclusion
That's what needs to be done, IMO, to make the Windows Vista truly the best version of Windows ever. Windows Management (that means you, Jim): Give your people a little more time to get it right. You'll be lambasted for it. But it doesn't matter what 125 people in the media will say. 700 million Windows users will thank you.