Opinion: Getting a jump-start on the road to quality engineering

Opinion: Getting a jump-start on the road to quality engineering
Manish has more than 14 years of professional and management consulting services experience and speaks regularly at leading quality and software engineering conferences worldwide. Mr. Mathuria holds an Executive MBA from Santa Clara University and a Bachelor of Engineering in Computer Science degree.

(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.

View Comments
Leave a comment

Leave a Reply

Your email address will not be published. Required fields are marked *