Agile Frameworks – Scrum Part 1
The two dominant Agile approaches are Scrum and eXtreme Programming (XP).XP was arguably the first method deemed to be “Agile.”
We will start with Scrum – very popular and in extensive use today!
- Definition of SCRUM
Scrum is an Agile framework for completing complex projects. Formalized initially for software development projects, but it works well for any complex, innovative scope of work. The Scrum framework is deceptively simple.
- History of Scrum
Scrum is not only used for software development; Scrum is also used in other areas.
The scrum framework has success in software development, it works in nearly every domain, and it works with a few rules focusing on teams rather than individuals.
The scrum process will start with an idea of a product, which will allow us to create a product backlog, delivering a potentially shippable product. This product will be developed through iterative product development approach, which is also called “sprint.”
One sprint spams between 2 weeks and a month and each sprint progress will be checked o the daily standups.
The Daily standups usually take 15 minutes of the team every day to discuss the following questions:
1. What did you do yesterday?
2. What will you do today?
3. Are there any impediments in your way?
- Who’s involved in the scrum process– Stakeholders
– Product Owners
– Scrum Masters
– Development Team
- Scrum Roles
The scrum roles are the Scrum Team and Stakeholders. A scrum team has a Scrum Master, Product Owner, and Developers. How do you know when do you use Scrum?
Usually, we have a chat with the client and analyse Requirements and Technology.
The orange section on the graphic shows when Scrum is used mostly.
– Simple is when we know the requirements and technology, and the implementation of both is easy.
– Complicated is when there are uncertain criteria (whether in technology or requirements), but the items are known.
– The complex scenario is when requirements and technology changes frequently, that’s when Scrum is used mostly.
Now, let’s go deep in the Scrum roles.
• The Product Owner is responsible for the product backlog and maximizes the product ROI
• The sole person responsible for managing the product backlog
• He must clearly express backlog items to the team
• He is responsible for order the product backlog items by value.
The product backlog items are not based on the size or priority which stakeholders demands – the product owner must think what items adds value to the product.
• He must ensure the visibility and transparency of the backlog.
• The development team is responsible for delivering a potentially shippable increment of working software
• They are self-organized (or it should be)
• They should be cross-functional, which means they must have all the skills that are required to produce a working product.
• The dev team has developers, testers, software architects, business analysts, infrastructures. It will involve everyone that is needed to deliver working software.
• The dev team can have a minimum of 3 and a maximum of 9 people. A number below or over this is not recommended.
• They must not have a title, and everybody is equal in the team in terms of responsibility.
• The Scrum Master is responsible for the Scrum Process
• He works with the development team, product owner, and the organization. He must listen to their problems to lead them in the scrum process.
• He leads the organization in its Scrum adoption. He must follow and explain the values of Scrum for the team and people involved in the process, ensuring that the Scrum framework is being applied correctly.
• He is responsible for facilitating scrum events
• If there are any issues with the Product Owner or stakeholders, he must remove the impediments. He is always responsible for solving the problems to guarantee the scrum process and good working software at the end of each sprint.