1.
This
approach interleaves the activities of specification, development and
validation. An initial system is rapidly developed from abstract
specifications. This is then refined with customer input to produce a system
that satisfies the customer's needs.
fig: Evolutionary development
The waterfall model is viable for software products that
do not change very much once they are specified. But for software products that
have their feature sets redefined during development because of user feedback
and other factors, the traditional waterfall model is no longer appropriate.
- The Evolutionary EVO development model divides the
development cycle into smaller, incremental waterfall models in which users are
able to get access to the
product at the end of each cycle.
product at the end of each cycle.
- Feedback is provided by the users on the product for
the planning stage of the next cycle and the development team responds, often
by changing the product, plans, or process.
- These incremental cycles are typically two to four
weeks in duration and continue until the product is shipped.
There are two fundamental types of evolutionary
development:
2.1 Exploratory
development where the objective of the process is to work with the customer
to explore their requirements and deliver a final system. The development
starts with the parts of the system that are understood. The system evolves by
adding new features proposed by the customer.
2.2 Throwaway
prototyping where the objective of the evolutionary development process is
to understand the customer's requirements and hence develop a better
requirements definition for the system. The prototype concentrates on the
experiencing with the customer requirements that are poorly understood.
Advantages
- Benefit not
only business results but marketing and internal operations as well.
- Use of EVO brings significant reduction in risk for software projects.
- EVO can reduce costs by providing a structured, disciplined avenue for experimentation.
- EVO allows the marketing department access to early deliveries, facilitating development of documentation and demonstrations.
- Short, frequent EVO cycles have some distinct advantages for internal processes and people considerations.
- The cooperation and flexibility required by EVO of each developer results in greater teamwork.
- Better fit the product to user needs and market requirements.
- Manage project risk with definition of early cycle content.
- Uncover key issues early and focus attention appropriately.
- Increase the opportunity to hit market windows.
- Accelerate sales cycles with early customer exposure.
- Increase management visibility of project progress.
- Increase product team productivity and motivation.
- Use of EVO brings significant reduction in risk for software projects.
- EVO can reduce costs by providing a structured, disciplined avenue for experimentation.
- EVO allows the marketing department access to early deliveries, facilitating development of documentation and demonstrations.
- Short, frequent EVO cycles have some distinct advantages for internal processes and people considerations.
- The cooperation and flexibility required by EVO of each developer results in greater teamwork.
- Better fit the product to user needs and market requirements.
- Manage project risk with definition of early cycle content.
- Uncover key issues early and focus attention appropriately.
- Increase the opportunity to hit market windows.
- Accelerate sales cycles with early customer exposure.
- Increase management visibility of project progress.
- Increase product team productivity and motivation.
Disadvantages
-
The process is not
visible. Mangers need to regular deliverables to measure progress. If systems
are developed quickly, it is not cost-effective to produce documents that
reflect every version of the system.
-
Systems are often poorly
structured: Continual change tends to corrupt the software structure.
Incorporating software changes becomes increasingly difficult and costly.
Applicability
-
For small or medium-size
interactive systems.
-
For parts of large
systems (e.g. the user interface)
-
For short lifetime
systems.
No comments:
Post a Comment