
(Image Credit: iStockPhoto/Jane1e)
For many DevOps teams, a transition over to a Continuous Integration (CI) / Continuous Delivery (CD) methodology seems impossible. Yet, this daunting task is inevitable, as application development transitions away from top-down, Waterfall processes in order to meet faster, more frequent release cycles.
Adopting “shift left” CI/CD processes allow testing and Quality Assurance (QA) to be fully integrated throughout the process, enabling sustainable delivery of new features through a Quality Engineering (QE) approach. This means going beyond Agile to continuously test, analyze and improve software quality throughout the development lifecycle, rather than at the end of the development process. An overall QE approach not only shortens time to market, it also contributes to simplified, more effective troubleshooting and a higher quality product.
In other words, the journey to QE will pay dividends in terms of customer experience, competitive advantage and return on investment. But, where to start? Well, even the longest journey begins with the first steps.
Step 1: Review
As with any development project, the first step is to understand the product requirements and the various goals of different stakeholders. It’s best to document these objectives and clearly communicate them to the team, including a schedule of the builds and maintenance release cycles. An important part of this first step is to review the branching strategy and dependency management of your builds.
However, before each member of the team can begin doing their job, they first need to understand what’s expected of them. This may sound incredibly obvious, but it’s surprisingly easy to get tripped up at the beginning. The fact that essentially everyone is accountable for quality in the QE process can create confusion over exactly who is doing what.
And before moving on, be sure to take stock of your own processes, tools, and technologies. Identify potential gaps in capabilities and create a game plan on how to address those deficiencies.
Step 2: Define
Now that you have your high-level strategy planned out, the next step is to define your CI/CD implementation process. This requires the documentation of a design flow for new builds and releases, incorporating continuous testing and QE methodologies. This CI workflow should reflect branching and merging strategies, as well as dependencies and multi-site coordination.
This step includes the evaluation and selection of CI tools and technologies that your team will need in order to make a smooth transition to QE. A key element of this agile transformation is the adoption of test automation, which enables release cycles to be shortened, so it’s important to document how and when automation will be used.
For those organizations with limited internal CI/CD expertise, defining the most efficient CI workflow and mapping a tools landscape can be a challenge. There are many available tools to choose from that support each phase of development: building, testing, and deployment. Yet, it’s important to take the time to get it right to create a process that enables both quality and speed. To avoid stumbling on this step, many enterprises choose to seek the help of third-party consultants to develop a documented CI workflow and tools landscape that will deliver optimum results.
Step 3: Deploy
Now that you have completed your careful planning steps, all of your preparation comes together with deployment. This means activating your strategy and CI workflow in a way that supports your entire product development lifecycle.
The overall CI workflow should be broken out step by step, with scripts written to support each step in the process. Using a CI framework or build automation tool, you can automate the software builds and develop the packaging deployment scripts.
Of course, tracking and reporting is a critical aspect of any enterprise software development project — troubleshooting bugs would be almost impossible without it. So be sure to validate the start, execution and reporting phases of your basic builds.
Quality at the Speed of Agile
Quality engineering has become a strategic initiative in today’s fast-paced, mobile world. Making the shift to CI/CD methodologies enables speed and flexibility throughout the entire development cycle for faster time-to-market, greater reliability, and savings in time and money to deliver an overall competitive advantage.
Of course, this transition doesn’t happen overnight. Successfully implementing QE throughout your DevOps team will take some time and some dedication. But you can’t move forward without taking the first couple of steps… and the rewards waiting at the end of your journey are well worth the effort.
Step 1 Deliverables |
Step 2 Deliverables |
Step 3 Deliverables |
Documented Objectives |
Documented CI Workflow |
Identified CI Tool Deployment |
Branching Strategy |
Build Environments |
Step by Step CI Flow Design |
Tools & Technology Landscape |
Define Merging Strategy |
Automate Software Builds |
Dependencies (environment, process, etc.) |
Test Automation Integration |
Build Test Verification |
What are your thoughts on taking a 'quality engineering' approach? Let us know in the comments.