In large software development projects, the end-game is often compared to the act of landing a plane. Specifically, the number of active bugs (those that haven’t been fixed or closed as by design) is usually relatively flat during the early beta stages – as many new bugs are being filed as being fixed. That might seem strange on the surface: but it’s mostly either because the project isn’t really done with development, or because as the product stabilizes, more people use it more aggressively (finding new bugs in the process). You can think of this stage as analogous to an airplane being in mid-flight.
As the product starts to stabilize, there’s an inflection point where bugs start to be fixed at a faster rate than new bugs come in. Some projects never reach this stage – either because there’s still too much churn in the features or just because there are so many holes in the implementation that it’s like trying to plug a sieve with your bare hands. This stage is analogous to the glidepath of a plane as it descends into land. The brutal truth of the matter is that, no keen the sales or marketing teams are to have a release date that they can nail on the door, until you enter the glidepath it’s really extremely hard to predict with any granularity when you’ll hit the runway. Of course, once you’re on the glidepath you can analyze the trend of incoming bugs v. fix rate and be able to predict with some accuracy, subject to crosswinds or any other odd surprises.
It’s obviously no coincidence that I’m writing this on the day that Windows Vista RC1 has shipped. I was at the ship party earlier today – you might think it’s premature to have a party, but this really marks a very major milestone for teams that have been working hard at this for nearly four years. We’ve actually been on the glidepath for about four months now and at this stage we can see the runway. There are just a couple of thousand of open bugs at this stage; the churn rate for features is very low as we stabilize and hold steady for touchdown.
I moved my very last machine off Windows XP last night onto the final RC1 build – our home Media Center. There’s a reason this was the last machine – the build has to be solid enough to pass the “wife test”! If I lose an office document I’ve been working on for weeks, it’s not a big deal. If we miss an episode of House or Lost because I installed a buggy version of Windows, I’m in real trouble…
Rob Relyea won the prize of being one of the first to post from the WPF team about the availability of this release, along with links to the SDK. One of the nice things from a WPF perspective is that the RC1 build is binary compatible with the July CTP; our goal and expectation is that this will remain true through RTM – you shouldn’t need to recompile your code again at any point moving forward. As Rob mentioned, tools are just a couple of days behind but are due very soon. In the meantime, you can use the July CTP of Expression by using the SKIPAVALONVERSIONCHECK=1 flag as you execute the .MSI file.
As you click on the above link to Rob’s entry, do send him a little message of congratulations in the comments section of his blog entry – he’s one of the leads on the WPF team who have been around pretty much from the start, driving the specification and implementation of XAML through from concept to production usage in both WPF and Workflow Foundation. Feel free to drop him a line and let him know where you think WPF is strong today and where we can improve it for the future. We’re just starting to plan the next releases, and that kind of input is always helpful.
We’re nearly there – landing gear is lowered, please fasten your seatbelts and bring your chairs back to the upright position!