How to Deal with Chaos in Agile
Producing quality results through self-organization
13 November 2015
The most important aspect of Agile software development is the result: Customers must have the high-value solution they need. In principle, this is the definition of quality. Unfortunately, in the chaotic domain there is no a priori definition of requirements; therefore, developing the right solutions based on a requirement catalog is unfeasible.
Each software development team must continuously and sustainably deliver a high-quality product. Because of this, they must continuously inspect to see how suitable their current approach is in delivering results.
Each new insight requires an adaption to the current state. To maximize product value, all waste must be eliminated from the process and organization. The only people in the entire organization who have up-to-date information on the product domain and the technical domain, and who know who is doing which work now, are the experts on the team. If managers want to modify the process, first they need details from the team, then they can reach a decision and inform the team. Anything else contributes to waste.
The team knows more than the manager and therefore can eliminate the communication overhead. Their decision to change the process with the goal of delivering higher value at lower cost does not need any outside organization. In short, the team must possess the flexibility to employ the optimal process as soon as it becomes known.
The highest value for customers is the simplest solution that satisfies their purpose. Any functionality that does not fit the customer's purpose is a waste or causes waste. For example, if the customer only wants to cut cheese, a Swiss army knife with 27 functions is overly complex and not only costly but also causes confusion when used. A simple butter knife would have obtained the same goal with lower cost and a lower learning curve.
In the software world, in which each feature has associated costs for maintenance and support as well as for learning and using, the simplest design that meets all of the customer's needs is the highest-valued product.
The self-organizing team, in a dialogue with the customer, has the best understanding of the technical possibilities for minimizing the design and solution. Measuring the team's productivity in terms of output rewards them for producing unnecessary complexity. The only valid measure of team performance becomes the level of customer satisfaction.
The essence of Agile methods is to enable the entire team to consistently deliver high-quality workmanship and results through a rigorous yet flexible development process that occurs in an environment in which requirements are not fully known or are unreliable. Self-organization allows the team to produce accurate and precise solutions while the market constraints are subject to unpredictable change.
To visualize early results through customer feedback, the entire team pursues sustainable quality in frequent delivery cycles. The entire process is extremely rigid yet adaptable to the change. The team has a vision, and it's accountable to this vision; everybody knows how well the team is doing and what has been accomplished.
Opinions represent those of the author and not of Scrum Alliance. The sharing of member-contributed content on this site does not imply endorsement of specific Scrum methods or practices beyond those taught by Scrum Alliance Certified Trainers and Coaches.
Current rating: 4.6 (7 ratings)
The community welcomes feedback that is constructive and supportive, in the spirit of better understanding and implementation of Scrum.