![]() |
Site Archive (Complete) | |||
|
ABOUT US |
CONTACT |
ADVERTISE |
SUBSCRIBE |
SOURCE CODE |
CURRENT PRINT ISSUE |
NEWSLETTERS
|
RESOURCES
|
BLOGS
|
PODCASTS
|
CAREERS
|
||||
December 01, 2003
The Right Tool for the JobWhen it comes to methodologies, one size doesn't fit all. By examining all the options, you can create a mix-and-match approach that best suits your project.Scott Ambler
When it comes to methodologies, one size doesn't fit all. By examining all the options, you can create a mix-and-match approach that best suits your project.
Software Development
The Right Tool for the JobWhen it comes to methodologies, one size doesn’t fit all. By examining all the options, you can create a mix-and-match approach that best suits your project.By Scott W. AmblerOne of my grandfather’s favorite sayings was “Use the right tool for the job”—common-sense advice that applies to a wide range of situations. Unfortunately, as Mark Twain observed, common sense isn’t very common—many organizations seem to struggle with identifying the best software processes for them. To succeed, you must understand the available options, as well as the issues surrounding software process selection. “Common Software Processes” illustrates the leading software processes—and there’s a wide range to choose from. Some processes are agile; some are not. Some are full lifecycle; some are not. Some are well defined; some, such as Extreme Programming, are nearly philosophical in nature. The good news? There’s a lot to choose from. That’s the bad news, too. Waxing Philosophical How do you pick the right tool for the job? When it comes to software process selection, I’m guided by several key philosophies:
Risk-Based Selection It’s easy to say that you need to use the right process for your project—but very difficult to achieve. Barry Boehm and Richard Turner provide good advice in Balancing Agility with Discipline: A Guide for the Perplexed (Addison-Wesley, 2003), presenting a risk-based approach for choosing a methodological strategy for a project. They advise that uncertain requirements, complex technologies and low employee turnover favor agile projects, whereas larger teams and a diverse group of stakeholders lend themselves to more prescriptive methods. They note that you’ll probably need to tailor agile methods with prescriptive techniques to scale them, and, similarly, tailor prescriptive methods with agile techniques to make them more effective—it isn’t a black and white world, after all. My experience is that cultural issues are important, and Boehm and Turner concur. Do the people on a project team require a well-defined process or are they comfortable with one that is looser? “Comparing Leading Software Processes” evaluates processes using two factors: definition and scope. The horizontal axis indicates how well defined the processes are, while the vertical axis addresses the methodologies’ scope, or completeness. Some methods, such as Agile Modeling (AM) and Test-Driven Development (TDD), are partial approaches, whereas others, such as DSDM and FDD, address the entire lifecycle. If you need to develop a single project, processes such as XP or RUP are good candidates. However, if you must address the full system lifecycle, you may need to adopt the EUP or IEEE 12207, as well. To pick the right process for your job, you need to understand the strengths and weaknesses of your options, and mix and match techniques to arrive at the right approach. Many organizations find that the partial processes such as Scrum, AM and TDD provide commonality among teams following differing base processes such as XP, FDD and RUP. Maybe things aren’t as difficult as they appear, after all.
Scott W. Ambler is a senior consultant with Ronin International Inc. His latest book is Agil Database Techniques: Effective Strategies for the Agile Software Developer (Wiley, 2003)
|
|
||||||||||||||||||||||||||
|
|