Jan 27, 2007

Scrum Development

I’m working on a tool going to be launched with next Windows Server OS... We are using a project management process for development called Scrum process... I really liked it, so here is what is all about, try to understand it; it’s really interesting.

Scrum believes that a development team should perform as a sport team, every team member working independently but towards the same goal. Scrum suggests that a team has a maximum of 6 - 7 members. The team facilitator is called the Scrum master (project manager in most companies). His/her job is to implement and manage the Scrum process in the project. Scrum masters focus most of their time in managing outside interference for the Scrum team and solving outside impediments or ‘Blockers’ that cannot be solved by the Scrum team (Not managing the project budget like in most companies).

A project can start with any activity; analysis, design, implementation and testing and can change between activities at any time. This increases the project's flexibility and productivity. Scrum assumes that the software development process is complicated and unpredictable and treats it as a controlled black box. Scrum takes into consideration that:
- Requirements are not fully understood at the beginning of the process.
- Requirements change during the process.
- The process becomes unpredictable when new tools and technologies are used.
They say that scrum is also a way of playing the rugby (the game). Characteristics that Scrum shares with rugby are:
- The environment determines the process (the game)
- The environment (functionality, timetable, business need and competition) dictates the ending of the process (the game).
- “Rugby evolved from breaking soccer rules – adapting to the environment.” (Schwaber, K.)
- “The primary cycle is moving the ball forward” (Schwaber, K.)

The whole project gets divided into periods of time with a maximum duration of 4 weeks. One period is called a Sprint and every team member gets tasks to execute within the given Sprint. For example in our project the sprint is 3 weeks time period, during which we should come up with a complete phase of the project. During the sprint, the team conducts regular scrum meetings (2 days per week in my team, other teams do scrum meetings every day). The meetings are held in the same place at the same time every specific period of time. The meetings don’t last for more than 30 minutes. The scrum master is responsible for asking every team member the following three questions:
1. What have you done since the last scrum meeting?
2. Is there any road blocks?
3. What do you plan on doing between now and the next scrum meeting?

Conversation is restricted to the team members answering the above questions. Meetings can be established for immediately after the scrum meeting based on answers to the above questions. The scrum master is responsible for making decisions immediately, if required to remove impediments to progress. The scrum master is responsible for noting impediments that must be resolved external to the meeting and causing them to be removed.

In my opinion, I feel the scrum development management is very effective, makes the developer free to decide what he needs, which reflects on his creativity. It also identifies for the management the role of solving any blockers facing the team, not controlling the team like what really happens in many companies! It’s an amazing experience and a new thing that I’m learning in Microsoft. It also made me feel that my project manager now, is actually part of my team, we are all working to get the product done, he’s not ordering anyone to finish, he’s one of us, we are a team! But he’s the one who points out that we are late in schedule, or that we need to ramp up a little... etc.
I Hope I have transferred some of my knowledge to u in a good and effective way, I really do hope that some managers really read this way of management and try to implement it in their own companies. Just give it a try, really it’s all about the team, managers should be part of the team!

References

5 comments:

Ali Abdin said...

Yeah - scrum is a very new and interesting way of managing a project..

The reason SCRUM came about was due to the inefficiencies of the traditional waterfall method. It just doesn't scale well when you want to do things fast - Especially in this day and age with web development and the need to constantly innovate quite rapidly.

I also think there is some motivational factor behind seeing your project being developed rapidly...If you feel things are moving fast and you can see the progress being made in a short period of time, it motivates you to code more/better in order to finish the job.

I think SCRUM is perfect for creating online applications (such as Live Mail or Local Live (a.k.a. Maps Live)) as users want to see rapid development occuring (imagine waiting a few years to get new features on a web application?)

Anyway - another interesting technique (part of Extreme Programming) that I've always wanted to try is Pair Programming. I've kind of done it during my Uni days and found that it's a lot more fun than coding alone, and possibly a lot more productive (by catching mistakes earlier)...But that might be a topic for another day :P

Oh - and for the readers who keep track of the comments. We finally created a Puzzle Hunt team (thats one down off Hany's todo list)...Hany came up with the name, so I'll leave it to him in case he wants to tell you :P Or you guys can just guess :)

Hany Barakat said...

@Ali thx for ur comments... about the puzzle hunt team, It's a contest going to be held by MS, it's some kind of mysteries action held over MS campus... So, we were thinking about a name, I have a funny story about names with my ACM team, anyway I suggest many names. The one that everyone agreed on is... Keme-Keme-Ka! A team for puzzle hunting, supposed to be smart, is going to call himself a Keme-Keme-Ka!! :-)

Mohamed Moshrif said...

You forgot to mention the list of the weird stuff they asked us to bring, I'll collect all this information in one post and put it in my blog.

Thanks god they didn't ask us to bring swords!

Anonymous said...

Hi Hany,

I'm missing the story of your 3rd interview :). I have read everything since the 2nd interview looking for the continuation (I know, I could just check the archive, but I was enjoying reading your blog).

So, would you mind to continue your interview's story? :)

thanks!

Hany Barakat said...

:-) Sure... No problem, I'll continue the rest of the interviews (just give me time to compose and remember them a bit clearer), :-) and I'm glad u r enjoying my blog! Thx.