According to Ed Liversidge, Director, Harmonic Software Systems Ltd:
“Like a climber planning a route over glaciers and up a mountain face, the destination is clear, but getting a safe route up the mountain and back down again takes a mixture of careful planning and an adaptive approach to events. The climbers may find impassable chasms, dangerous overhangs or unpredictable changes in weather. The plan will probably change.” P.G. Armour
In the software development world the plan will change. That means that the software development model has to model change. The V-Model does nothing to accommodate change, and this is the primary reason why it fails as a model.
The second reason why the V-Model fails is in the testing phases. Implementing unit tests and integration tests as single, separate phases results in a thoughtless approach to testing. For example, a single unit test will require a custom test harness. Each unit may require a different test harness. For a large project with lots of units, this could prove to be costly and problematic. It could be a better idea to test a unit when connected to the actual system, using the system to deliver test messages.
The V-Model is Already Dead
In reality, a development project that is working is not following the V-Model, even if management believe that this is so. This is because good engineers are flexible and adapt to problems, they are able to expect and respond to change. They test code when it has been written, to get a feel for the system. Extremely good engineers even update the documentation when the design changes!
The Final Nail in the Coffin
The most damaging aspect of the V-Model is not in the model itself. Any model is an approximation, and this model does at least provide some value. The biggest problem arises from the manager’s steadfast reliance on the model, making the assumption that the model is a ‘tool’ to be ‘used’. When the V-model is accepted as a good model for software development, it blinds the project manager to the realities of the software development process, and distorts this process to the point whereby it is counterproductive.
The V-Model is an inadequate model for software development for the following reasons:
- It is too simple to accurately reflect the software development process, and can lead managers into a false sense of security.
- It is inflexible; it has no ability to respond to change.
- It produces inefficient testing methodologies.a