The word scrum comes from the sports rugby. Where the players huddle together in an interlocked position pushing against the opponents. Each player has a defined role in their position and can play both offensive and defensive as per the demand of the situation.
Similarly, the scrum in IT believes in empowered self-managed development teams with three specific and clearly defined roles. These roles include – Product Owner (PO), Scrum Master (SM) and the development team consisting of the programmers and testers. They work together in iterative time boxed durations called sprints.
It is 3-3-5 Framework i.e. 3 Roles, 3 Artifacts, and 5 Events
Roles | Artifacts | Events |
---|---|---|
Product Owner (PO) | Product Backlog | Sprint |
Scrum Master (SM) | Sprint Backlog | Sprint Planning |
Development Team (DT) | Product Increment | Sprint Review |
Sprint Retrospection | ||
Daily Scrum |
Now let’s understand the scrum, scrum framework is an agile framework used to develop products. It does not follow the waterfall model, it is a combination of iterative and incremental models. It basically converts the making of product into ‘n’ different parts depending on the product and the team. These are nothing but called sprints. Sprints are basically predefined time intervals in which we do the development of the part which we have divided the sprint for. We now understand how a scrum works.
We first make a team called the Scrum Team which is typically a size of 6-9 persons containing 1 Scrum Master, 1 Product owner and 4-7 Developers, Designers, Testers, Database Administrators, Dev-Ops Engineer or any other person needed for building the product. This team will be the one building a product for a certain customer/stakeholder/company. So, this team should be-
The team should be self-reliant and self-sufficient in terms of accomplishing the tasks without the need of any external help.
The team together should possess the necessary skills to achieve the work given to them.
Next comes the question that what we’ll be building, The Product owner will first be engaging with the customer/stakeholder/company and collect all the information about the product that the team will be building in coming weeks. As per the customer/stakeholder/company the Product owner will then convert the need into very small parts called stories or user stories and it should give a basic idea of what this should do (and not like written a whole lengthy passage, then it will take more time for the team to understand take further decisions). Like, A user moves to “Login page and can login via Email, Phone number”. And then the Product owner will upload these stories or user stories to the product Backlog.
A product Backlog is a bucket or a wish-list where all the user stories(or the small tasks) are dumped and the whole team has the access to read it, but only the Product owner has the permission to change anything in it.
Here the Development Team and Product owner does the brainstorming and prioritize what work should be done first and are given some points and priority. Now according to these points and priority the team then decides what stories should be added to the sprint backlog.
A sprint backlog is again a bucket or a list that the team will be doing in the upcoming sprint. Stories are picked from the product backlog and transferred to the sprint backlog one at a time. This collective list now known as a Sprint Backlog.
The addition of stories in sprint backlog is done in Sprint Planning(or sprint meeting). It is the starting point of a sprint, which is roughly of 2 hours (considering 2 weeks sprint). In this the entire scrum team gathers and discusses what all stories should be added in the sprint backlog so that the work should be balanced in all the sprints and a development can be done without feeling burden in upcoming sprints.
The Development Team then give the stories a story point. Story points are just complexity of a user story. Like, consider there is a sprint of 2 weeks. So,
Points | 1 | 2 | 3 | 5 | 8 | 13 | 21 |
---|---|---|---|---|---|---|---|
Time | 1-2 Hours | Half Day | Full Day | 1.5-2 Days | 3-4 Days or Half week | 1 Week | 2 Weeks |
If we see, then the points are in Fibonacci series. These points are given in reference with the given time to the respective user story to be developed and each and every member of the Development Team marks the points to every story in the spint backlog and at last, work is assigned to the members of the Development Team. The work is assigned by the Product owner and in a manner that no one on in the is sitting idle or is overburdened in a sprint. After everyone is assigned with the work in the team, the team begins to develop the tasks given to them and build it as a product at the end of a sprint. Meanwhile in a sprint the Scrum Master gathers everyone everyday (leaving the day of planning, review and retrospection) for a daily sprint( or stand-up) for not more than 15 minutes, where the Product owner asks everyone in the Development Team 3 questions-
- What have you done yesterday?
- What you will be doing today?
- Any problems or issues you are facing?
Here the Scrum Master is the one who initiates the meeting, gathers everyone and follows up with everyone for their problems and clearing those problems for them. After the everyday meetings there is conducted a sprint review(or review meeting) at the end of the sprint cycle, where the team demonstrates the Product owner with demo and then the Product owner verifies it and passes it. If something went wrong, then the Product owner asks what went wrong and how are we going to overcome the lag(or gap) came here in building this part of the product. And at last comes the sprint retrospection(or retrospection meeting) which is conducted after the review meeting where the whole Scrum Team discusses-
- What went well during the sprint?
- What went wrong during the sprint?
- Lessons learnt from this sprint?
- What actions to take to overcome the lag in the sprint?
And then this sprint is closed and a new sprint starts. And then the completed part is added in the product increment.The Product Increment is the sum of all the Product Backlog items completed during a Sprint. At the end of a Sprint, the new Increment must be "Done," which means it must be in useable condition and meet the Scrum Team’s definition of "Done".
Let say we have a team of 6 people where 1 is Scrum Master, 1 is Product owner and 4 are in Development Team. Everyone everyday works for about 8 hours and sprint is of 2 weeks. Removing holidays, a sprint now has 10 working days, so everyone in a Development Team will be working for 80 hours and team combined will be working for 320 hours. If we convert points for the respective working hours, then a person will have a point of 21, and the whole team’s points would be 84. Everyone has now selected the user stories for the sprint backlog and have marked their sprint points for the stories. Now the Product owner will take some actions to calculate what work should be given to whom so that the total story points for a person should be ideally equal to 21, if it is greater than 21 then the member is overburdened and if it is less, then the member will be sitting idle for some time. After everyone is assigned with the tasks, the team starts working on it. The Scrum Master calls everyone for daily sprints, review meetings and retrospection. If everything goes well, then the module is sent into product increment( or merging), else if it is not working as planned like if a member is facing difficulty while developing or testing something then the Product owner assigns some additional help to the member from the team only. And this way a sprint is completed. Then comes the next sprint and this path is followed until the product is completly developed.
Now some points to note.
Roles of a Scrum Master-
- The Scrum Master should act as a coach for both Development Team and Product owner. That person should establish a proper communication between Product owner and Development Team, keep off any obstacle coming between Product owner and Development Team, and keep the Scrum Team motivated.
- The Scrum Master should provide everything the Development Team or Product owner has requested and which can increase the productivity of the team while remaining in the boundaries of the company rules.
- The Scrum Master should behave as a safe keeper for the Scrum Team. The Scrum Master should keep away all the distractions or roadblocks from the team or anything else which can decrease the productivity of the team.
Roles of a Product owner-
- The Product owner is a bridge between if the Development Team and the company/stakeholder/customer. The Product owner takes the responsibilities of every decision taken and building the right product. The Product owner has all the rights to enter and delete anything from the product backlog.
- The Product owner is the one who will be passing the product according to his/her acceptance rules made with or without the help of Development Team.
- The Product owner works closely with the Development Team and can also be part of the Development Team. He/she should give help any help to the team that a Product Owner can give.
Roles of Development Team-
- It is the Development Team’s work to build a functionality with no bugs and completely tested with the parameters in the sprint time or boundary.
- Development Team is responsible for providing the correct sprint points to the user story and giving priority to the user stories in the product backlog.
Ideal Product Backlog should be-
- Prioritized- The stories in this backlog should be properly prioritized and the factors could be anything and this selection is made by combined efforts of Development Team and Product owner. It just helps the team to understand what needs to be delivered first.
- Estimated- The stories should be properly estimated.
- High Level- The stories should not be very detailed, it should only tell what to do and the team can understand what has to be done, that’s it.
- Dynamic- This backlog should be dynamic as there can be changes made in future as there are issues from both the Development Team and customer/stakeholder/company.
Next, Kanban