Introduction to SCRUM
In the previous blog, we talked about agile methodologies and compared them with waterfall methodologies. This time we are going to talk about one of the most used agile methodologies in the world, Scrum.
Scrum is a framework that focuses on solving complex problems and generating value through product creation. In Scrum, it is not about finishing a list of tasks, it is about increasing the value of the customer's idea in each event. This methodology allows having deliverables every so often, which increases customer satisfaction and security, as they feel more involved in the project during its development.
Scrum has three main pillars, provided by the sprint goals. These commitments allow to give meaning to the work being developed:
Transparency, the whole team knows what is going on and the complete project information.
Inspection, at any time you can inspect what is happening or what everyone is doing to generate the expected value.
Adaptation, since it is okay to change tactics to achieve the goal.
Next, we mention each of the key events or tools for Scrum:
All activities occur within a sprint. A sprint is an event in which ideas are transformed into value and consistency in development is created. During this period of time, the development team concentrates on generating the greatest possible value for the customer, always keeping in mind the objective or goal of the sprint, through the development of a series of activities.
The duration of this event depends on the pace of work of your team, it is recommended to be between 2 and 4 weeks. It is also important to ask our clients, how long are they willing to wait to see results? And depending on the answer a duration time is established.
User stories try to bring developers closer to the user's needs. They answer the question, what is the value we want to achieve? And they are done in sentence form, with the following structure.
"I, as (role or person) want to (achieve something) for (such a reason)."
"I, as a user want the interface to have large buttons for quick identification."
The product backlog is an emerging and ordered list of what is needed to improve the product and generate value. It is the sole source of the work done by the team. Each item can be a requirement (external or internal), a user story, or a use case and is broken down into a series of activities that must be done to complete the item.
Everything will be organized around a product goal, which describes the future state of the product and serves the team to plan the order in which we will get to that goal faster.
During this event, we answer the question, what do we want to achieve this sprint?
The product backlog is inspected and the activities to be performed during each sprint are established, taking into account both the product's objective and the sprint's objective and the estimated time to complete each story. Each area must collaborate to generate the expected value in each sprint.
The sprint backlog contains the items selected during sprint planning, the sprint goal, and the plan that will be carried out to achieve each user story.
In this daily event, all team members participate and inspect how progress has been made towards the sprint goal. They evaluate if they are going to change strategy or continue with the same strategy, making sure it is going in the right direction. It lasts 15 minutes or less.
The following questions should be answered: what are you going to do today? what did you do yesterday? and what is preventing you from finishing your tasks?
In this event a tangible functionality must be presented to the customer, that we talk about the status of the project, what happened during the sprint, how much progress has been made, what has changed during that time, if the goal was achieved, we get feedback from the customer, the current state of the business and based on that we decide to adopt the product backlog or leave it as it is.
In this event, we talk about what are the possible improvements, with a mindset of continuous improvement, and decide the improvements to be implemented in future sprints to improve the way we develop the product focusing on three main questions: what should we continue to do? what should we stop doing? what should we do differently?
In Scrum, there are different important roles, which are in charge of different key points for the correct development of the project.
Scrum Master: Moderator, problem solver, close and perceptive, is the "servant leader" of the team. The Scrum Master is in charge of:
Manage the Scrum methodology: Ensures that the methodology is carried out correctly and helps facilitate its implementation.
Assists the Product Owner in the creation and organization of the Backlog.
Manage resources: Ensures that the team has an ideal environment, providing them with the necessary tools and knowledge to optimize the operation of the project and achieve the objectives.
Optimize time: Estimate the effort required to complete the tasks agreed for the sprint.
Identifies problems: Identifies and evaluates the various obstacles to eliminate them.
Balances pace and quality: Ensures that a sustainable pace is maintained with a focus on the quality of features and not strictly on speed.
Consistent Communication: Ensures that the expected results of the project are communicated and understood by the team.
Product Owner: The product owner is the team leader and is directly responsible for maximizing the value of the product. A product owner is responsible for:
Understanding the customer's problems and pains, in turn, promotes the search for solutions.
He/she is in charge of listing the tasks necessary to achieve the stated objectives and recognizing the project requirements.
Aligns the project vision with the business objectives.
Defines good user stories that are clear to everyone and align with the objectives.
Defines the MVP (minimum viable product).
Work team: They are in charge of developing the activities that generate an increase in the value of the product. They self-manage their progress.
In Kenko Solutions, we have worked on more than 30 projects under this methodology and it has helped us to speed up the development time and optimize the use of budget to deliver valuable solutions for our customers. Stay tuned, in the next blog we will talk about scrum for hardware, as there are many things that cannot be applied to conventional hardware development.