Home > Lessons from a Yahoo Scrum Rollout

Dev Trends

Lessons from a Yahoo Scrum Rollout

Yahoo's top coach in Agile practices describes the process, and how it speeds up Web application delivery

2/5/2008

Yahoo has grown from its initial dotcom roots. However, to stay competitive with all of that growth, the company began experimenting with Agile development techniques about three years ago. Now, Yahoo has more than 200 teams using agile development processes to create software for the highly volatile general-public Web application market.

A key organizer of those teams is Gabrielle Benefield, Yahoo's senior director of methods and practices. I spoke with her this month, and she answered a few questions about the Agile development process and Scrum, and how these methods have improved software development at Yahoo.

Kurt Mackie: Would you describe Scrum as a variant of Agile development?

Gabrielle Benefield: Think of Agile as the umbrella. So what happens is that there are different methods and practices around [it]. Scrum is extreme programming. In Europe, they have something called BSDM that will help with a plethora of things. The Agile Alliance was founded by a group of people, 17 of them, that said, "Hey, we're doing good works; we have all of these common things--what are they?" They came out with a set of values that drive the whole movement. The easiest way to describe it is that [software is developed in] small groups, which means small cycles and incremental [changes], which means that you release pieces of software rather than the typical big bang. Agile is the web describing the commonality between these things, which is very values driven, and Scrum is one of the methods. Scrum is a very lightweight framework in which you can adapt--and it's not just confined to software.

KM: Why settle on Scrum?

Benefield: Scrum is great etiquette for an organization. What happens is that if you want something that's very lightweight that can make a huge impact quickly, and be really simple to implement in its simplest form, Scrum is the way to go. It's really successful when you add on the engineering practices, things like some of the extreme programming techniques where they do a lot of testing, where you continuously build your software--things that improve the quality a lot. So Scrum tends to focus on a lot of collaboration, getting the team working, getting prioritization clearly defined, and then you add the engineering practices. And there are things called Lean that came out of the local processes from companies like Toyota, when they manufacture cars--ways of ridding waste through an organization, looking at [ways of] developing things called "just in time." So a lot of these influences are very strong in the Agile community.

We actually are very pragmatic. You'll find that there are some people who are very much "by the book," but we tend to want to adapt [scrum] to your own environment and even in the context of individual teams. You need to be really aware about people's needs.



Recommended Reading