Back in 2009 when we relaunched the uTest website (who here remembers our old logo?), we chose Drupal 6 for our home page CMS. Back then, I was certain that Drupal 7 would launch “real soon now” and that we would be thinking about an upgrade pathway sometime in early 2010.
My prediction was a bit off (Drupal 7 actually launched in January, 2011). That’s not a bad thing because good software takes time, and our early evaluations of Drupal 7 have been very positive. We’re excited to begin migrating as soon as we can. Yet given that Drupal 7 took three years to develop, one has to wonder if we’ll see Drupal 8 before 2014.
With that in mind, I was a bit surprised to read Drupal founder Dries Buytaert’s plan for launching Drupal 8 on a more reasonable timescale: never have more than 15 critical bugs in the database. From this recent article in eCRMGuide:
“At no point in time will there be more than 15 critical bugs,” Buytaert said. “I will not pull in a big change if we know there are known bugs. This gives us the ability to do timely releases because we know at most the release is only 15 critical bugs away from being ready.”
So wait, is this practical?
The answer is almost certainly “yes!” From Joel Spolsky’s 12 Steps to Better Code:
5. Do you fix bugs before writing new code?
In general, the longer you wait before fixing a bug, the costlier (in time and money) it is to fix.
In this light, Dries may be on to something. If developers have to fix Drupal’s code before they’re allowed to check-in anything else, then they have a huge incentive to clear out bugs before they become major issues. In other words, their new features won’t make it into the codebase until they’ve cleaned up a sufficient number of outstanding prior mistakes.
What remains to be seen is if the critical bugs list can be properly managed to make this practical. Project managers will have to be ruthless about defining what is and isn’t a “critical bug.” It doesn’t help anyone if the list of critical bugs is out of date, contains invalid information, or has bugs related to incomplete features that just haven’t been written yet.
But kudos to Dries and the Drupal team. I sincerely hope this works out and I can’t wait to see Drupal 8.