The V-Model Software Development Methodology extends the Waterfall Process

Even with the popularity of modern software development methodologies like DevOps and Agile, those processes don’t work best for all project scenarios. Some mature organizations still prefer the venerable Waterfall method with its sharply defined phases occurring in a sequential flow. Still, a design or requirements mistake in an earlier phase can be extra costly to fix, as we’ve previously noted.

What if there was a software development process combining the phases of the Waterfall method with the interactivity of Agile? The V-Model methodology provides well-defined phases, as validation and verification occurs each step of the way. With superior software products in mind, let’s take a closer look at the V-Model.

Giving Equal Weight to Design and Validation

V-Model-Development

While the Waterfall methodology follows a linear path from requirements gathering through implementation and finally to testing and validation, the V-Model features two pathways. The descending path is where the project gets defined while the ascending path focuses on the validation phases. The coding or implementation phase happens at the bottom of the two paths.

This “V” shape nicely illustrates the relationship between each phase in the project definition path and its partner in the testing and integration path. Validation and interaction between the development, QA, and business stakeholder teams is expected to occur during each phase as the project gets defined. This helps ensure nothing gets missed that ends up being a costly fix after the fact; an event happening far too often in projects following the Waterfall methodology.

This model emphasizes the creation of testing plans and operational implementation strategies at the beginning of a project, so they are able to be modified as the scope of a project changes during its lifecycle. It truly gives equal weight to the entire validation of any software project.

Enhancing Waterfall with a DevOps Approach?

Considering the interaction occurring during every phase of a V-Model software project, some observers see it as a version of the Waterfall methodology appropriate for today’s highly-collaborative DevOps era. Test plans are continuously developed from the beginning of the project, as QA engineers work closely with their software engineering counterparts ensuring every scenario is handled. The same interaction happens with the network and operations personnel responsible for the application in production.

Some companies still prefer the flexibility offered by a complete Agile approach, where incremental parts of application are developed to completion, but it is obvious that methodology still doesn’t work for all software development scenarios. Other firms require the formality of the phases within the Waterfall methodology, but still need a more versatile approach to better handle sudden changes in scope. The V-Model allows this freedom while placing emphasis on collaboration between all teams; something valued as a strength of DevOps.

For software development shops looking for a nice mixture of a formal software methodology with a focus on flexibility and testing throughout a project’s lifecycle, the V-Model is worthy of further exploration. Stay tuned to the Betica Blog for additional insights on the world of software engineering and QA.

Add some Varnish to speed up your Web Applications

As worldwide Web usage continues to grow by leaps and bounds, websites are responsible for handling more users — and more importantly — more data. Companies developing web applications need to ensure their sites are able to provide a compelling experience to their audience. This becomes more difficult when considering the massive amounts of data required to support Internet video streaming and rich media content delivery.

With gigabit Internet networks rapidly becoming the norm, expect the stress on high-traffic websites to only increase over time. This is why software like Varnish is becoming more important for accelerating website performance over the venerable HTTP protocol. Since the development of faster websites is important, let’s take a closer look at Varnish.

Varnish Cache is an HTTP Accelerator

An open source cache serving as an HTTP accelerator, Varnish’s first release became available in 2006. Varnish Software, the company behind the accelerator, provides commercial support for the cache as well as other paid products, including an advanced version of the cache known as Varnish Plus. The company also offers the Varnish API Engine, a commercial solution supporting high-traffic APIs hosted in a scalable online environment.

Like many other cache products, Varnish keeps website data in memory, so it is easily accessible by a web request without having to retrieve the data from a server. The software uses a threaded model, with one thread essentially dedicated to each web connection. An included configuration language gives network engineers more options to control cache behavior and performance — an advantage over similar HTTP accelerators.

Using Varnish helps high-traffic websites, most notably the social media giants, Facebook and Twitter, handle huge amounts of simultaneous users with nary an issue. Varnish also includes advanced load balancing functionality which is vital for optimizing overall server performance. The software is especially popular among content delivery networks as well.

Supporting High-end Software Development Companies

Any company looking at developing a web application with a ton of rich media content, including online gaming, video sites, and music streaming, would benefit from adding Varnish to their site’s architecture. An online video game is only as good as its perceived performance with multiple users simultaneously connected and interacting. An app must handle this interactivity between users while also providing a compelling visual and aural experience.

Server hiccups, buffering, and general slowness adversely impacts gameplay, which leads to disgruntled customers filling social media networks with complaints. Obviously, this leads to fewer players and less revenue for the game developer. This same scenario can play out with any high-traffic rich media-laden web application, thus the importance of making Varnish an important part of the site architecture.

Additionally, software companies developing publically available APIs realize the importance of their overall performance. The standard Varnish Cache works well for most examples of this use-case, but firms needing additional functionality need to consider the commercial Varnish API Engine for a boost in horsepower. 

Varnish’s benefits are obvious for any organization involved in the development of high-traffic — users and/or data — websites. It is an easy way to make the web fly.

Stay tuned for additional insights into the world of QA and software development at the Betica Blog.