Scrum is Agile
In our last article,Agile Part 1, we have explained basics of Agile and now we are sharing an article on SCRUM
What is SCRUM?
Wikipedia says “Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development.”
Web Definition says “Scrum originally derives from a strategy in the game of rugby where it denotes getting an “out-of play” ball back into the game with teamwork.”
As the above definitions are self-explanatory, additionally we put our experience to it to bring more insights.
- Scrum is a project management technique based on the principles of Agile and accumulates all the potential of Agile Development.
- Popular: Big Companies like Microsoft, IBM, Yahoo, Google are using it.
- Generic set of guidelines.
- Facilitates collaboration between development and the business partner.
- Easy to implement and follow.
Characteristics of Scrum Process:
Scrum focuses on fixed-length iterations, called Sprints. After each sprint,a successfully attempted partial product is provided to the client in an incremental manner.Same as Agile, client provides feedback for this deliverable and scrum team again starts working on another sprint to accommodate the client feedback in the next incremental deliverable.
Scrum has following characteristics:
- Flexible deliverable – the content of the deliverable is dictated by the environment.
- Flexible schedule – the deliverable may be required sooner or later than initially planned.
- Small teams – each team has no more than 6 members. There may be multiple teams within a project.
- Frequent reviews – team progress is reviewed as frequently as environmental complexity and risk dictates (usually 1 to 4 week cycles). A functional executable
must be prepared by each team for each review.
- Collaboration – intra and inter-collaboration is expected during the project.
- Object Oriented – each team will address a set of related objects, with clear interfaces and behavior.
These characteristics are based on the following SCRUM values
1. Commitment: Basically calls for a commitment at each level by the scrum roles like Product owner, Team and Scrum Master.
2. Focus : Focus means that Team should concentrate on finishing the sprint.Scrum Master makes sure to remove any impediments that are obstructing the team or shields the team from external interference.
3. Openness: If team is open for any new changes or requirements then the sole aim of being agile can be achieved. Even changes can be brought internally anytime and all roles and participants should be open for that.
4. Respect: As each role is quite independent from each other so there should be an environment of respect towards each other. Everybody should be encouraged for their efforts.
5. Courage: Its more of a believer’s choice which is like whether somebody has the determination and resolution to take ownership of the decisions.
What are Scrum Roles?
Scrum provides a simple structure of roles, meetings, rules, and artifacts.Scrum teams are responsible for creating and adapting their processes within this framework. There are three scrum roles defined
- Product Owner
- Product Owner is responsible for representing the interests of the customers and other key stakeholders on the team.
- Product Owner involves in finalizing the deliverables and project plan
- Product Owner owns the product vision, constantly re-prioritizes the Product Backlog, and revises release plan expectations.
- Final frontier to accept or reject any deliverable.
- Product Owner is the Decision Maker.
- Product Owner is responsible for the success of the outcome of the product delivered by the team
A product owner can be a Domain Specialist, a Project Manager or even a Business Analyst with technical skills.
- Scrum Master
- Works as a facilitator and ensures that the team is fully functional without any roadblocks.
- Works to remove any impediments that are obstructing the team or shields the team from external interferences.
- Keeps Scrum artifacts visible and enforces time boundaries for each sprint.
- Works as a point of contact between all roles and functions.
- There is no direct management expected but suggestions from Scrum Master are always taken into consideration.
A Scrum Master role can be played by team leader or the project manager.
- Implements the functionality
- Daily Scrum meetings
- Selects the sprint backlog
A scrum team is a team of 2-5 cross-functional and self-organizing members who can take ownership and are capable of achieving the sprint goals.A scrum team can be formed by including software engineers, architects, programmers,QA experts, testers, UI designers etc.
What is a Sprint?
Wikipedia says “A sprint is the basic unit of development in Scrum. The sprint is a “timeboxed” effort, i.e. it is restricted to a specific duration.The duration is fixed in advance for each sprint and is normally between one week and one month”
We have talked about iterations in last article, then my first question would be, What is the difference between Sprint and Iteration?
All sprints are iterations but not all iterations are sprints. Iteration is can be defined as a generic term and sprint is just the specialized version created for Scrum terminology. For each sprint, a planning meeting is arranged and during the meeting, the product owner and the development team decides the work that will be accomplished during the sprint. These sprints are time bounded and person responsible for this activity is Scrum Master.
They can be simple excel docs or graphs which can help in deciding the next course of the project.
- Product Backlog: This is a list of requirements / features, based on considerations like risk, business value, dependencies, date needed, etc.
- Sprint Backlog : This document contains the list of activities which should be taken up in the incremental sprints.
- Burn down chart: It is a publicly displayed chart showing remaining work in the sprint backlog. Updated every day, it gives a simple view of the sprint progress.
What are the activities involved in Scrum?
The main activity in Scrum project management is the Sprint, a time boxed iteration that usually lasts between 1-4 weeks, with the most common sprint length being 2 weeks.
- Sprint Planning Meeting: At the start of each sprint,a planning meeting is conducted to discuss the activities required to be planned.The main aim of this meeting is to determine the sprint goal, plus enlist the backlog items and then develop the plan to accomplish the work.
- Daily standup:Each day during the sprint,a team meeting is planned where team members share
- What have you done since yesterday?
- What are you planning to do today?
- Any impediments/stumbling blocks These meetings are time boxed to no more than 15 minutes.
- Sprint Review: At the end of a sprint, Review of functionality happens which is created during the sprint. The goal of this meeting is to get feedback from the product owner and any other stakeholders. It should not last more than 4 hours
- Sprint Retrospective:At the end of each sprint, the team participates in a retrospective meeting, to reflect on the past sprint. It is used to identify opportunities to improve in the new sprint.Two main questions are asked in the sprint retrospective:
- What went well during the sprint?
- What could be improved in the next sprint?
There is a lot of information to share on SCRUM but we also have to work in sprints so that our users can enjoy the incremental product.