What is Scrum?
Scrum is a framework, which can be useful in complex domains. Scrum is just enough to have some order in place and give you space to be creative in solving the problems. It advocates time boxing approach called Sprints. Sprints are nothing but safe to fail experiments to uncover the problem to figure out the next steps. Its safe to fail because amount money you would lose if the experiment fails is much lower compared to failing the whole product. It’s an experiment because there is always learning.
What is a Complex Domain?
If you go by Cynefin framework, the problems that we try to solve can be categorized into 5 contexts or domains.
- Obvious Domain: A context where the problems are well understood and solutions are pretty evident. For example, in case of product support, the problems are very well known and solutions are evident. An approach to solve the problem here is to categorize the problems into buckets, create knowledge base and respond with a solution from knowledge base. One can take the approach of standardizing the operating procedures. Some of the problems that fall into this category are: Production Support, System tickets, assembly lines.
- Complicated: A context where problems are known but solutions may not be evident. Atleast one would know what questions to explore and how to find a solution. An approach that works in this context is to assess the situation, analyze it and determine the solution. For example, migration projects, let’s say from legacy system to open stack technology. In such cases, we know understand the problems we are solving as the legacy system is in place for quite some time but we may not know whether Open Stack fulfills everything that legacy system was fulfilling.
- Complex: A context where the problem itself is unknown. We may not even know what questions to ask. Understanding the problem itself may require experimentation. For example: Take any new product, we may not have clear requirements in the first place but only a vision. Building a new software, hardware, new medicine etc. fall in this domain. An approach to solve such problem is to run experiments to gather more knowledge about the problem, learn and determine next steps.
- Chaotic: This is a context where the problem needs to be contained first like forest fires. Product breaks, defective cards that need to be recalled or faulty software wiping of customers data are all such examples.
- Disorder: A context where you don’t know which domain you are in.
What’s Cost of Delay?
Cost of building wrong products incurred in the form of:
- Sunk Cost
- Opportunity Cost
- Cost of Quality
This is generally a result of making assumptions about what customers want. In a complex domain, where the requirements or problem to be solved is not clear, it’s important to uncover the problem before investing too much in the solution. So frequent feedback from customers is essential.
Scrum enables product development teams to get frequent feedback from customers at the end of every Sprint.
What’s Cost of Production?
Cost of building products invested on:
- People (salary, welfare etc.)
- Interactions (meetings, collaboration)
- Infrastructure (licenses,hardware etc.)
If the System (team structures, interactions, policies and process) is poorly defined, the cost of product may increase due to overheads.
Scrum encourages teams to review the system and improve it to increase the effectiveness of the team.
Why do we need Scrum?
- Scrum helps product teams maximize ROI for products in complex domain by reducing Cost of Delay and Cost of Production through safe to fail experiments called Sprints.
- Scrum makes clear the relative efficacy of your product management and work techniques so that you can continuously improve the product, the team, and the working environment.