SCRUM
Scrum get's it's name from rugby, "the whole process is performed by one cross-functional team across multiple overlapping phases, where the scrum (or whole team) "tries to go the distance as a unit, passing the ball back and forth"."(Taken from wikipedia, but originally from "The New New Product Development Game" ) The scrum methodology is actually an agile based method. Some of the key factors:
Scrum Team:
Product Owner: The voice of the customer. Selects which items should be accomplished during the next sprint, places priorities on the different tasks.
ScrumMaster: Enforces the rules of the Scrum. That the sprints take place, keeps the team focused and takes care of anything that may be impeding the teams focus or work (ie. resolves conflicts, removes distractions, enforces time limits on meetings).
Team: Developers who will be carrying out the sprints and creating the software.
Ideally a scrum team would meet everyday for 15 minutes in what is called a daily scrum. Each member is asked the following three questions: What did you do yesterday? What are you planning on doing today? Are there any problems that are preventing you from completing your tasks?
This is a great way to keep the members of the group accountable, as well as keeping them focused.
At the beginning of the sprint there is a meeting where have of the meeting is the Product Owner talking to the group about which tasks are priorities and what they would like to see done or what the customer would like to see done. The second half the team will meet and assign points to each of the tasks and describe how the tasks are going to be broken up and implemented. The team then picks out what tasks they believe they have time to accomplish and sets the others in the sprint backlog. The sprint backlog will have tasks that the team works on after they have completed the other tasks.
A product backlog will be created that has a pool of all the tasks that the product owner desires to have completed by the end of the project. The sprint tasks are taken from that pool. Any tasks that were not completed in the sprint get put back into the product backlog and tasks are selected for the next sprint.
Pros:
Anyone involved with the product gets an update everyday so there are no "Surprise we are three weeks behind schedule!" moments, corrections are able to be made at the start of "slacking".
After each sprint the product can take a completely different route if desired, which gives it an enormous amount of flexibility. Also allows the team to not have to know and plan for every detail in the beginning
Developers are forced to, as our professor says, "eat the elephant one bite at a time" because of the smaller tasks that are meant to be completed in a couple of weeks or so.
Cons:
It is kind of stressful for developers to have to be able to perform everyday, but I mostly believe that it is stressful because human beings are naturally lazy, and programmers are even more so! "I'd rather write programs to write programs than write programs." -D. Sites
Distributed development could be pretty difficult, in getting the team to work properly and to get the desired end product.
AGILE
In Feb 2001 17 developers met together in Utah to relax, ski, eat and find common ground about lightweight software development. They created a manifesto which is the basis for agile development. Twelve principles behind the Agile Manifesto is also something important to look at to understand agile.
Some basic characteristics:
Small team size
Prefer face to face interaction over paperwork
Must have a Customer Rep
Iterative process
From what I looked at it seems like agile will have the same pros and cons as the scrum method which I have stated. There are a few different methods that are considered agile methods, like crystal clear, extreme programming, etc that will have different strengths and weaknesses. But it seems like scrum is a good example of a agile method. Now just like there are many ways of implementing a program, there are many implementations of the agile methodology.
love the D. Sites quote!
ReplyDeleteThank you for the info. It sounds pretty user friendly. I guess I’ll pick one up for fun. thank u.
ReplyDeleteScrum Process
interesting blog. It would be great if you can provide more details about it. Thanks you
ReplyDeleteScrum Proces