Introduction to Scrum: what it is and how to apply it
Scrum is an agile methodology, focused on software development, in which the tasks that must be performed to complete a project are divided into smaller monthly and daily cycles.
1 - What is an agile methodology?
The agile methodology is a set of techniques and practices for project management that offers more speed, efficiency and flexibility.
There are several agile methodologies for managing a project, the one we will talk about today is Scrum.
Agile methodologies are like frameworks that run on the same programming language, that is, they follow common basic fundamentals and, based on them, describe the best ways to implement them.
This "programming language" is known as the agile manifesto.
The agile manifesto is a small set of principles formed from simple criteria, which always seemed to have been respected in projects that worked.
The criteria are:
- Valuing Individuals and their interaction more than processes and tools;
- Valuing working software more than comprehensive documentation;
- Value collaboration with the client more than contract negotiation;
- Appreciate Responding to change rather than following a plan.
The 12 principles formed from the criteria are:
- Our highest priority is to satisfy the customer through the early and continuous delivery of valuable software
- Accept requirements changes, even at the end of development, as agile processes suit the customer's needs
- Deliver a running version of the software frequently, on the scale of weeks to months, with shorter periods being preferred
- Business professionals and developers must work together on a daily basis throughout the course of the project
- Building projects around motivated individuals, providing them with the environment and support they need, and trusting them to do their job
- The most efficient and effective method of conveying information to a development team is a face-to-face conversation.
- A working software is the primary measure of progress.
- Agile processes promote a sustainable environment in which sponsors, developers and users are able to maintain steady pace.
- Continuous attention to technical excellence and good design to increase agility
- Simplicity first, as the art of optimizing work
- The best architectures, requirements and designs emerge from self-organizing teams
- At regular intervals, the team should think about how to increase its effectiveness and adjust its behavior accordingly.
2 - Scrum
In Scrum the project is divided into cycles, which are usually monthly, in these cycles an objective is defined. What will be implemented in the month is included in the objective with the intention of bringing the project closer to the completion of its final idea.
These cycles are called Sprints. In the end, they represent a deadline, in which a set of activities must be executed.
All functionality to be implemented in a project is kept in a list which is known as the Product Backlog.
At the beginning of each Sprint there is a Sprint Planning Meeting, which is nothing more than a meeting defining which activities will be carried out in that cycle. and consequently which features will be passed from the Product Backlog to the Sprint Backlog, which is nothing more than a list of features that will be implemented in that cycle.
Daily Scrum: The objective is to disseminate knowledge about what was done the day before, identify impediments and prioritize the work of the day that begins. At the end of a Sprint, the team presents the features implemented in a Sprint Review Meeting.
Finally, there is a Sprint Retrospective and the team moves on to planning the next Sprint. This restarts the cycle.
3 - Another complementary agile methodology - XP
xp or eXtreme Programming is one of the most used methodologies and, in my view, complements Scrum.
While Scrum focuses on management practices, XP is more linked to technical functions.
In addition to following all the concepts that the agile manifesto brings, she adds the following criteria in development:
- Continuously test;
- review and design
integrate all the time ;
- Develop solutions with maximum simplicity;
- Do really short iterations.