Dr. Dobb's Journal - July 2008 - (Page 60) The Agile Edge by Scott W. Ambler Agile and Large Teams Size is in the eye of the beholder AGILE SOFTWARE DEVELOPMENT techniques definitely scale. In Dr. Dobb’s 2008 Agile Adoption Survey we saw that organizations are applying agile strategies in a variety of team sizes, including teams of over 200 people. For example, Lotus Sametime 7.5 was developed by an agile team of over 200 people at the peak of the project and within IBM there are other agile projects on the order of 500–600 people. At the Agile 2006 and 2007 conference, there were experience reports from agile teams of several hundred people. I expect the same at this year’s conference, to be held August 4–8 (www.agile2008.org). Because one team organization structure does not fit all, this month I share strategies for organizing teams of various sizes. A few years ago, Larry Constantine presented the best definition of a large project that I’ve ever run across: A large project is 20 percent bigger than any project you’ve successfully accomplished in the past. In other words, size is in the eye of the beholder, regardless of what the spammers may claim . For example, some organizations may consider a 20-person project to be huge whereas others may consider a 200-person project to be merely mid-size. For the sake of this discussion, the border between small and medium-sized project teams will be around 15, and between medium and largesized teams around 50. a requirement or the sponsoring executive to explain the vision for the system. Effective agile teams often have an independent test team working in parallel that validates their work throughout the lifecycle (see “Scaling Test Driven Development, www.ddj.com/ architect/205207998). Domain and technical experts are typically brought into the team for a short period of time, perhaps only a few hours or days, to help with a specific task. Independent testers and agile DBAs work with the team on an ongoing basis. Medium-Sized Agile As the size of your team grows, starting at 15 and perhaps up to 50, you’ll see a team structure similar to Figure 2. You may also start to see some of the coordination groups of Figure 3, particularly if you organize your team into a collection of subteams. As the team size grows, the independent tester(s) move from being optional to mandatory due to the complexities of the domain problem being addressed. If you’re working with relational database technology, you’ll want an agile database administrator (DBA) who is skilled in techniques such as database refactoring, continuous database integration, database regression testing, and agile data modeling. Small teams will generally spread this work amongst themselves, but as the team grows it makes sense to have someone in the role to focus on data issues. Agile DBAs work closely with developers, ideally pairing with them, to do database-related work. Greater detail about this role and the requisite skills can be found at the Agile Data site (www.agiledata.org). Agile in the Small Most agile teams are less than 10 people and colocated. Although this sounds naive, Jim Highsmith has estimated that close to three quarters of all software development teams, be they agile or not, are less than 10 people in size. In this relatively simple situation, you can adopt a simple team organization structure, as in Figure 1. Agile team members, particularly on small teams, tend to be generalizing specialists (www.agilemodeling.com/essays/generalizingSpecialists.htm) who have one or more specialties such as Java programming or testing, at least a general knowledge of the software process and of the domain that they’re working in, and the willingness to collaborate closely with and learn from others. What you typically read about in the agile literature is how a team of developers, lead by a team coach or “Scrum Master” works close, ly with a product owner who represents the stakeholder community to build a high-quality working system on an incremental basis. What you don’t hear about as often is what I call the “supporting cast”—the technical experts, domain experts, and optional independent tester who help the team to succeed. Sometimes the team needs the help of technical experts, such as build masters to set up their build scripts or a database expert to help tune their database. Similarly, sometimes the product owner will bring in domain experts to work with the team, perhaps a tax expert to explain the nuances of 60 Dr. Dobb’s Journal l www.ddj.com l July 2008 Big Honking Agile When the size of an agile team gets to be around 20 or more, you discover that you need to divide and conquer and take a “team of teams” approach. The typical strategy is to organize your larger team into a collection of smaller teams, and the most effective way to do so is around the architecture of your system. Each subteam should be responsible for one or more subsystems, enabling them to work as a small agile team responsible for delivering working software on a timely basis. This strategy is often referred to as “Conway’s Law” after Melvin Conway who introduced it in the late 1960s, and is one of several lean development governance strategies. Figure 3 depicts the strategy for organizing a large agile team into a collection of smaller ones. The primary difference is the addition of the coordinating body, something that is typically required around the point where a team is made up of 50 or more. The coordinating body is organized into three subteams: • The project management team (sometimes called the “program management team”) is comprised of the team coaches from the http://www.ddj.com/architect/205207998 http://www.ddj.com/architect/205207998 http://www.agile2008.org http://www.agiledata.org http://www.agilemodeling.com/essays/generalizingSpecialists.htm http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - July 2008 Dr. Dobb's Journal - July 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Developer’s Notebook Engineers Without Borders Conversations Patricia Tries Event-Based Architectures Graphs Versus Objects Lock-Free Queues Dr. Dobb’s Architecture & Design World Java and the Nokia N10 Internet Tablet Effective Concurrency The Agile Edge Swaine’s Flames Dr. Dobb's Journal - July 2008 Dr. Dobb's Journal - July 2008 - (Page Belly1) Dr. Dobb's Journal - July 2008 - (Page Belly2) Dr. Dobb's Journal - July 2008 - Dr. Dobb's Journal - July 2008 (Page Cover1) Dr. Dobb's Journal - July 2008 - Dr. Dobb's Journal - July 2008 (Page Cover2) Dr. Dobb's Journal - July 2008 - Dr. Dobb's Journal - July 2008 (Page 1) Dr. Dobb's Journal - July 2008 - Contents (Page 2) Dr. Dobb's Journal - July 2008 - Contents (Page 3) Dr. Dobb's Journal - July 2008 - Friday Night Fish Fry (Page 4) Dr. Dobb's Journal - July 2008 - Friday Night Fish Fry (Page 5) Dr. Dobb's Journal - July 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - July 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - July 2008 - Alia Vox (Page 8) Dr. Dobb's Journal - July 2008 - Alia Vox (Page 9) Dr. Dobb's Journal - July 2008 - Developer Diaries (Page 10) Dr. Dobb's Journal - July 2008 - Developer Diaries (Page 11) Dr. Dobb's Journal - July 2008 - Developer’s Notebook (Page 12) Dr. Dobb's Journal - July 2008 - Developer’s Notebook (Page 13) Dr. Dobb's Journal - July 2008 - Engineers Without Borders (Page 14) Dr. Dobb's Journal - July 2008 - Engineers Without Borders (Page 15) Dr. Dobb's Journal - July 2008 - Engineers Without Borders (Page 16) Dr. Dobb's Journal - July 2008 - Engineers Without Borders (Page 17) Dr. Dobb's Journal - July 2008 - Conversations (Page 18) Dr. Dobb's Journal - July 2008 - Conversations (Page 19) Dr. Dobb's Journal - July 2008 - Patricia Tries (Page 20) Dr. Dobb's Journal - July 2008 - Patricia Tries (Page 21) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 22) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 23) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 24) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 25) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 26) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 27) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 28) Dr. Dobb's Journal - July 2008 - Event-Based Architectures (Page 29) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 30) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 31) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 32) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 33) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 34) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 35) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 36) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 37) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 38) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 39) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 40) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 41) Dr. Dobb's Journal - July 2008 - Graphs Versus Objects (Page 42) Dr. Dobb's Journal - July 2008 - Lock-Free Queues (Page 43) Dr. Dobb's Journal - July 2008 - Lock-Free Queues (Page 44) Dr. Dobb's Journal - July 2008 - Lock-Free Queues (Page 45) Dr. Dobb's Journal - July 2008 - Lock-Free Queues (Page 46) Dr. Dobb's Journal - July 2008 - Lock-Free Queues (Page 47) Dr. Dobb's Journal - July 2008 - Dr. Dobb’s Architecture & Design World (Page 48) Dr. Dobb's Journal - July 2008 - Dr. Dobb’s Architecture & Design World (Page 49) Dr. Dobb's Journal - July 2008 - Java and the Nokia N10 Internet Tablet (Page 50) Dr. Dobb's Journal - July 2008 - Java and the Nokia N10 Internet Tablet (Page 51) Dr. Dobb's Journal - July 2008 - Java and the Nokia N10 Internet Tablet (Page 52) Dr. Dobb's Journal - July 2008 - Java and the Nokia N10 Internet Tablet (Page 53) Dr. Dobb's Journal - July 2008 - Java and the Nokia N10 Internet Tablet (Page 54) Dr. Dobb's Journal - July 2008 - Java and the Nokia N10 Internet Tablet (Page 55) Dr. Dobb's Journal - July 2008 - Java and the Nokia N10 Internet Tablet (Page 56) Dr. Dobb's Journal - July 2008 - Effective Concurrency (Page 57) Dr. Dobb's Journal - July 2008 - Effective Concurrency (Page 58) Dr. Dobb's Journal - July 2008 - Effective Concurrency (Page 59) Dr. Dobb's Journal - July 2008 - The Agile Edge (Page 60) Dr. Dobb's Journal - July 2008 - The Agile Edge (Page 61) Dr. Dobb's Journal - July 2008 - The Agile Edge (Page 62) Dr. Dobb's Journal - July 2008 - The Agile Edge (Page 63) Dr. Dobb's Journal - July 2008 - Swaine’s Flames (Page 64) Dr. Dobb's Journal - July 2008 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - July 2008 - Swaine’s Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.