Scrum Process Model as part of agile software development methodology
Prev : What is extreme programming (XP)? Next : Adaptive Software Development (ASD)
This article is written for Managament Students who want to make a career
in the IT Industry and do not have background on Agile software development
process.
Extreme Programming is not alone in it's quest for Agility. Other Agile process models are used throughout the industry all styled to embrace change, to encourage effective communication among all stack-holders, to incorporate the customer and to the agile team and to organise the team so that it is in control of the work performed. Scrum is one such process model that defines approach for Agile software development.
Scrum was developed by Schwaber and Beedle (named after a team activity "a scrum" that occurs during a rugby match) in early 1990
Scrum Activities
Scrum is an agile process framework that includes following four activities
- Planning - establishes a broad description of project, overall expectations and a business sponsorship
- Staging - gathers requirements and establishes priorities
- Development - implements a complete application in series of iteration that scrums calls as Sprints
- Release - deploys the system to user community
Scrum Practices
Scrum do not prescribe specific methods to complete the activities but recommends following set of practices
- Self-directed and self-organizing team structure
- self organizing team (Members are inter-dependent and collaboration is the best way to achieve goals)
- shape their approach and accept responsibility (Rely less on management but on team for success)
- Once an iteration begins, no external changes can be requested
- So how can we request changes? Scrum has a practice called "Backlog" to do just that
- Duration of each iteration to be of 30 days or less
- Get product increment delivered in customer hands quickly
- All team communication to be through short, stand-up meetings
- Daily scrum helps keep all team members focus on objective and help them avoid going off-track
- The meetings are short and referred as stand-up meeting
- Demo to stakeholders at the end of each iteration
- Development of product occurs in series of increment that culminate into sprint demo
- The product increment (sprint demo) is the final output of an Iteration (sprint) that is presented to the Customer as a demonstration of the progress and as a feedback mechanism.
- The demo is an Incremental Delivery.
- Adaptive planning as the iteration proceeds
- Everyday work continues as the team learn something.
- That information is factored into sprint plan which is adopted as new information is obtained.
Features of Scrum
- 'Packets'
- Scrum delivers software incrementally
- Backlog items - Breaking down a large problem into manageable pieces, scrum can deliver product in timely manner
- Packets are collections of objects that are required to implement a backlog item
- Testing and documentation are on-going as the product is constructed
- Scrum requires frequent Builds. Software is assembled and tested on daily basis.
- Daily integration and regression testing is run on the Build.Automated tests are preferred.
- Sprints derived from requirements
- Product Backlog (managed by customer - Product Owner)
Master list of all functionality desired in the product. It grows over time as more is learned about the requirements of Product.
- Sprint Backlog (managed by team)
It is the list of tasks that the team has committed to complete in the current development sprint
- Demos
- Each iteration is fixed in duration ex 14 days, 21 days or 1 month
- Time boxing : Forces the team to vary the scope of delivery rather than duration or the cost
The Scrum Team
The Scrum Process Flow
The Scrum Ceremonies
- Backlog Grooming - Along with Product Owner, other Stake-holders, Scrum Master and if needed the Team meets to groom the backlog
- Sprint Planning - The team meets to break up stories into task and divide task among themselves
- Daily Scrum or Daily Stand-up - The team meets daily to share what they did and what they plan to do next and any impedance that they may be facing
- Sprint Demo/Review - The team gives demo to Product Owner and Stake-holders of the deliverables they promised at the start of sprint
- Sprint Retro - The team meets to retrospective the past sprint and share ways to improve the product and process
Daily Scrum Meeting
The meeting is very short and is conducted every day preferably at same time. The team stands in circle or in a way that each one can see other team member.
Every team member gives their updates on 3 points to the team:
- What did you do since last meeting?
- What will you do till next meeting?
- Are there any impedance or obstruction hindering you in completion of your work?
Benefits of Daily Scrum Meeting
- Social promise - When team members describe what they will accomplish in next 24 hrs, they make a social promise to their colleagues in the team
- Adaptive response by the team
- Understand progress or impediments on a daily basis - Scrum Master takes notes of this and helps in removing impediments.
- Sharing information - A subtle way to have team's backup as everyone gets to learn what other person is doing
- Shared knowledge - Helps to gel the team