There are a number of other approaches to software development, with the most common used, until the ‘agile age’, being the Waterfall method. The Waterfall method generally followed a very sequential path as follows:
- Analyse the requirements
- Plan how to deal with them
- Design the solution
- Build the solution.
- Test the solution.
- Deploy the solution.
- Analyse the next set of requirements
One cycle through this process normally took months and sometimes years. Over this time, a lot of things can change:
- The requirements change over time. How often have you been involved in IT projects where the requirements at the start match what you really need when it has been delivered?
- The market changes. The target customers want different things and in the current climate, this can changes from week to week.
- Technology changes. Planning generally ties a project into a specific technology for the duration of the project regardless of whether better options are out there.
To continuously deliver to your customers, it is essential that an agile approach is taken which ensures a continuous cycle of evaluation of requirements, design, build and test are done in parallel so that the project is continually changing with the market requirements and the technology landscape. The schematic below illustrates this:
In order to continuously deliver with an agile approach to development, automation is a key component. If testing of new functionality and regression testing is not automated, the product will not be fit for continuous delivery.Service Virtualization plays a key part in that automation to ensure that projects are not hampered through the unavailability of test environments.