Where the cloud meets a waterfall: six benefits of cloud for Development and Test
Software development teams need temporary access to high-quality IT infrastructure for testing purposes. Turning to the cloud offers an affordable solution.
A quoted statistic in IT circles suggests that 80% of an organisation’s IT budget is spent on day-to-day operations (please note I didn’t say “keeping the lights on”), leaving the remainder for development and innovation. This means we see development and test environments typically running on the oldest assets which can compromise performance.
Cloud computing provides faster and more cost effective Development and Test capacity to application teams in any type of business, but particularly to those with a variable or dynamic development usage profile. It offers developers the resources they need to speed up application development, while ensuring the core business makes the most efficient use of its resources.
Why purchase IT assets when demand is highly variable?
In a typical software development lifecycle (that includes software development that uses the waterfall methodology or any other framework), peaks in the development and testing activity are followed by troughs of significantly lower utilisation. Buying traditional IT assets to meet this variable demand requires customers to purchase equipment to meet peaks in demand, while assets subsequently sit idle during slower periods of cycle.
While the cloud allows the business to avoid upfront investments, it can also help address the variable demand associated with development and test activities. The availability of on-demand capacity, coupled with ability to automate deployments, allows for rapid provisioning of complex development environments. This reduces the lead-time associated with development and speeds time to market.
Matching or exceeding the volume, transaction or traffic requirements of a production environment during the test phase in particular can identify issues and improve overall quality.
The six benefits of cloud for Development and Test
- Improved quality
By enabling test scenarios that were previously cost prohibitive due to significant hardware requirements.
- Improved productivity
Implementing high availability in development platforms, limits the downtime associated with infrastructure failures.
- Faster innovation
Cloud can support faster cycles of development, for instance allowing early deployment of a demonstration environment that would otherwise require substantial capital expenditure as a precursor to a full business case. This is particularly beneficial in road-testing innovation, where a tangible test experience will accelerate business commitment to a project, or alternately screen out unsuitable development candidates, thereby ‘failing faster’ and consequently reducing wasted development effort.
- Operational efficiency
Setting up and tearing down application environments comes at great operational expense. Allocating capacity between projects not only creates cost, it also costs time. The ability to instantly stand up capacity in the cloud cuts operational expenses, but more importantly it makes capacity available to dev/test teams almost immediately.
- Resource efficiency
Demonstrating the ability to rapidly provision resources for a new project lessens the tendency toward “server hogging” and reduces server sprawl. If your test team knows it can turn up a test rig in a matter of hours, they are less likely to hold onto expensive resources during “downtime”
- Cost efficiency
The utility (pay as you use) cost model is more cost effective than overprovisioning dedicated dev/test capacity. If a test requiring massive server capacity needs to only run for an hour, the business need only pay for this capacity for the hour. After the hour is up, the environment can be “stood down” and attract no further charge.
Of course like everything else to do with cloud computing, once you get past the metaphors, puns and hype you need to figure out if it’s right your own organisation, and how best to leverage it.
How do you buy and use IT resources for test and development purposes? Does the cost or quality of those resources ever let you down?