Dreaming of a Scrum-built Vista...
There are some incredible stories of waste and failure in big projects that remind me how much better off some projects would be if they could find a way to used Scrum or a similar Agile approach.
An example from the gigantuan Microsoft Vista project was blogged by Moishe Lettvin in a post rather elequently titled The Windows Shutdown crapfest a few weeks ago. That one seemed to have been prompted by Joel Spolsky’s post on the design of the feature in question.
Lettvin describes some big Scrum no-no’s including:
- Poor communication
- Long feedback loops regarding design
- Long feedback loops regarding system integration
- Multiple inter-dependent teams involved in delivering a single feature
- Multiple teams/stakeholders empowered to make design decisions on the same feature
- Lack of co-ordination between teams
Each of those items is a recipe for disaster and it is no-wonder that the Vista project is years late if it had to overcome those sorts of inefficiencies.
Now I won’t deny that it may be very difficult to adopt a Agile approach on a monolithic monster project like Vista (an incremental release approach as per Apple OS X might have helped) but here is how I see Scrum addressing each of these problem points in principle.
- Poor communication – bring the customer/stakeholders and the team together every 2-4 weeks and bring the team together to co-ordinate and identify issues every day.
- Long feedback loops regarding design – demonstrate the feature in a face-to-face meeting with users/stakeholders at the end of each iteration.
- Long feedback loogs regarding system integration – integrate at least daily if at all possible (I can’t believe that at least meaningful components of Vista could not be integrated with the latest code within 24hrs given Microsoft’s computing resources).
- Multiple inter-dependent teams involved in delivering a single feature – slice the project by fracture lines of least dependence – ideally vertically by feature/function (this may be particularly counter-intuitive for an OS project traditionally built in horizontal layers: kernal, networking, UI etc.).
- Multiple teams/stakeholders empowered to make design decisions on the same feature – feature-based teams avoids this confusion and waste.
- Lack of co-ordination between teams – use the Scrum-of-Scrums/Meta-Scrum approach to rapidly co-ordinate and identify where information should be shared between teams.
I wonder how much sooner Vista would have shipped had Microsoft managed to adopt the above practices on that project like it has for the .NET platform. At least I can dream of it being possible…
Comment
Commenting is closed for this article.
«  Goals for this Website : ScrumMaster Certification and Refresher Courses in early February 2007 »