| 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. |