The CHAOS Report released by the Standish Group in 1995 states that of all the IT projects only 16% are successful, with success being defined as on time and on budget. 53% of IT projects are either late or over budget, and amazingly 31% of all IT projects started are never even finished.
Surely, there's a better way to deliver value to customers in a timely fashion...
Introducing SCRUM, which is classed as "agile development" which is a set of tools and work methods which are designed to:
- improve the ability to respond to market needs and demands
- cut down on waste and waiting periods
- reducing employee stress and increasing productivity
The central part of scrum is a sprint, which is a focused effort for a fixed period of time (typically 30 days) towards a fixed set of goals. There are certain roles within scrum, which are the following:
- The scrum team - This is the group of people that is actually performing the work of designing and problem solving. The team is a self-organizing group of 5-9 members, with no set project roles. A tester can write code, a developer can execute tests, etc.
- The product owner - This is the voice of the customer. Often times, this person is the customer, but it can certainly be filled by a person internal to the organizations. The product owner insures that the team is working on the right things for the business.
- The product owner is also the administrator of the product backlog, which is a current to-do list where all specifications for a product are listed according to how profitable they are. The product backlog is visible to the entire organizations so all are aware of what to expect in future releases.
- The Scrum Master - The Scrum Master is a combination coach/gatekeeper/fixer. The Scrum Master conducts daily meetings with the team, which answer three questions:
- What did you do yesterday?
- What are you going to do today?
- What is standing in your way?
The Scrum Master insures that the team is not disturbed and has the optimal circumstances to get their work done. Part of this includes removing any impediments from the team so that they can focus completely on achieving their sprint goals. Lastly, the Scrum Master holds an evaluation meeting, or retrospective, to reflect on what went well and what could be improved on and adapts those findings for the next iteration.
So, what happens during a typical iteration? First of all, the Product Owner compiles all changes planned for a particular product and prioritizes them. The result of this work is a product backlog, which is a constantly re-prioritized to-do list. Prior to each sprint, the highest prioritized goals are transferred to what is called a sprint backlog.
A scrum team of 5-9 people is then formed to tackle the work on this sprint backlog. More discussions occur with the Product Owner which form the goal and the prioritized functionality is then broken down into small tasks. Once tasks are determined, the team self organizes and does work against those tasks, for which the entire team is collectively responsible for.
After the sprint is over, a demonstration happens with the customer to show what value was added to the product. Also, a sprint evaluation or a retrospective occurs to determine what went right and what went wrong for the iteration.
Lather, rinse and repeat...