Team WIKISPEED – Agile, Lean, and Scrum
Team WIKISPEED uses methods developed by the fastest-moving software companies. In fact, in many ways we have more in common with Google or Twitter than with GM or Toyota. Manufacturing and old-thought software teams gather requirements, design the solution, build the solution, test the solution, then deliver the solution. In existing automotive companies, the design portion of that process alone takes three to twelve years, and then the vehicle design is built for five to fourteen years. This means it is possible to buy a brand new car from a dealer and that car represents the engineering team’s understanding of what the customer might have wanted twenty-four years ago! Team WIKISPEED follows the model of Agile software teams, compressing the entire development cycle into one-week “sprints.” We iterate the entire car every seven days, meaning that every seven days we reevaluate each part of the car and reinvent the highest-priority aspects, instead of waiting ten to twenty-four years to upgrade. This process enables a completely different pace of development. Our process:
From Lean software design we take the concept of using less stuff wherever responsible. This is based on the common-sense mandate to “use less stuff,” which is then defined in a clear, applicable way by the contemporary software team.
From Extreme Programming (XP) we take the practices of pairing and swarming. These practices date back at least as far as the apprentice model but have been carefully defined to replace the need for most types of training and process documentation.
From Agile software development we take the principle of reducing cost to make change—changes in team, materials, machinery, and even goals.
From Scrum software development we take clearly defined team roles and responsibilities, which allows us to spend more time rapidly developing product with no nonworking (management only) roles and only two meetings.
From Test-Driven Development we start with failing tests and then develop solutions. This allows us to quickly identify if current work is not targeted to pass a test or is causing problems elsewhere in the system, which avoids waste.
From Object-Oriented Programming we take Contract-First Development, which enables the modularity of the WIKISPEED car and all of our solutions.
Video: Modularity as presented by Joe Justice
Tour one of our shops as it was in February 2011, which we have iterated several times over and since outgrown: