Thursday, March 3, 2011

Scrum

The term agile software development is an oft used buzz-word, but the main idea behind this term is that we expect changes in requirements through-out the development cycle and should anticipate these changes by developing in a way that allows us to respond quickly to changing requirements and conditions. One of the most popular agile development methodologies is Scrum, which is widely recognized as a leading agile software methodology. I have been reading different sources of information and I have found some times they over explain what Scrum is with long boring and sometimes confusing articles. The idea of this post is to point you with resources which describe Scrum in a nice way, so hopefully you don´t have to go through all these endless amount of boring articles with confusing terms when you just want to know what Scrum is in a nut-shell.

Scrum is an iterative, incremental methodology for project management, designed to keep software teams responsive to changing requirements, and to prevent projects and developers becoming stale. Scrum has become popular because it tackles well one of the main constant in software development, and that is: Changes. Let´s look at some problems that a software company often experiences when not using an agile development method.

Typically a new product is due to be released at a particular date to meet customer´s needs. During the process of developing this software the company might adopt the classic waterfall which comprises a series of steps: gather requirements, make the design, implement , test , release and maintain.
This approach has several drawbacks among them:
  • it is not responsive to changing requirements which we know in reailty will come.
  • the customer is not presented with small incremental samples of the end product which would help ensure him and us that we are proceeding in the right direction
  • Important - we have nothing to show or to sell until the entire product is assembled, debugged and presented to the user who is then hopefully happy with it.
  • it is almost impossible to accurately esimate how long this entire development process will take. Most companies think of a number and double it - hardly a scientific approach..
  • the development team can become stale and demotivated in the middle/end of a long development cycle.
On the other hand Scrum offers an alternative more agile approach to coupe with these problems. The main idea behind Scrum is that it encourages a development team to remain agile by adopting short development cycles called sprints. At the end of the sprint the tasks for that sprint must be of a releasable quality, so that in the ideal case, a subset of the final product can be presented to the customer for their immediate feedback.

If you are interested to find an overview of what Scrum is about without going through boring tutorials I really recommend watching this video to get to know more about Scrum; I found it on youtube and describes what Scrum is in a very nice and easy to understand way:




As you saw on the video there are a few pieces of scrum terminology that are necessary to know before working with it. If you want to have a handy source of information about this terms then I recommend you to print this scrum cheat sheet and put it close to your desk and take a peek to the following site

No comments:

Post a Comment