Scrum: Brazilian Jiu-Jitsu of Software Development
Reprint from SiliconBayouNews
Occasionally, something comes along that causes a shift in the way we do things. In the sport of mixed martial arts, that shift came with the introduction of a fighting technique known as Brazilian Jiu-Jitsu. At its core, Brazilian Jiu-Jitsu focuses on the fact that the majority of fights take place on the ground. Royce Gracie, a man of relatively small size, gained fame for his ability to defeat much larger opponents through the use of Brazilian Jiu-Jitsu. Employing takedowns, joint-locks, and chokeholds, Brazilian Jiu-Jitsu revolutionized modern mixed martial arts and now virtually all professional fighters train in its use.
Around the same time Royce Gracie was dominating the professional fighting circuit, Jeff Sutherland, Ken Schwaber, and a few others were creating a flexible, holistic strategy for software development. They named their method ‘Scrum’ in reference to the tight-packed rugby formations with interlocked players pushing forward as a team. Similar to the creators of Brazilian Jiu-Jitsu and their realization that fights were won, or lost, on the ground, the founders of Scrum realized software projects succeeded or failed on the ability of the project team to self-organize and embrace change.
Traditional project management is based on a predictive process where all deliverables are known, time & costs can be estimated, critical paths determined, and progress can be controlled via comparison of earned values against a baseline. Although controversial, the Standish Group’s ongoing Chaos Report reveals problems in software development when finding the majority of IT projects end in failure. After a 15+ year career in software development, I too have been troubled with the difficulties of taking a software project from ideation to final product. Traditional methods require a fully developed plan that indicates who does what along with when tasks must begin and end. It has been my experience traditional project management used in software development will likely produce a plan based on fantasy rather than reality.
According to Jeff Sutherland, Scrum provides “money for nothing and your change for free.” What he means is that by embracing the Scrum methodology of software development, project teams become significantly more productive and change is an integral part of creating a quality product. This is accomplished by creating a list of desired features in the form of ‘user stories.’ These stories are ranked in order of importance to the organization and maintained as a backlog of features. The project team, known as the Scrum team, starts development with the highest priority user stories and work to complete the selected features in a pre-determined 2- to 4-week cycle called a ‘sprint.’ The Scrum team continues the iterative sprints by selecting the highest priority user stories from the backlog. The backlog of product features is a fluid list and the order of features can, and likely will, change during the project to include removing and adding features. At the end of every sprint, the scrum team presents what they have accomplished in the form of a potentially deployable product.
Teams are what get things done. Teams engage terrorists in hostile environments. Teams win basketball tournaments. Teams develop software. There is an order-of-magnitude difference in the productivity of great teams versus mediocre teams. Hopefully, you are shaking your head in agreement with that last statement. If not, trust me. It is true. After leading troops in two combat zones and software developers on multiple projects, great teams can transcend the organization and increase the performance of all members. How do we make teams better? You cannot get the performance enhancing self-organization and motivation through force; it has to come from within. Scrum focuses on team performance through self realized goals, autonomy, cross functionality, and transparency. Information becomes shared without even trying and team members feed off each other’s skills and then as they say, “this is where the magic happens.”
There is a conventional wisdom in software development that 80% of the users only use 20% of an application’s functionality. The beauty of Scrum is that it focuses your development team on the 20% of functionality that will meet 100% of the needs for the majority of users and it puts that functionality into their hands significantly faster compared to traditional methods of waiting until the product is 100% complete before deployment.
Scrum is the Brazilian Jiu-Jitsu of software development. Adopting the Scrum methodology of software development will increase team performance and decrease development time. The FBI’s project to virtualize case files, Sentinel, had become what experienced project managers refer to as a black hole with hundreds of millions of dollars spent on the road to failure. A progressive new CIO / CTO team wrestled the project from the contractor, reduced the project team from over 400 to 40, implemented Scrum, and started delivering results in 30 days. If your organization is not using Scrum in the development of your software, do not be surprised when your organization is laying face down caught in a submission hold by more agile competitors using Scrum.