Monday, November 24, 2008

Sunday, November 16, 2008

Scrum...Introduction

I recently attended a certified scrum master training and I am now a certified scrum master (CSM). Although I was not new to scrum, my real life experience is less. I am writing this post so that I can revise my training and to explain scrum to others.

Scrum is the Project Management methodology that is an offshoot from Lean manufacturing, agile methodology and other result oriented methodologies.

'Scrum' term was first published by two Japanese professors (Hirotaka Takeuchi, Ikujiro Nonaka, ) in their seminal article " The New New Product Development Game" published in Harvard Business Review. In this article, the professors researched various companies like Fuji, Xerox, HP and Canon and compared their result oriented management philosophy to the game of rugby. In one example, one company shipped a cross functional team of engineers, testers, marketing guys and others to a remote location and asked them to come up with an revolutionary product. The interesting thing was that there were no managers among this team. In most cases these groups came up with new products, some great, some good and some average but all showed improvement from current products. This the authors likened to a scrum.

In rugby, one team forms a group called as scrum and tries to take the ball across to the other side while passing among themselves and also protecting the scrum. Every time the ball is taken to the opponent side, a sprint is completed. Scrum seemed to be a self contained organism and that's what the Professors were hinting for corporations to do to reduce time-to-market while keeping quality issues at a minimum.

The next iteration on scrum as a Management framework was started when Ken Schwaber and Chris Sutherland working independent implemented scrum in their companies. Later on they collaborated and presented a paper where they explained their methodology, its results and finally its implementation results. Ken Schwaber then in 2001 wrote the bible of scrum "Agile Software Development with SCRUM". At around the same time, a group of enlightened software engineers came up with the Agile manifesto , considered to be a declaration of war against waste and mismanagement in S/W management and moving away from organized Project Management.

Introduction video to scrum from the godfather of scrum Ken Schwaber.

The main philosophy of scrum is to build huge applications piecemeal like creating a house, brick by brick in this case sprint by sprint.
Timeboxing: The other concept is time boxing the development to a sprint so that developers can focus on getting things done without things continuously added to their plate.
Shippable code: Every sprint finishes with code that is tested and ready to ship.
Constant improvement: Since each sprint is comparatively smaller, scrum teams can add additionally functionality in the subsequent sprints. This keeps the Product owner happy as he/she can see actual implementation and can plan for adding or improving the application.
Since the sprints are also of smaller duration, management reporting can be done faster and decisions like add more staff or to yank the plug etc can be taken faster.

The above method avoids the pitfalls in the water-fall approach where we plan huge projects and plan for separate phases like analysis, coding and testing and each phase creates numerous artifacts (some needed and some unnecessary) most of which might not even be used. Now by the time the product is ready to be implemented, there are huge quality issues, project has overrun budget and to add insult to injury the product is obsolete. One such spectacular failures are Windows Vista (Begun in May 2001 planned to be implemented by Dec 2003 but finally ready by in Jan 2007). More examples can be found in the internet.

Before we discuss Scrum in detail, let us discuss one of the high profile successes using scrum in google. Adwords, one of the most important projects in google was implemented using scrum.

See below video on how google implemented scrum.

Friday, November 14, 2008

Create great mockups

I was recently researching tools for creating website mock ups and I fumbled into balsamiq. A very cool mockup site. It helps you create mockups for more than web pages and the beauty of it is ...its very simple and cheap too.
The UI looks very simple and its deliberate. Love this.