Requirements in Feature Driven Development Flashcards

1
Q

How does FDD begin?

A

Establish overall model shape then continue with a series of 2-week “design by feature, build by feature” iterations

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

_______ are small “useful in the eyes of the client” results

A

features

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

FDD promotes _________ development with each increment

A

concurrent

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

FDD claims to be suitable for the development of _______ systems

A

critical

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is the overall process of FDD? What is the percentage of time allocated to each stage?

A
  1. Develop Overall Model (10% initial, 4% ongoing)
  2. Build a Features List (4% initial, 1% ongoing)
  3. Plan by feature (2% initial, 2% ongoing)
  4. Iterations of Design/Build by feature (77%)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

When developing an overall model, who groups of people work together?

A

Domain and development members, under the guidance of an experienced chief architect

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

When developing an overall model, what is the general process?

A
  1. Domain members present a high-level walk through of the system and context
  2. Domain and development members produce a skeletal model
  3. Domain members present more detailed walkthroughs (working in small sub-teams with guidance from the chief architect). Model shape is adjusted along the way.
  4. In later iterations, smaller teams tackle specialised domain topics. Domain members participate in many, but not all of these sessions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

When developing an overall model, what are the outputs of this stage?

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What is a feature in FDD? Give some examples.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

What is a feature set in FDD? Give an example

A

A grouping of business related features, named using this template:

[action][-ing] a(n) [object]

Example: making a product sale

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is an informal features list? When is it created?

A

Features we hear from domain members and gleaned from the document content we work with.

It’s created during overall model development

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

When do we create a detailed features list? Where do we get the features?

A

After developing an overall model.

Features come from transforming methods in the model to features, but most come from considering the business areas

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What items should each feature have?

A

– 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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Compare and contrast FDD features and XP user stories. When would you want to use one over the other?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What should the team do when building a features list?

A
  1. Identify features
  2. Group them hierarchically using features, features sets, and major features sets
  3. Prioritise them
  4. Weight them (estimate them)

In subsequent iterations, smaller teams tackle specialised feature areas.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is the results after building a features list?

A

A detailed features list, grouped into major feature sets and feature sets. This is subject to review and approval by the dev manager and chief architect.

17
Q

What happens during plan by feature?

A

Using the features list, the project manager, development manager, and chirf programmers establish milestones for the “design by feature, build by feature” iterations

18
Q

What are the outputs of plan by feature?

A

A development plan, subject to review and approval by the development manager and the chief architect.

This plan includes:

  • Overall completion date
  • The owner and completion date for each major feature set, feature set, and feature
  • The owner for each programmatic class
19
Q

What happens during design by feature?

A
Chief programmer takes the next feature, identifies the involved classes, and contacts the owners. 
The feature team works out a detailed sequence diagram and the owners write class and method prototypes.
The team then conducts a design inspection
20
Q

What are the outputs of design by feature?

A
  • Feature and its documents
  • Detailed sequence diagram
  • Class-diagram updates
  • Class and method prototype updates
  • Notes on the team’s consideration of significant design alternatives
    All the above are subject to review and approval by the chief programmer
21
Q

What is a feature team?

A
A temporary 1 or 2 week team formed by the chief programmer.
They are assigned features, and must find the class owners involved in the feature
22
Q

Class owners can work on _______ multiple feature teams at a time

A

multiple

23
Q

What is the mentoring hierarchy in FDD?

A

Chief architects mentor chief programmers, who in turn mentor class owners within a feature team

24
Q

What happens during build by feature?

A
  • From the design by feature package, each class owner builds their methods for the feature, extends the class-based test cases, and performs class-level (unit) testing
  • Chief programmer does end-to-end features testing
  • Feature team inspects the code either before or after unit testing (determined by the chief programmer)
  • Once implemented, the class owner checks in the classes to the configuration management system
  • When all classes for this feature are checked in, the chief programmer promotes the code to the build process
25
Q

What are the outputs of build by feature?

A
  • Implemented and inspected methods and test methods
  • Unit test results for each method and the overall sequence
  • Classes checked in by owners, feature promoted to the build process by the chief programmer
26
Q

Describe the outline of phases for DBF and BBF. Give time percentages for each phase.

A
DBF (44%):
- Walk through domain (1%)
- Design (40%)
- Inspect design (3%)
BBF (56%):
- Code (45%)
- Inspect Code (10%)
- Promote to build (1%)
27
Q

What happens during reporting in FDD?

A

A 30 minute weekly meeting takes place with the release manager and chief programmers. The programmers walk through the status of their features, marking up the project tracking chart

After, the release manager takes the results, updates the DB, and issues progress reports for the team, clients, and senior management.

28
Q

Describe how each of the following requirement concepts are met in Scrum:

  • Requirements elicitation
  • Requirements analysis
  • Requirements specification
  • Requirements validation
  • Requirements change management
  • Architecture
A
  • Requirements elicitation
    Talk to domain experts, meet with domain members
    Methods of classes give us features
    Build overall model
  • Requirements analysis
    Feature planning
    Building informal feature list
    Building overall model
  • Requirements specification
    Feature list
  • Requirements validation
    Chief programmers tests the feature end-to-end
  • Requirements change management
    During reporting done weekly as part of BBF/DBF
  • Architecture
    Model shape