Car racing is serious business. It is all about speed and quality. And it’s critical that each pit crew member works together in parallel to put the fastest, most reliable racing machine on the track. In fact, it’s often said that “racing is won in the pits.”
The teams and process of creating, testing and delivering software should be analogous to a racing pit crew. This is key to the promise of continuous delivery.
How closely together do your dev, test, release and operations teams work like this?
Could your “pit crew” use a new approach that can help it improve its pace and quality to deliver a steady stream of new iterations of software with continually enhanced user experience?
If so, then you need to get serious about implementing a “R.A.P.I.D” continuous delivery strategy. Here are 5 important aspects that can help you begin and accelerate your journey:
Release Planning & Orchestration: It used to be common to release an application update 2-3 times a year. These days are long gone for most organizations. For example, a financial institute that I spoke with recently issues an astounding 30,000 releases per month, across numerous applications. So, how do you plan for and track all these releases, while having a good understanding of what is happening in the various stages in the app lifecycle and ensure everything is aligned correctly before the release moves forward to production?
You need a continuous delivery tool that will help orchestrate the entire release process across multiple applications. It should incorporate a system that automatically analyzes the release process and finds out where the bottlenecks are so they can be fixed quickly, and then moves code into the next phase based upon tests passed. Release automation tools must be utilized as you move to multi-app release cycles to gain that visibility and track each application at each release stage.
Agile Testing: Legacy test methods can’t keep pace with a continuous application delivery model, and deferring testing to the end of the lifecycle is a sure way to fail. DevOps teams need to be able to create test cases automatically right from the requirements phase, as well as test more efficiently by ensuring maximum test coverage with the right amount of test case coverage.
Teams need to be able to mask production data and subset it to use it for testing needs to avoid letting personally-identifiable information (PII) into your testing practices. You need to shift testing left by starting API and back-end system request and response testing prior to the development of UIs and simulate environments and start testing much earlier in the process against those simulations. Steps like these will help you make testing agile enough to meet the speed of development as well as help development improve the testing of their code.
Provision Data on Demand: The quality of an application depends on having untethered access to quality data for testing, at the right time and the right place. New global legislation, like the General Data Protection Regulation (GDPR) makes data privacy requirements more stringent than ever. Tools that provide data masking and sub-setting can be useful in getting data from production for testing, but they don’t address many of the aspects of securing PII. And getting access to that data whenever it is needed from a data warehouse is critical. A better way is to synthetically create and store fit-for-purpose test data that’s always ready as soon as it’s needed for rigorous testing, but without the sensitive content. All within a data warehouse that can be accessed whenever it is needed.
Integrated Ecosystem & Feedback: Look to partner with a continuous delivery vendor that can help you leverage your current investments and tools of choice while enabling you to move your continuous delivery journey forward. Look for one that will help you bridge development, testing, release management and operations in an open, seamless tool chain – one that can help you achieve entirely new levels of application delivery speed and quality.
Deploy Simulated Environments: In an increasingly complex development landscape populated by composite applications, microservices, and distributed teams, developers and testers often experience roadblocks as they compete for access to needed environments and external services. The ability to create simulated environments allows multiple teams to work in parallel by simplifying the management of scenarios and reducing the number of live environments needed for development and testing. Tools like service virtualization are critical to simulating whatever environment you need instant access to while reducing lab hardware and software costs and cycle times, and still delivering critical functionality.
Where Do You Start?
By adopting a R.A.P.I.D. continuous delivery discipline, DevOps teams can become more automated, more standardized, more efficient and more agile across the enterprise— all while improving the application lifecycle speed and quality.
Moving to a continuous delivery process is a journey and the best thing to do is start where the biggest pain point is today, make some wins and then move to the next phase that needs attention. As you move forward, you will gain the momentum that can help you win the race and deliver innovations faster that can help you continue to improve customer loyalty and beat your competition.
To learn more about all the aspects of true continuous delivery, I encourage you to watch a video recording of CA Technologies, Information Week, SunTrust Bank, Direct Line Group, and Rabobank discussing an open, integrated, and RAPID approach to achieve Continuous Delivery.
I’m also interested to hear your thoughts on what aspect of the R.A.P.I.D. approach has been the most beneficial to your organization? What has worked for you? Go ahead and leave your comments below.