October 29, 2009

You Never Forget Your First Scrum

Agile

We're using Scrum in our software development. "Scrum" is an approach to what's called Agile software development, which can speed up software development. Scrum is based on "sprints" (short cycles), user stories, and quick daily meetings that are highly disciplined. The Scrum framework requires a Scrum Master to keep the project moving. As project manager, I was "elected," so off I went to take a two-day Scrum Master course.

Here's what I learned: There are three main roles in a Scrum project. The product owner owns the product backlog and is the person who owns the vision for the product. The Scrum Master facilitates the process and removes roadblocks. The team -- developers, QA engineers, build & release engineers, technical writers, and user interface designers -- builds and tests the product. All three roles are decision making roles and everyone collaborates to adjust the process as the project progresses.

I learned that this process originated in the 1910s in the car manufacturing industry,  developed further in NASA in projects in the 1960s, culminating in the 1990s with RUP, Extreme Programming and finally Agile Development. I was fascinated by the different types of people and projects in the class.  We had people from the video game industry, from software and hardware development, and a project manager.  In fact, Scrum could be used in most industries and probably at home to train the family.

I like things neat and tidy and finished to the best of our abilities. I'm finding that he Scrum framework allows me to work in a very discrete, systematic way, but also provides plenty of flexibility, due to its short cycles. I've readily adopted this method of thinking.