There are number of different software development methodologies used in the software industry today. V Methodologies (V-Model) is an extension to the Waterfall development method (which is one of the earliest methods). The main focus of V-Model is giving an equal weight to coding and testing. Agile model is a more recent software development model introduced to address the shortcomings found in existing models. Main focus of Agile is incorporating testing as early as possible and releasing a working version of the product very early by breaking down the system in to very small and manageable sub parts.
What is V Methodologies (Model)?
V Methodologies (V-Model) is a software development model. It is considered as an extension of the typical Waterfall software development model. V-Model uses the same relationships between the phases defined in Waterfall model. But instead of descending linearly (like the Waterfall model) V-Model steps down diagonally and then moves back up (after the coding phase), forming the shape of the letter V. This V shape is formed to show the relationship between each phase of the development/design and the corresponding testing phase. Time and level of abstraction is represented by horizontal and vertical axis, respectively.
The testing (the ascending path, right side of the V) is done for verification, while the corresponding design phases (the descending path, left side of the V) are used for validation. In the V-Model, equal weight is given to coding and testing. V-Model recommends creating testing document alongside the design documents/code. For example, integration testing documents should be written when the high level design is being documented and unit tests should be documented while the detailed design plan is being made. This means that an implementation plan for each test should be created beforehand, not waiting till the development is completed so it can be handed off to the testing team.
What is Agile?
Agile is a very recent software development methodology based on the agile manifesto. This was developed to solve some shortcoming in the traditional V-Model and Waterfall software development methodologies. Agile methods are based on giving high priority to the customer participation early in the development cycle. It recommends incorporating testing by the customer early and often as possible. Testing is done at each point when a stable version becomes available. The foundation of Agile is based on starting testing from the beginning of the project and continuing throughout to the end of the project. Key values of Agile is “quality is the team’s responsibility”, which stresses that the quality of the software is the responsibility of the whole team (not just the testing team). One other important aspect of Agile is breaking down the software in to smaller manageable parts and delivering them to customer very quickly. Delivering a working product is at utmost importance. Then the team continues to improve the software and deliver continuously at each major step. This is achieved by having very short release cycles called sprints and getting feedback for improvement at the end of each cycle. Contributors without much interactions of the team such as developers and testers in the earlier methods, now work together within the Agile model.
What is the difference between Agile and V Methodologies (Model)?
Agile model delivers a working version of the product very early compared to V-Model. As more features are delivered incrementally, customer can realize some of the benefits early on. Testing cycle time of Agile is relatively short compared to V-Model, because testing is done parallel to development. Agile is a proactive model (due to its very short cycles) compared to the much more reactive V-Model. V-Model is very rigid and relatively less flexible than Agile model. Because of all these advantages, Agile is preferred over the V-model at the moment.