Feature-Driven Development: An Agile Alternative to Extreme Programming


Develop an Overall Model
To develop the overall domain model, the chief architect collaborates with the domain experts and developers to create an overall object-model using color modeling techniques and patterns. This is produced after a number of high-level walkthroughs of the scope and context of the system for each area of the problem domain.

After a walkthrough, they split into small groups of 3 to 4 people to produce object models for their respective portions of the domain,. They then return and review, then compare each other’s models for consistency, correctness, completeness and clarity. Eventually they arrive at a domain object model that captures and conveys the key abstractions and relationships of the system.

Build a List of Features
With the initial domain model in place, the team then produces a list of features, where a feature is defined as a small, deliverable client-valued piece of functionality that is succinctly expressed using the format: action result object [parameters].

Or, more precisely, with the following grammatical structure: action {a|the} result {of|to|from|for|...} object [{with|for|of|...} parameters].

These are captured in traditional requirements documents, such as use cases or formal specifications, and referenced in the corresponding use cases and designs. Features are then grouped into subject areas, or subject domains, containing one or more feature sets of several individual features. Each subject area tends to take on the name of a core capability, such as subject-name management.

Feature sets within a subject area can be integration tested together and each feature within a feature set maps to a method in the domain model. In business systems, a subject area often maps to a business function or business domain, a feature set to a particular business process within that domain, and a feature to a particular business activity or business transaction within the overall business process/workflow.

About the author

Brad Appleton's picture Brad Appleton

Brad Appleton is a software CM/ALM solution architect and lean/agile development champion at a large telecommunications company. Currently he helps projects and teams adopt and apply lean/agile development and CM/ALM practices and tools. He is coauthor of the book Software Configuration Management Patterns, a columnist for the CMCrossroads and AgileConnection communities at Techwell.com,  and a former section editor for The C++ Report. You can read Brad's blog at blog.bradapp.net.

AgileConnection is one of the growing communities of the TechWell network.

Featuring fresh, insightful stories, TechWell.com is the place to go for what is happening in software development and delivery.  Join the conversation now!