The evolution process starts by concerning about the feasibility of the evolution. Given a system, in some cases a legacy system, it is necessary to decide whether it should be partially or completely rewritten, or if it can be taken out of service. This feasibility analysis is based on the value of the system for the business and its level of degradation. The former is relevant to decide whether the system can be discontinued and the service it currently provides moved to other systems or replaced by organizational procedures. The level of degradation impacts on the cost of maintenance which may require the need for reengineering or replacement of the system by a new one if it has a high business value.
If the decision is to maintain the system AS IS, the management of the maintenance activities should be based on change requests, on the analysis of their impact, in terms of the cost of the required changes to the code and documentation, and the change implementation. This change request driven approach requires up-to-date documentation of the system and the traceability between the different representations of the system.