Scrum is a subset of Agile and an Empirical Framework that facilitates team collaboration on complex projects development. Scrum is the leading Agile development methodology having specific set of rules and concrete practices.
Scrum’s simple definitions give the anatomy that a team needed to deliver best work. Scrum process origins in early 1990s and name is from the sport –Rugby, in which everyone plays a specific role with a quick adoption of strategies, towards a well-defined goal. It uses fixed time box iterations called Sprint for building the software. Scrum methodology is defined by team roles, events, artifacts and rules.
Scrum consists of 3 key roles Product owner, Scrum Master and Development team.
1. Product Owner
Product Owner is the project’s key stake holder, representing the business.
- Responsible for creating and managing the product backlog (list of prioritized features of the product)
- Provides the development team clear guidance on the product backlog items.
- Prioritizes back log items and optimizes the value of the work performed by development team
- Ensures to achieve best value of the sprints.
- Has the authority to say what is required for the product and what goes next
Product owner is one person, not a committee. To change the product backlog items, committee must address Product owner.
2. Scrum Master
Scrum Master is the servant leader to the product owner, development team and Organization. He does not manage the team and differs from traditional team lead or project manager in many ways.
- Coaches the team on scrum best practices and ensures scrum framework is followed with agreed processes
- Ensures Product backlog items, goal and scope are understood by everyone.
- Assist the product owner to maintain product backlog in an effective manner
- Facilitates scrum events as requested and required
- Coaches the team in self organization and cross functionality.
- Helps the development team in removing obstacles that are impeding team’s progress
- Helps the development team to create high value products.
- Helps the development team in determining definition of done for the backlog items
- Serves the stake holders in coaching and guiding on scrum practices.
- Acts as a facilitator for the team events ensuring teams progress
3. Development team:
Scrum relies on a self-organizing and cross functional team. Self-organizing means, no team leader or manager decides which team member will do which task or how a problem will be solved.
As a scrum team, each and every team member takes the responsibility in addressing an issue.
Cross functional means, everyone is needed to take a feature from idea to implementation.
Though individuals join with different job titles, those titles are insignificant in scrum.
Each member of the team should contribute in a best way to complete the work of the sprint. Ideally development team can contain 3-9 members. Typically, development team includes Programmers, Testers, Architects and Analyst. Team is responsible for completing the work
Contains prioritized list of product features. Top items in the product backlog list are more granular. Items are constantly prioritized and managed by product owner. Items can be added by anyone at any time. List can contain bug and nonfunctional item also.
Product Backlog Item:
Usually written in the form of User Stories. Each product log item is estimated by the team in relative units, Ex: Story points. It works in a better way eliminating waste. Story points typically follow Fibonacci series ie.,1,2,3,5,8,13…
Some scrum team give T-shirt sized based estimation- XS, S, M, L, XL. T-shirt size map onto a specific story point. For example, M size can map on to 3 story points.
List of tasks selected by development team to develop and complete during current sprint, to turn selected set of backlog items in to a potentially shippable product increment. As the team is doing the work, they are responsible for keeping the Sprint backlog up to date. The sprint backlog cannot be changed once the work starts on that.
Sprint Burndown Chart is a graphical representation of the work remaining over the duration of the sprint. Scrum master updates chart daily, to re-estimate the work remaining. Usually horizontal axis displays days of the sprint and Vertical axis displays effort remaining in hours.
In Scrum, all the meetings are time boxed. Sprint itself is a time boxed event and acts as a container for remaining scrum events.
1. Sprint Planning:
Product Owner(PO) gathers list of business features from stake holders and comes out with a prioritized product backlog. At the beginning of the sprint, Development team and PO discuss on the items to pull for the current sprint. Its typically 3-4 hrs for a 2weeks sprint and can go up to 8hrs for a 30-day sprint.
2. Daily Scrum:
Happens daily for 10-15min to summarize
- what each individual team member did yesterday,
- what is planned for today and
- Any Outstanding impediments
3. Sprint Review:
Happens Development team demonstrates on the working software increment to Product Owner and stake holders. Product owner inspects completed items and decides what items are “Done”. Left out items will be returned to product back log and reprioritized by product owner. Any feedback from Product Owner will turn as action item to next sprint
4. Sprint Retrospective:
Happens at the end of the sprint, to discuss what went well and what not.
Scrum Master helps the team in finding out action items to implement and improve next sprint.
Product owner is optional for this meeting.
5. Backlog Refinement:
Product back log Items initially need to go through refinement, so that Development team can estimate and select enough number of items for the sprint. 5-10% of each sprint must be dedicated in the refinement and part of the team or entire team can assist the Product Owner to get the top of the Product Backlog ready for the next Sprint Planning Meeting. Usually refinement includes:
- Detailed requirements analysis
- Splitting large items into smaller ones
- Estimation of new items
- And re-estimation of existing items.
Advantages of Scrum framework:
- Higher Productivity
- Improvement in Quality of the product
- Easily manageable work through sprint backlog by breaking down in to small features as user stories
- Better visibility through daily scrum or standup meetings and increased project control
- Frequent working software release (at the end of the sprint)
- Ease to adaption as inspection and review happens in each sprint, thus removing or rectifying mistakes
- Improved customer satisfaction
- Increased Return on Investment
- Welcomes requirement changes even in late phases
- Recommendable for fast moving development
- Less chances of deviations from customer expectations
- Ensures best results involving customers frequently and wherever required
Disadvantages of Scrum:
- Frequent changes and indefinite project time lines make scope creep
- Unless tasks are well defined, there may be chances of sprint failures
- Requires experienced and committed team members.
- Daily meetings at times frustrate team members
- Works well only for small teams
- Less time for conducting regression testing after each sprint
Needless to say, proper planning and smart decision making can help you get past these disadvantages with the Scrum methodology. For example, in larger teams, each member needs to have defined roles and responsibilities with definite goals, so that there is no compromise on quality and no excuse for failure. This will keep the team focused to project goals. Plus, the ScrumMaster needs to guide the team effectively to avoid pitfalls and ensure 100% project success.