- Feature Driven Development
Feature Driven Development (FDD) is an iterative and incremental
software development process . It is one of a number of Agile methods for developing software and forms part of theAgile Alliance . FDD blends a number of industry-recognized best practices into a cohesive whole. These practices are all driven from a client-valued functionality (feature ) perspective. Its main purpose is to deliver tangible, working software repeatedly in a timely manner.History
FDD was initially devised by
Jeff De Luca to meet the specific needs of a 15 month, 50 person software development project at a largeSingapore bank in 1997. Jeff De Luca delivered a set of five processes that covered the development of an overall model and the listing, planning, design and building of features. The first process is heavily influenced byPeter Coad ´s approach to object modeling. The second process incorporates Peter Coad's ideas of using a feature list to manage functional requirements and development tasks. The other processes and the blending of the processes into a cohesive whole is a result of Jeff De Luca's experience. Since its successful use on the Singapore project there have been several implementations of FDD.The description of FDD was first introduced to the world in Chapter 6 of the book "Java Modeling in Color with UML"ref|Coad by Peter Coad,
Eric Lefebvre and Jeff De Luca in 1999. InStephen Palmer andMac Felsing ´s book "A Practical Guide to Feature-Driven Development"ref|Palmer (published in 2002) a more general description of FDD, decoupled from java modeling in color, is given.The original and latest FDD processes can be found on [http://www.nebulon.com/ Jeff De Luca´s website] under the ´Article´ area. There is also a [http://www.featuredrivendevelopment.com/ Community website] available at which people can learn more about FDD, questions can be asked, and experiences and the processes themselves are discussed.
Overview
FDD is a model-driven short-iteration process that consists of five basic activities. For accurate state reporting and keeping track of the software development project, milestones that mark the progress made on each feature are defined. This section gives a high level overview of the activities.
Activities
FDD describes five basic activities that are within the software development process. In the figure on the right the meta-process model for these activities is displayed. During the first three sequential activities an overall model shape is established. The final two activities are iterated for each feature. For more detailed information about the individual sub-activities have a look at Table 2 (derived from the process description in the ´Article´ section of [http://www.nebulon.com/ Jeff De Luca´s website] ). The
concept s involved in these activities are explained in Table 3.Develop Overall Model
The project starts with a high-level
walkthrough of the scope of the system and its context. Next, detailed domain walkthroughs are held for each modeling area. In support of each domain, walkthrough models are then composed by small groups which are presented forpeer review and discussion. One of the proposed models or a merge of them is selected which becomes the model for that particular domain area. Domain area models are merged into an overall model, the overall model shape being adjusted along the way.Build Feature List
The knowledge that is gathered during the initial modeling is used to identify a list of features. This is done by functionally decomposing the domain into subject areas. Subject areas each contain business activities, the steps within each business activity form the categorized feature list. Features in this respect are small pieces of client-valued functions expressed in the form
Wikimedia Foundation. 2010.