Sprints: Time boxed two-week iterations .The team can reduce delivered functionality during the sprint but the
delivery date cannot change.
Feature: Client-valued functions that can be implemented in two weeks or less .They usually refer to user-interface
features. Features are grouped into feature Sets which represent a logical grouping of features that could be delivered to
a user as a component in a short time frame.
Our feature-driven approach is comprised of three main phases:
(1) Project Evaluation Phase
(2) Feature Development Phase
(3) Project Completion Phase.
1- During the Project Evaluation Phase:
- desired system functionality is captured as features
- project scope is defined and negotiated,
- features are assigned to groups for implementation
- system requirements are negotiated with the customer
- The project team is comprised of all members working collectively
on system development
- The project manager oversees the project development.
- The project team meets with the customer to negotiate project
- The negotiation process enables the project team to evaluate
potential project completion in consideration of the resources (time, finances and manpower) available to them.
- The project manager divides the team into several groups,
each comprised of two or more individuals.
- The project manager assigns the gathered features to these
different groups for development.
- Two artifacts are produced during this phase :
1- Project Plan
2- Requirements Worksheet.
An overview in the Requirements Worksheet documents the gathered features, feature assignments
to groups, scheduled project completion date, membership of the groups, and the team members’ assigned responsibilities.
The project risks, addressed during weekly risk mitigation meetings, are also documented in the worksheet, or in a stand-alone
Several activities are performed in the Project Evaluation Phase. These are explained below.
· An initial meeting between the customer and the developers
is held to gather desired system characteristics, which are collected as features. The collected features are analyzed to determine project scope, project risks, and required resources for
· The project manager divides the team equally into groups
of two or more individuals.
· Before starting Feature Development, the project team negotiates
the scope of the system requirements with the customer at a very high level.
2- During the Feature Development phase
- Features are planned, designed, implemented, tested, and
integrated with the overall system.
- At the beginning of this phase, the groups elicit requirements
for the assigned features and analyze feature –scope
- Additionally each group, with project manager’s lead,
meets with the customer to negotiate and clarify requirements for the assigned features.
- The groups also write acceptance tests for each feature-requirement
before writing any code.
- At this point the customer prioritizes each elicited feature
requirement and reviews/approves the acceptance tests
- The acceptance tests and the feature priorities are documented
in the Requirements Worksheet.
- After the negotiation activity, each group concurrently employs
this approach to develop the assigned features
- The actual completion date of each requirement is also documented
in the Requirements Worksheet.
- The initial prototype is ready for customer evaluation at
the end of first Feature Development phase.
- The customer evaluates the prototype system via the acceptance
tests, and suggests modifications, if any.
- The customer evaluation activity allows the project team
to receive customer feedback/suggestions at the end of every Feature Development phase.
- To ensure customer satisfaction and software quality, the
Feature Development phase is iterated to incorporate customer-requested modifications or additions, until the customer finally
approves the evolutionary prototype system.
Several activities are performed in the Feature Development Phase. These are explained below:
· Each development group elicits requirements for the assigned features from the customer and group members
further evaluate these features and their requirements, to determine if the features can be implemented with the available
resources (manpower and time).
-After performing resource evaluation,
each group, with the project manager’s lead, individually meets with the customer to negotiate the features’ requirements.
· After the feature requirements are negotiated, feature planning
and design are performed during weekly risk mitigation meetings.
· It is recommended to do pair programming for implementation,
as a technique to improve productivity and quality.
· Quality is addressed in several ways; one way is via testing
techniques including feature testing, functional testing and acceptance testing. It is recommended to write acceptance and
unit tests before coding.
· The customer evaluates each version of the prototype system
via the acceptance tests to ensure the satisfaction of all system requirements. Customer satisfaction and software quality
is achieved by performing iterations on the Feature Development phase to incorporate customer requested modifications, until
the customer approves the evolutionary prototype system. The third phase of the model is called Project Completion Phase and
it has two activities.
· The customer validates the completed prototype system. After
final customer validation, the prototype system is packaged and delivered.
· After the system delivery, the development team evaluates
the positive and negative experiences during the project. The goal is for the team to incorporate the positive experiences
and conduct planning to avoid the negative experiences on future projects. The experiences and resulting plans are documented
in a Final Project Report.