Friday, September 22, 2006

Roots of SCRUM - How Japanese Manufacturing Changed Global Software Development Practices

Jeff Sutherland gave a talk on the Roots of SCRUM at JAOO 05. Jeff starts by describing the influences in his background that led to the creation of SCRUM. Next Jeff refers to Takeuchi and Nonaka’s paper and their definition of 3 project management styles. Type A (NASA), the traditional waterfall model of isolated cycles of work like requirements gathering, analysis, design, implementation, and testing. Type B (Fuji-Xerox), where work is overlapping. Processes are collapsed and handoffs eliminated. Type C (Honda), an all at once process.

Then Jeff discusses Toyota’s mission in North America and how it relates to SCRUM. The mission statement focuses on the growth of community, the stability and well being of members, and on adding value to the customers.

Toyota production is based on a different way of thinking. Through knowledge creation by synthesis of contradiction, Toyota pushed the envelope to produce high quality, high variety, and low cost all at once.
Toyota uses ba, the zen of SCRUM and Japanese manufacturing. Ba involves getting the right people at the right time and in the right place so the magic happens. Team members create new points of views and resolve contradictions through dialogue. The people get together and have dynamic interactions that create a synthesis. This environment creates emerging ideas.

The Toyota Way is Learn by Doing. It includes placing the highest value on actual implementation and taking action. If one doesn’t understand then just go ahead and take action.
You realize how little you know and you face your own failures and redo it again and at the second trial you realize another mistake … so you can redo it once again.
So by constant improvement … one can rise to the higher level of practice and knowledge.

The Toyota way allows for redundancy and failures. Failure happens early and allows for rapid learning and faster evolution. Rational and efficient approaches to emergent solutions will cause train wrecks.
Jeff describes how Scrum cuts through cost, time, and functionality barriers. SRUM is adaptive, iterative, incremental, customer driven, and delivers frequent business functionality. It is extremely simple but very hard.

Next Jeff shares some statistics that show that scrum is faster (improves productivity), better (improves quality), and produces more for less.

Adopting agile involves cultural change, and breaking down command and control. Teams need to be autonomous, transcending, cross-fertilizing. Teams need to feel totally responsible and management needs to get out of the way. Every member of the team is focused on making the team successful instead of his own self interest. The more experienced members are always available to help the less experienced. Jeff gives the Google strategy example of getting management out of the way by eliminating management jobs and just having teams of engineers with rotating team leads.

In agile, managers need to become leaders and find and utilize spontaneously created ba or help generate more of it by helping the team by providing the right space, equipment, and goals. They need to fostering love, care, trust, and commitment. Similarly scrum is based on truth, transparency and commitment. Question everything you do and if there is no value in it then do not do it.

Jeff explains that we’ve been applying the wrong process to software development. Software development is empirical process as opposed to a predictable will defined process. We need to understand how to work and monitor an empirical process by continuously measuring, monitoring and adapting the process. It will not run the same every time.

Next Jeff describes the key roles and responsibilities of the ScrumMaster, Product Owner and team. The Product Owner defines and prioritizes product features, decides on release dates and content, and accepts or rejects work. The team is self organizing and cross functional and selects the iteration goal and specifies work results. The ScrumMaster ensures the team is fully functional and productive, enables close cooperation and removes barriers.

In the 1st SCRUM implemented by Jeff, GANNT charts and job titles were abandoned. XP engineering practices were used. There was a ScrumMaster and a product owner, daily meetings, sprint planning, review, demo and retrospective.
Some of the challenges to adopting agile include organizational resistance, manager apathy, inadequate training, lack of peer support, and lack of formal guidelines.
This presentation is available at InfoQ at http://www.infoq.com/presentations/The-Roots-of-Scrum