Requirements in Feature Driven Development Flashcards
How does FDD begin?
Establish overall model shape then continue with a series of 2-week “design by feature, build by feature” iterations
_______ are small “useful in the eyes of the client” results
features
FDD promotes _________ development with each increment
concurrent
FDD claims to be suitable for the development of _______ systems
critical
What is the overall process of FDD? What is the percentage of time allocated to each stage?
- Develop Overall Model (10% initial, 4% ongoing)
- Build a Features List (4% initial, 1% ongoing)
- Plan by feature (2% initial, 2% ongoing)
- Iterations of Design/Build by feature (77%)
When developing an overall model, who groups of people work together?
Domain and development members, under the guidance of an experienced chief architect
When developing an overall model, what is the general process?
- Domain members present a high-level walk through of the system and context
- Domain and development members produce a skeletal model
- Domain members present more detailed walkthroughs (working in small sub-teams with guidance from the chief architect). Model shape is adjusted along the way.
- In later iterations, smaller teams tackle specialised domain topics. Domain members participate in many, but not all of these sessions
When developing an overall model, what are the outputs of this stage?
- Class diagrams with classes, links, methods, and attributes. Classes and links establish model shape. Methods express functionality and are raw materials for the feature list
- Informal features list
- Notes on significant modelling alternatives
What is a feature in FDD? Give some examples.
A client-valued function that can be implemented in 2 weeks or less using this template:
[action] the [result] [by|for|of|to] a(n) [object]
Examples:
Calculate the total of a sale.
Assess the fulfillment timeliness of a sale
What is a feature set in FDD? Give an example
A grouping of business related features, named using this template:
[action][-ing] a(n) [object]
Example: making a product sale
What is an informal features list? When is it created?
Features we hear from domain members and gleaned from the document content we work with.
It’s created during overall model development
When do we create a detailed features list? Where do we get the features?
After developing an overall model.
Features come from transforming methods in the model to features, but most come from considering the business areas
What items should each feature have?
– Type (problem domain, human interaction, or system interaction)
– Identifier (feature-set prefix plus a sequence number)
– Status (on-hold, no longer required, normal)
– Major feature set
– Feature set
– Document references
– Action items
– Chief programmer
– Domain walk-through plan date, actual date
– Design plan date, actual date
– Design-inspection plan date, actual date
– Code plan date, actual date
– Code-inspection plan date, actual date
– Promote-to-build plan date, actual date
– Remarks
Compare and contrast FDD features and XP user stories. When would you want to use one over the other?
User stories need users, but not every requirement is focused on the user, like back end tasks with no direct interface to the user.
Sometimes, it can be difficult to write requirements in the form of XP user stories. It can be easier to use FDD features in this case (ex. Upgrading the operating system of the server)
Sometimes you are pushing user stories when you have too many user stories for team members (as a dev, as a product owner) rather than actual users. You should again use FDD features for those things.
What should the team do when building a features list?
- Identify features
- Group them hierarchically using features, features sets, and major features sets
- Prioritise them
- Weight them (estimate them)
In subsequent iterations, smaller teams tackle specialised feature areas.