FREE Subscription to Dr. Dobb’s Digest: Same Great Content, New Digital Edition
Site Archive (Complete)
Architecture & Design
Email
Print
Reprint

add to:
Del.icio.us
Digg
Google
Furl
Slashdot
Y! MyWeb
Blink
December 01, 2003

The Right Tool for the Job

(Page 2 of 3)
The Right Tool for the Job

Software Development
December 2003

The Right Tool for the Job

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.

By Scott W. Ambler

 

Common Software Processes
Process/Method Description When/How to Use It
Agile Data (AD) A partial agile methodology focusing on techniques that support evolutionary (iterative and incremental) database development. Tailor AD philosophies and techniques into other evolutionary processes.
Agile Modeling (AM) A partial practices-based methodology that describes techniques for effective modeling and documentation of systems. Tailor AM principles and practices intoother agile or near-agile processes.
Dynamic System Development Method (DSDM) An agile software development methodology that has received ISO 9001 certification. In many ways, DSDM is a formalization of the Rapid Application Development (RAD) methodologies of the 1980s. Appropriate for developing user interface–intensive systems and/or complex business applications.
Enterprise Unified Process (EUP) A rigorous full lifecycle methodology that includes development, operation and retirement of software-based systems. The EUP extends the RUP to a multisystem view that includes enterprise architecture, reuse management, portfolio management and people management activities. You’ve been successful at several RUP projects and wish to now take the full system lifecycle into account, as well as cross-project issues such as portfolio management, strategic reuse and enterprise architecture.
Extreme Programming (XP) An agile software development methodology that focuses on the critical activities required to build software. Small, colocated project teams (4–10 people), where the requirements are un-certain, and a good relationship (potentially) exists with project stakeholders.
Feature Driven Development (FDD) An agile software development methodology based on short iterations that includes explicit modeling activities. Small project teams (4–20 people), uncertain requirements, and your team is willing to follow a modeling-driven approach.
IEEE 12207 A rigorous full lifecycle methodology process that includes development, operation and retirement of software-based systems. Medium to large project teams (20+ people). You are mandated (for example, by government) to follow this approach, or you intend to outsource part of the development effort.
Rational Unified Process (RUP) A rigorous software development process that is iterative and incremental. Can potentially be instantiated in an agile manner (see Gary Evans’ “Palm-Sized Process: Point-of-Sale Gets Agile,” Sept. 2001), although this rarely occurs successfully in practice. Medium to large project teams (10+ people), or where a phased approach is required to support the outsourcing of construction.
Scrum A partial agile methodology that describes effective project management techniques. Tailor Scrum into agile or near development methods.
Test Driven Development (TDD) (See my article, “Test-Driven Development,” Oct. 2002) A partial development methodology that describes how to write high-quality, tested source code. Tailor TDD into any development or full-lifecycle process.

Previous Page | 1 | 2 | 3 Next Page
TOP 5 ARTICLES
No Top Articles.



MICROSITES
FEATURED TOPIC

ADDITIONAL TOPICS

INFO-LINK