1. What is SCRUM and agile development?
SCRUM is a framework that helps people, teams and organizations generate value through adaptive solutions for complex problems. Rather than provide people with detailed instructions, the rules of SCRUM guide their relationships and interactions. SCRUM is founded on empiricism and lean thinking. Empiricism asserts that knowledge comes from experience and making decisions based on what is observed. Lean thinking reduces waste and focuses on the essentials.
SCRUM employs an iterative, incremental approach to optimize predictability and to control risk, engages groups of people who collectively have all the skills and expertise to do the work and share or acquire such skills as needed. SCRUM is based on the following values:
Commitment, Focus, Openness, Respect, and Courage
The SCRUM pillars are
- Transparency: the process and work must be visible to those performing the work as well as those receiving the work. Transparency enables inspection. Inspection without transparency is misleading and wasteful.
- Inspection: artifacts and the progress toward agreed goals must be inspected frequently and diligently to detect potentially undesirable variances or problems
- Adaptation: If any aspects of a process deviate outside acceptable limits or if the resulting product is unacceptable, the process being applied or the materials being produced must be adjusted. The adjustment must be made as soon as possible to minimize further deviation.
Agile practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/end user(s), adaptive planning, evolutionary development, early delivery, continual improvement, and flexible responses to changes in requirements, capacity, and understanding of the problems to be solved.
The values of the agile manifesto are:
- Individuals and interactions over processes and tools. Tools and processes are important, but it is more important to have competent people working together effectively.
- Working solutions over comprehensive documentation. Good documentation is useful in helping people to understand how the solution is built and how to use it, but the main point of development is to create solutions, not documentation.
- Customer collaboration over contract negotiation. A contract is important but is no substitute for working closely with customers to discover what they need.
- Responding to change over following a plan. A project plan is important, but it must not be too rigid to accommodate changes in technology or the environment, stakeholders’ priorities, and people’s understanding of the problem and its solution.
Most agile development methods break product development work into small increments that minimize the amount of up-front planning and design. Iterations, or sprints, are short time frames, also called timeboxes. The team is working in all functions: analysis, planning, design, coding and testing. At the end of the iteration a working product is demonstrated to stakeholders. This minimizes overall risk and allows the product to adapt to changes quickly. An important rule is “fail often and early” as in the early stages this is usually much cheaper than when coming closer to a final release date. The goal is – of course – to succeed at last. But early failures, like misunderstandings in a very early stage, can better be solved through constant involvement of stakeholders and the cost and risk of failures in an early prototype stadium is less crucial than in a ready developed solution.
The key advantage of agile methodologies is speed to market, mitigation of risks and better customer satisfaction. The close collaboration with stakeholders and users reduces time and cost as well as the risks of engineering a product that doesn’t meet user requirements.
Sprints are the heartbeat of SCRUM, where ideas are turned into value. They are events ensuring inspection and adaptation of progress toward a product goal. When a sprint’s horizon is too long the Sprint Goal may become invalid, complexity may rise, and risk may increase. Shorter sprints can be employed to generate more learning cycles and limit risk of cost and effort to a smaller time frame. Each sprint may be considered a short project.
Topics for each sprint are:
- Why is this Sprint valuable? The product owner proposes how the product could increase its value and utility in the current sprint. The Scrum team collaborates to define a sprint goal and why the sprint is valuable to the stakeholders.
- What can be done in this sprint? Through discussion with the product owner the developers select items from the product backlog (basically a prioritised Wishlist of tasks that need to be done in a project) to include in the current Sprint. Selecting may be challenging, but the more the developers know about their past performance, their upcoming capacity, and their Definition of Done, the more confident they will be in their Sprint forecasts.
- How will the chosen work get done? For each selected product backlog item, the developers plan the work necessary to create an increment that meets the definition of done. This is often done by decomposing product backlog items into smaller work items.
The SCRUM team consists of one SCRUM Master, one Product Owner, and Developers. Within a Scrum Team, there are no sub-teams or hierarchies. It is a cohesive unit of professionals focused on one objective at a time, the Product Goal. The teams are cross-functional and self-managing. The team is responsible for all product-related activities from stakeholder collaboration, verification, maintenance, operation, experimentation, research and development, and anything else that might be required.
The SCRUM Master is helping everyone understand SCRUM theory and practice, both within the SCRUM Team and the organization. He / She is accountable for the SCRUM Team’s effectiveness, by enabling the SCRUM Team to improve its practices, within the SCRUM framework. Usually they will do this by coaching the team members in self-management and cross-functionality, helping the SCRUM Team focus on creating high-value increments that meet the Definition of Done, the removal of impediments and by ensuring a positive and productive work field keeping it within the budget and timebox.
The SCRUM Master helps Product Owner in effective product goal definition and product backlog management and the Scrum Team understand the need for clear and concise Product Backlog items. He / she helps to establish an empirical product planning for a complex environment and facilitates stakeholder collaboration.
SCRUM Masters also lead, train and coach the organization in its SCRUM adoption, plan and advise SCRUM implementations within the organization, help employees and stakeholders understand SCRUM and remove barriers.
The Product Owner is accountable for maximizing the value of the product resulting from the work of the Scrum Team. He / She is also accountable for effective Product Backlog management, which includes developing and explicitly communicating the product goal, creating, ordering and clearly communicating product backlog items, and ensure that the product backlog is transparent, visible and understood. For Product Owners to succeed, the entire organization must respect their decisions.
The Product Owner is one person, not a committee!
Developers are the people in the SCRUM team which create the outcome. Often the specific skills needed are broad and therefore multi- or transdisciplinarity is a must. Developers are always accountable for creating a plan for the sprint, instilling quality, adapting their plans toward the sprint goal; and holding each other accountable as professionals.