Wednesday, August 23, 2006

SCRUMptious

In a previous article I took a brief look at how the agile development methodology compares against other traditional SDLC models like waterfall and test driven development (intentional programming). Continuing the theme, I thought I would provide some thoughts on the SCRUM process. "Scrum is a lightweight agile method for software development...named after the Scrum in rugby, which is a way to restart the game after an accidental infringement.", wikipedia Now that sounds reactive rather than proactive so what use could it be? If I wanted to think of one point of focus for agile development (for simplicities sake) it would be change. Embracing change, rather than abhorring it. Saying, we know it is going to happen. How can we best handle it? This suggests that Scrum is a process to employ upon and for this infringment or change. This sums it up nicely..."A key principle of scrum is its recognition that fundamentally empirical challenges cannot be addressed successfully in a traditional "process control" manner. As such, scrum adopts an empirical approach - accepting that the problem cannot be fully understood or defined, focusing instead on maximizing the team's ability to respond in an agile manner to emerging challenges." , wikipedia Some characteristics of Scrum: Scrum is well suited to projects...
  • where requirements are not fully understood at the beginning of the process
  • where requirements often change during a set process
  • where processes become unpredictable when new tools and technologies are introduced
Thus utilising the scrum process a project can start on any activity and change to any other activity at any time. It is not seen as a linear process. When you are not bound to a linear process and can adapt on the fly to change. Either before you see it or after it occurs (usually the latter). In doing so, the projects flexibility is increased. Further characteristics of Scrum include:
  • Flexible schedule
  • Flexible deliverables
  • Small teams
  • Frequent review
  • Object oriented
  • Collaboration between and within teams
Further characteristics that Scrum shares with Rugby are:
  • The environment determines the process (the game)
    Usually we get stuck with a process that dictates the environment
  • The environment (functionality, timetable, business need and competition) dictates the ending of the process (the game)
    Usually we work to strict/rigid time boxes
  • “Rugby evolved from breaking soccer rules – adapting to the environment.” (Schwaber, K.)
  • “The primary cycle is moving the ball forward” (Schwaber, K.)
Letting the bomb explode and having a well defined process in practice for cleaning up the aftermath or providing evacuation, paradoxically, may lead to a cleaner/smoother following iteration than the alternative of trying to prevent it in the first place; Fighting the war that you are inevitably going to lose (clients always change their mind and rarely if ever know what they want) and postponing the inevitable is backward thinking. We recognise change, we've chosen to embrace it. We know it is going to happen, why not provide a well defined process for when it does occur.

1 Comments:

Anonymous Anonymous said...

"interested in emerging technologies and all things linux and open source"

you mention intentional programming. do you know if anyone in open source community is working on it, i think it looks like it's good?

http://www.youtube.com/watch?v=ZZDwB4-DPXE

9/04/2006 10:04:00 AM  

Post a Comment

Links to this post:

Create a Link

<< Home