Evolutionary Development
Evolutionary development is based on developing an initial software product and presenting the initial version of the product to end users for comment. Based on the comments, the refining will be done and final version will be released through different versions. Specification, development, and validation activities are interleaved where as waterfall model has clear separation among those activities.There are two types of evolutionary development can be found.
Exploratory development
Objective is to work with customers and to evolve a final system from an initial outline specification. Should start with well-understood requirements and add new features as proposed by the customer.
Throw-away prototyping
Objective is to understand the system requirements. Should start with poorly understood requirements to clarify what is really needed. Once you understand requirement you can develop the system using either exploratory approach or waterfall model approach.
You may find evolutionary as a good method to use but it has its own problems such as,
Lack of process visibility -
Managers needs regular deliverable s to measure progress of the system. Also you can not expect proper documentation as you deliver different version with different functions at regular intervals.
Systems are often poorly structured -
You add several functions to the system regularly which needs regular changes to the system. You may need to change your data structures to support new functions etc, which might damage your initial design and it could increase the cost of adding new functions.
Special skills may be required -
You may need to develop increments of your system quickly. In order to do so you may need especial experience in RAD tools such as VB, C#, etc.
Post a Comment