How 'agile' is your agile development?
Software development cycles have become compressed over the years. This is true in terms of both pure software development and the implementation of package software applications. There has been a significant shift from historic waterfall development methodologies, which consisted of long planning cycles with a limited number of releases per year, to agile development techniques with continuous rapid delivery of incremental improvements. As a result of the larger number of release cycles there is need for increased testing and provisioning of controlled test environments which means a different set of challenges.
Some would say the development bottleneck has simply moved to the complex task of configuring and administering the hardware and software stack required for testing new applications. Modern composite applications rely on a complex stack of interdependent software programs. Changes in any one of the applications that contribute to the overall solution can have unanticipated consequences.
Here are five steps to avoid those consequences, break the bottleneck and test the cloud:
1) Automated deployment in a Private Cloud
Software development and testing is an ideal environment to exploit cloud automation software. It solves the issue of provisioning delays, inaccuracy and system administration costs without adding risk to production systems. With initiatives such as Avnet’s Cloud-in-a-Box organisations can implement a private cloud and populate it with advanced test management software to allow developers and testers to work together in a streamlined environment that fully supports agile methodologies without creating a testing bottleneck.
2) Beating the provisioning challenge
In order to keep up with agile development testing there is a need to stand up complex software and hardware environments quickly, accurately and reliably. Precise environment descriptions are required to ensure that the exact version of every contributing element is consistent between development, testing and production. On average each fresh install of components in a 'sandbox' can take 12-man hours of system administration per server, followed by six hours to configure and verify the complete environment. Assuming 80 'sandbox' requests per year and the average request requires five servers to be built this gives an annual cost in excess of £290K. The beauty of using private cloud automation tools means this cost can be reduced by as much as 75 percent and even better it can be paid out of operational expense (OPEX) instead of capital expense (CAPEX).
3) Saving time on test planning and execution
Applications go through a predictable lifecycle and developers and testers need a systematic approach underpinned by tools that enforce the methodology in a productive manner. For example, there should be a Requirement Tree that displays the hierarchical relationship among requirements and ties them to tests and defects; a Test Plan Tree with defect and requirements association, risk-based prioritisation and test execution. By managing the scheduling and running of tests and organising them into test sets designed to achieve specific goals and business processes, time and expense can be saved by using the cloud.
4) Speeding production deployment
Server automation tools form the basis of production cloud deployments. By gaining familiarity with server automation tools during development and testing, IT departments become well-placed to evaluate their production for migration to the cloud. The precise software stack identified by the development team and verified by the quality testing team can then be deployed to a production environment for example running HP’s Server Automation tools.
5) Risk-based quality management
Risk-based, automated quality testing controls IT costs by reducing the number and duration of business critical application outages. This means less time and effort spent on problem identification, resolution and reworking. Centralised and rigorous risk-based testing should include three-way traceability between requirements, tests and defects to facilitate reduced outages and time spent on resolving them.
Following these five steps and taking advantage of a fully automated cloud environment spanning development, testing and production organisations can benefit from faster time-to-market, the elimination of production outages arising from software deployment errors and vast improvements in hardware and software license utilisation.
So just how agile are your agile developments and could the testing in the cloud make all the difference? For more information please click here.