Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Channels ▼
RSS

The Right Tool for the Job


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.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.