Scrum Development Model
Background Of Scrum Model:
The word Scrum from rugby game where players are united in a specific position to achieve the common goal. (Ionel, 2008). The first software was developed using Scrum model in 1993 at Easel Corporation. Jeff Sutherland was the Chief Engineer who defined Scrum roles and built first portfolio of product. Dr. Jeff Sutherland developed first product and sprint backlog and hired the Product Owner and Scrum Master for the Scrum project first time.
In 1995, Jeff Sutherland gave idea of Scrum team to Ken Schwaber who was CEO of Advanced Development Methods. They both worked together for further development in Scrum. Jeff Sutherland educated the Yahoo engineers about Scrum in November, 2005. One evening, Yahoo president Pete Deemer called a meeting of senior management and decided to roll out Scrum companywide (Sutherland and Schwaber, 2007 ).
Many large and small companies are using Scrum for the software development like Yahoo!, Microsoft, Google, Lockheed Martin, Motorola, SAP, Cisco, GE, Capital One and the US Federal Reserve. Scrum is an iterative model used for software development.
The SCRUM methodology is suitable for all types of project, product, and application development. (Ionel, 2008). Scrum divide problem into tasks and assign each task to group. The duration of each sprint is about four to six weeks. The time of sprints is fixed and it ends on a specific date whether the work has been completed or not, and is never extended. (Deemer, 2010).
At the end of each sprint, the team demonstrates the progress of the project to the product owner, stakeholders, and customers. The project’s progress is transparent to the customer even he can change the project execution plan in the middle of the project which is not possible with the traditional approach. Scrum prefers to multitask workers instead of team members working with a single job title so that team members could do any task where the work overload is more. In this way team help and learn new skills from each other.
Role of Scrum
There are three main roles in the scrum.
Product owner is responsible of collecting all inputs require to build project from customer or end-user, stakeholders. He prepared features list and prioritized them according to user demand means what should be at the top of list for sprint. He managed Product Backlog and ensures that it is visible to all. Product Owners can add or remove features from the product backlog. He also confirms, what is going on in the next sprint (Sutherland and Schwaber, 2007).
The product owner is responsible for the profit and loss of the product. Product owner reviews the business impact for product backlog items. He is different from traditional product manager because he personally interact with team members and actively involved in the development.
He offers priorities and encourages team members. Product owners gave them free hands to do work and use their capabilities without any pressure. He decides the release date and reviews results after each iteration. He estimates the cost of developing features with the help of team members.
2. Development Team
Scrum team follows the instructions of product owner. Team in Scrum is cross-functional and it uses all the capabilities and expertise needed to deliver optimum result of sprint. Scrum gave free hand to team members within the boundaries of project to do anything to reach the goal of sprint. Scrum team is self-organize with high degree of autonomy and accountability. Team has authority of breaking down the product backlog into tasks and sub-tasks.
Scrum team is responsible for analyses, design, develop, test, technical communication, document, etc. Team developed the product according to the features provided by product owner and gave ideas to product to achieve best result. In addition, Coordination among team members should be high and dedication to work should be optimum. The scrum team attends the meeting for sprint planning. Usually number of team members in Scrum is seven plus or minus two people. Team creates sprint backlog and update backlog item status daily. Scrum team helps the Product owner to estimate the cost of developing features.
3. Scrum Master
Scrum master use all his resources to help and guide the development team and product owner to achieve sprint goal. He protects team from outside interference and threats so Scrum master should be very energetic, dedicated and sincere with his job. He ensures that all team members understood the sprint goal and deadline. Scrum master should be expert in analysis, Design, Testing, Product Management, Project Management, or Quality Management.
Scrum master may resist any changing introduced by product owner in the middle of sprint. Instead of assigning tasks to team, Scrum master facilitate and cooperate with the team to complete process. He removes any impediment to achieve the goal..
Responsibilities of Scrum Master
Followings are main responsibilities of Scrum master.
- Update burn down chart on the base of tasks completed, new started task or any new added, an estimate change. Burn down chart shows the remaining work day by day.
- He keenly observes the task in progress, either it will complete on time or not.
- Scrum master helps to remove impediments or blocks of any task. He try to solve it within team or across team and involved management if company block the team to achieve goal. Some impediments need management attention to resolve.
- Personal issues among team members are very crucial and need to resolve on an urgent basis. During work at ATT Bell Labs, Jim Coplien did case studies over 200 projects and noted that over 50% productivity loss were due to personal issues (Sutherland and Schwaber, 2007). So its duty of Scrum master to resolve all personal issues by dialogue within team or scrum master may take help of management or human resource group to resolve issues.
- Scrum Master ensures that team members are functional and productive.
- He ensures that team members are working according to feature list and make sure the team cooperation and coordination with each other.
- Scrum Master is responsible for issuing daily Scrum meeting invitations, sprint review and planning of meeting. He advise product owner about addition or removal.
Ceremonies of Scrum
There are main three ceremonies of Scrum.
Sprint meeting is require before start of any sprint because success of sprint depends upon sprint planning meeting execution. It is mandatory for Product owner, scrum master and all team members that they attend sprint planning meeting. This meeting can continue maximum eight hours. Basically, there are two parts of sprint meeting. In part1, product owner and team members review items or feature list of product backlog and choose high priority items for implementation in sprint on the base of team size, available hours and level of team productivity. Top priority item kept on the top. It is also discussed “what goal they will achieve after completion of selected items list?” Actually in parts1, main focus is “what product owner wants?” Meanings of “Definition Done” is explained.
In part2 of sprint planning meeting, main focus is explanation about selected tasks for implementation. Scrum master guide the team members to breakdown the product features into sprint backlog. It is discussed “How to implement the tasks?”How much time and cost is required to complete selected task for sprint? How much working hours each member have for sprint related work excluding lunch break, attend meeting, doing email time etc.? Usually team members are 4-6 hours available for sprint related work. An estimated chart of available working hours of each member is prepared as shown in the figure.
2. Daily Scrum Meeting
Arrange daily scrum meeting on each work day for 15 minutes or less. Main purpose of this meeting is to synchronize the team work and gave report of impediments faced by any team members. Each member tell about status of work assigned him/her. Everyone can attend daily scrum meeting but only development team members have to give answers of three questions.
What I have done yesterday?
What I am going to do today?
Which impediments I can face?
This is detail discussion meeting. If there is need of discussion then call urgent follow up meeting daily scrum meeting. Implicitly team members gain knowledge during meeting and team continuously assess its own progress achieve target of sprint.
3. Sprint Review
Arrange a Sprint review meeting at the end of the sprint. Team gave demo about product built during sprint. In sprint review meeting, product owner inspect and adapt product built. It is just 30 minutes demo about the built product no power point slide show. Basically sprint review meeting is deep conversation between product owner and team members for further advice. Scrum master make sure that everyone know the “Definition Done” and prevents of demonstrating the items that are pending yet. Not done items go back to the product backlog and can be developed in the next sprint according to the priority given by product owner. In this way software quality is visible to product owner, team members, and scrum master, plus customers, stakeholders, experts, executives or anyone who attend this meeting.
Artifacts of Scrum
There are three main artifacts of Scrum
1. Product Backlog
First of all product owner collects all requirements of project going to develop. Customer involvement is crucial in Scrum. Once requirements and user stories are clear then product owner makes feature list priority wise. Prepare the product backlog and put high-priority items on the top. The selection of high priority items is based on the customer demand and business value. The product backlog remains until the completion of project and product owner have to update it regularly according to the customer demand, market value or new ideas need to add. Only single product backlog exist for whole project. Product backlog item are different in size. Large size item is break down during sprint planning meeting. The main advantage of product backlog is that we save our time of writing detail requirement specification. write only those requirements in detail which product owner and the team decide.
2. Sprint Backlog
When the product owner and team understood the overall design of project then set-top priority items list in product backlog. After that scrum master leads the team to decompose the product backlog items into sprint task list that form a sprint backlog. The sprint backlog includes all those item which team has to build during sprint. In sprint planning session, assign tasks to team member and set time estimation. Once sprint has started, team members cannot change the tasks until there is require extreme case of changes. In such case continuing of sprint is useless effort of team members and wastage of time. Product owner can stop sprint in extreme case with full support of team members. Update Sprint backlog daily usually during daily scrum meeting. The spreadsheet shows the sprint backlog as shown in the figure.
Burndown chart is basically a graph which Scrum master or team update daily. It shows the remaining work or effort required to complete the sprint tasks. Actually this is downward sloping graph which reach to the zero effort remaining by the end of sprint that’s why its name is burndown chart. Burn down chart is usually used in Scrum to show the remaining work in the sprint backlog which is update daily and shows progress of sprint.
Burn down chart helps management to solve problems such as scope creep or a deviation from the planned project at an early stage. Although burn down chart is simple and easy to understand but there are some limitations such as it cannot represent the accurate reflection of the project team output when added or removed requirements in the mid-project (Akif and Majeed, 2012). Since burndown chart is made on spreadsheet but some team members look more comfortable to make on white board or wall with pen.
Figure: Burndown chart