Skip to content

SCRUM: An Agile Software Development Technique

Yiğit Özgümüş edited this page Feb 23, 2016 · 4 revisions

What is Scrum ?

Scrum is a management and a control process for completing complex projects. It is a type of agile framework which based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.

You can see the general progress of the SCRUM in the graph below:


![Alt text](http://g.gravizo.com/g? digraph G { aize ="4,4"; product_backlog [label ="Product Backlog"]; product_owner [label="Product Owner"]; product_owner -> product_backlog[label="checks features",color=green] ; product_backlog [shape=box]; release_planning [label="Release Planning"]; product_backlog -> release_planning [weight=8,color=blue]; release_backlog [label="Release Backlog",shape=box]; release_planning -> release_backlog[color=blue]; developers -> release_backlog[color=green,label="Time Estimation"]; Team -> release_planning[color=green,label="Prioritize"]; scrum_master[label="Scrum Master"]; scrum_master -> product_backlog[color=red,label="Monitoring"]; scrum_master -> release_planning[color=red,label="Monitoring"]; scrum_master -> release_backlog[color=red,label="Monitoring"]; sprint_logs [label="Sprint Backlogs"]; release_backlog-> sprint_logs[label="Splitting Work",color=blue]; scrum_master -> sprint_logs[color=red,label="Monitoring"]; burndown_chart [label="Burndown Charts"]; sprint_logs -> burndown_chart[label="Monitoring",color=blue]; sprint_retro[label="Sprint Retrospective Meetings",shape=box]; sprint_logs -> sprint_retro[label="Upon Completion",color=blue]; scrum_master -> sprint_retro[color=red,label="Monitoring"]; scrum_master -> burndown_chart[color=red,label="Monitoring"]; burndown_chart -> sprint_logs[label="Remaining Work Data",color=blue]; daily_scrum[label="Daily Scrum Meetings",shape=box]; burndown_chart -> daily_scrum[color=blue]; scrum_master -> daily_scrum[label="Monitoring",color=red]; } )

How SCRUM Works ?

SCRUM process requires a number of team members with specific responsibilities. These are namely:

  • Product Owner
  • Scrum Master
  • Developers
  • Testers

All Scrum progress cycle is controlled and monitored by the Scrum Master. This person makes sure that the progression of the project goes smoothly, arranges the daily scrum and sprint retrospective meetings and checks if every member of the team has appropriate tools to complete their job.

Product Backlog consists of user stories. User stories are features, written from the perspective of an end user. They describe the end product and they are monitored by the Product Owner. Product owner decides which stories to be kept and which stories are not needed for the further development. This process is Release Planning.

After Creating Release Backlog from the Product Backlog, team prioritizes the stories and make an estimation about their completion times. There are different types of estimation criterions for the workload prediction. One of them is story points. Advantage of this unit is that it represents the smallest amount of work that it can be done for any story so it can be used to quantify any story in the Release backlog. But it doesn't answer all the questions that developer might ask when he/she predicts the story point of a particular story, so estimation by completion hours is the more general and popular way of estimating the workload of a particular story. After the workload estimation and prioritization of the release backlog, they are grouped into a more manageable chunks and Sprint Backlogs are created.

Sprints represent short duration milestones in the project. Their duration range from 2 to 30 days. Their durations are positively correlated with their release cycles. After Completion of each sprint, the current progress of the product should be tested and ship-ready. Sprint retrospective Meetings are for the discussion of the state of the project after the sprint completion and re-plan the current sprints if there is a need for modification.

Burndown Charts are perhaps the most useful feature of the SCRUM system. It monitors the progress of the sprints and gives a clear picture of the general development of the project on a daily basis. Team can calculate their estimated finish date from the burndown Velocity(Rate of Productivity) on the graph and check whether the project is on schedule or not.

Data of the Burndown Charts are usually discussed in the Daily Scrum Meetings. In these meetings, each team members gives status update about their tasks related to sprints and seek advice or consult from other team members about the obstacles or difficulties they encounter if there are any.

Resources and References

Clone this wiki locally