History of Scrum
At the origins of the development of software development was a "waterfall" approach to work, it was used by most teams and divided the implementation of the product into the following stages:
- definition of project requirements;
- planning operations from start to finish;
- code writing;
- testing.
That is, the customer came, described the task, the team planned the implementation and started to work, following the established technical specifications. After development, the product was tested and if something did not work, it was necessary to fix large amounts of code, as a result of which the time was stretched.
So they worked from year to year, while one team of innovators for a long time watched successful teams: those who managed to keep deadlines and make a quality product. As a result, they realized that success lies in the flexibility of the process.
Based on the conclusions drawn from the results of long observations, the "Manifesto for Agile Software Development" was derived. It included four points:
- People are more important than tools.
- Product quality is more important than documentation.
- Interaction with the customer is more important than the contract.
- Willingness to change is more important than the established plan.
These four points have fundamentally changed the approach to software development and formed the basis of Agile. Over the years, enthusiasts have come up with 12 core Agile principles that underlie all agile methodologies today:
- The main thing is good software and a satisfied customer.
- Readiness for change at any time.
- Achieve working software as often as possible following development.
- A team meeting is best for sharing information.
- The customer and development team must work together.
- Trusting people to do their job.
- There is working software - there is progress.
- Flexible processes - continuous development.
- Attention to quality fosters flexibility.
- The simplicity of the process allows you to not do unnecessary work.
- A self-organizing team works better.
- Constant pursuit of greater efficiency.
In the early 1990s, Jeff Sutherland and Ken Schwaber began talking about their own agile development methodology. For a long time, they watched the military, special forces and even rugby players and came to the conclusion that they manage to accomplish their tasks thanks to interaction and teamwork - these principles formed the basis of Scrum.
In 2001, they detailed the principles of their methodology and published the book Agile Software Development with SCRUM. To date, this approach is considered one of the most popular among developers.
Basic principles of Scrum
The methodology has several basic principles that help to focus on the client and give the expected result with minimal resource and time costs.
Basic principles of Scrum:
- (). () . .
- . . () .
- . - Β« Β» β . , . , .
- . Scrum-team β , .
Scrum team
In most cases, a Scrum team consists of 5-9 people, less often 3-4. Within Scrum, the team cannot be bigger, because the interaction between each link becomes more complicated, which negatively affects the efficiency of work.
Composition
The team has three main roles:
- Product Owner
- Scrum Master.
- Developers (Delivery Team).
Let's consider all the roles in more detail.
Product owner
Owner is the person responsible for the development. This role is played by the customer of the product or its official representative. In rare cases, a representative of the market, where the planned project is subsequently implemented.
The owner is responsible for the preparation of the business plan, which reflects the expected economic effect. Also in it, he defines a development plan, in which the return on investment ratio is calculated for each item. Another important document, the formation of which the owner is engaged in, is a list of requirements, they are sorted by importance.
Simply put, the product owner is the decision center for the project team. It should be the only one within the project, otherwise the principle of quick adoption of important decisions is violated.
An approximate list of responsibilities of the owner:
- ;
- ( );
- ;
- ;
- ;
- .
-
The Scrum master is responsible for observing the Scrum methodology in work: it controls the initiative and independence of all team members, satisfaction with the results obtained, the atmosphere in the team and the results of work in general.
Moreover, it is important to understand that the Scrum Master is not just some isolated person watching the development from the outside. He is a member of the team and must, along with control, be directly involved in the technical implementation of the product.
The Scrum Master is responsible for the interaction of all team members with each other, maintaining a high level of performance, eliminating problems, adhering to the planned work schedule.
An approximate list of duties of a scrum master:
- creating a trusting atmosphere;
- participation in general meetings and ensuring successful communication of participants;
- ;
- ;
- .
Developers are those who are responsible for the technical implementation of the product. As a rule, there are 5-9 developers per team. The first task is to set realistically achievable, predictable, interesting and meaningful goals for each sprint.
The second task is to achieve the set goals for each sprint on time (deadline). Achieving the goal is an extensible concept and is determined individually in each project. For example, somewhere the task is considered completed after writing all the codes, and somewhere else the end of testing is added. In general, everyone is guided by their own vision and experience.
The key skills for the development team are planning, an objective assessment of the work performed, the ability to interact with other team members.
A sample list of the development team:
- evaluating product backlog items;
- product development and providing it to the customer;
- tracking your progress (together with the Scrum Master);
- providing the result to the owner of the product.
How the Scrum Team Works
Successful work on the Scrum methodology is possible if three principles are observed:
- Constant self-improvement . Experienced developers say that improving the product, bringing it to an ideal state is impossible without self-improvement of each team member.
- Autonomy . All employees should be responsible not only for the overall result and be able to work in a team, but also to perform many duties individually.
- Cross functionality . Any team is self-sufficient, as it includes specialists with different skills.
Scrum Team Workflow
The work of the team guiding the Scrum methodology is conditionally divided into several stages.
1. Planning a list of sprint tasks. Every sprint starts with planning. All team members get together, evaluate the product backlog as a whole, and select the priority tasks to be completed within the current iteration. This is how the list of tasks (backlog) of the current sprint is formed.
After that, on the basis of the backlog, the scope of work and the duration of the cycle are negotiated. Also, the result is determined in advance: what should be obtained as a result of the sprint.
2. Holding regular meetings. Daily or weekly the team holds short meetings (no more than 15-30 minutes). They involve the product owner, the scrum master, and all the developers. The purpose of the meetings is to get from everyone answers to three questions:
- ?
- ?
- ?
Scrum-master during the meeting identifies current problems and helps the team solve them.
3. Scrum board organization. In the conference room, where regular meetings are held, a board is hung, divided into three parts: "what to do", "in progress" and "done".
In each part, stickers of different colors are placed with the main tasks. As they progress, they move from one part to another. This helps track the progress of the current sprint to each member of the team.
4. Change of plans during the iteration. The team must be open, and if one specialist does not have time to meet the deadline, he informs the owner of the product about it. It will change the assignment of tasks, optimize working hours and help keep within the deadline.
The same thing is done with too fast work, when tasks are completed faster than planned. The manager complements the backlog with new goals at his own discretion so that the product is delivered faster.
5. Summing up. After the completion of each sprint, testing of the completed piece of software is carried out. Potential consumers (focus group) also take part in it. The owner collects feedback and makes decisions for successful work in the future.
Scrum artifacts
Scrum projects include three important documents, they are also called artifacts:
- Product Magazine (Product Backlog).
- Sprint Backlog
- Sprint chart (Burndown Chart).
Each of them has certain features, which we will talk about below.
Product magazine
The owner prepares the product magazine at the very beginning. The document (artifact) includes requirements sorted by importance. The initial version is supplemented by developers: they estimate the cost of implementing each requirement.
The product backlog should include not only the technical aspects necessary for implementation, but also functional ones. For each requirement, priority is determined (for example, from 1 to 5). The highest priority ones are described in detail so that the team can evaluate them and test them.
The Product Owner is obliged not only to prepare a product log, but also to submit it within the agreed time frame. Otherwise, timely implementation of the project is impossible.
Sprint magazine
As you remember, within the framework of the Scrum methodology, the product is implemented in small iterations. Typically, one sprint is one function. For effective work, it is divided into small tasks so that the implementation takes no more than 2-3 working days.
A competent breakdown of functions into tasks allows by the end of the iteration to complete everything necessary for a certain piece of software to work correctly and to be of value to the end user.
After the sprint backlog is completed, it is evaluated by the development team and compared with the product log. If there are significant deviations, the team determines the most priority tasks within the current sprint and less important ones that can be transferred to the next iteration.
The task of the product owner is to exclude small and insignificant tasks from the backlog, the implementation of which will not affect the final result of the work.
Sprint chart
A sprint schedule is a calendar of tasks that is scheduled for work within the current iteration. It displays the amount of work remaining until the end of the sprint. The team regularly evaluates the schedule and, if necessary, quickly responds to any changes.
The product owner pays special attention to the calendar. It evaluates the speed of work and compliance with deadlines. For example, if the amount of work does not decrease over time, it means that there are some deviations in the process and urgent correction of the teamβs actions is required.
How to properly implement Scrum methodology
To improve the efficiency of the team, the correct implementation of the Scrum methodology is necessary. Mistakes can not only change nothing, but also negatively affect productivity.
If you decide to make changes, carry out the implementation in stages:
- Assemble the team . The main step on which the success of the product in the future depends. Look for qualified professionals with practical experience in their field. Take your time and remember: building a cross-functional team is not an easy task.
- Assign a product owner . Give this role to the customer or his representative. It is important that a person has experience in this direction, since interaction within the team and between the customer depends on him.
- -. , . , .
- . . , . . - , .
- . . . , .
- Analyze and evaluate the results . Analyze and measure results after each sprint ends. Only proceed to the next stage of development when you are fully satisfied with the results of the previous one.
These six steps will improve the efficiency of your entire team. But they seem simple only at first glance. In fact, it will take a lot of time to stabilize the work under the new rules.
Someone from the team may not like the innovations. It is natural when people are opposed to something new. Your task is to convey to each team member the benefit of the new methodology.
Let's sum up
Scrum is an agile agile development methodology. Its development began in the 90s of the last century, and it began to gain wide fame in the early 00s. Today, Scrum is used by many teams whose activities are closely related to projects.
Scrum can be implemented in your company in 6 steps, but you should carefully approach the organization of the process. The methodology does not require special knowledge from employees, it is rather a question of organization and proper construction of working time.
At the same time, do not forget that scrum is not a magic pill, if you have a constant breakdown of deadlines, a bad atmosphere inside the team, the introduction of new technology will not solve all the problems. Therefore, initially establish communication within the team, build effective work, and then implement scrum to increase productivity.