Another key benefit of this "shift left" in focus, is that there will also be less "idle time" - i.e. time a development team spends NOT working on the application, whilst waiting for access to test environments to be made available. Another flow on business benefit in this approach is that less dependency on test environments will also allow CIOs to reduce the expenditure associated with supporting multiple test environments - especially the higher cost items such as Mainframe MIPS.
3. Automation is your friend
We also believe that when it comes to truly optimizing your application delivery, the use of automation within your SDLC is a critical area of value generation. Automation is not a new concept. However, automating your SDLC - i.e. the release of your artifacts, and packages to seamlessly flow through the various environments in your SDLC reduces a lot of common barriers which cause delays and troubleshooting which typically slows the SDLC process.
Through the use of release automation, you allow the various functions of the SDLC to perform the tasks they are best at - to develop and test high quality applications. Release automation will dynamically ensure that packages and artifacts are deployed into new environments, in sync with configurations changes which occur from environment to environment. For example, the OS version, the DB version, the patch levels, HW configuration etc., will often be different from environment to environment.
When an artifact is "dropped" into these different environments, quite often through the use of scripts or manual code, the application will quite often behave differently and even before testing commences there are issues around troubleshooting to ensure the applications works. Release automation will also ensure "continuous delivery" not just through the SDLC but also into production. This approach is also complemented by the adoption of a DevOps approach as you will see below.
4. Break down your team's walls
As we discussed in Part 1 of this article, the principles of DevOps and the adoption of this approach will have a material impact on driving more effective application delivery. Although we have already touched upon it, DevOps will become the "glue" that binds all of the best practices we talk about in this part of this article.
5. Embrace transparency for agile development
The practical outcomes of DevOps and the associated best practices should all be centered on a fundamental change in the organisation's approach to application development. Agile is the nucleus, delivering faster, incremental, application functionality operated by development teams who are distributed both geographically as well as functionally. Running sprints or taking a scrum approach in a service virtualized environment, will allow development to not only deliver the software increment quickly but also put it through its testing paces quickly and be able to deliver the necessary outcome to the business quickly.
Build a successful DevOPs culture
Remember: building a successful DevOps culture in your organisation is not going to happen overnight. The first step to deploying DevOps is to convince employees from all levels to create buy-in, and that is going to take time.
By now you should have noticed three key aspects of DevOps that encompasses everything aforementioned: the people, the process and the technology. If you can achieve these three aspects, your organisation will be well on its way towards a cadence of faster, more predictable releases, better results from each phase of the software delivery life cycle, and more effective execution in production with increased cost efficiency.
- Sumal Karunanayake is Vice President, Application Delivery, Asia Pacific and Japan, at CA Technologies.
Sign up for CIO Asia eNewsletters.