DevOps Model: The Role of Quality Assurance Redefined
July 13, 2020
You might have come across DevOps so often that it may seem to penetrate each and every organization slightly related to IT. But the reality is different, as always. The point is that this model is far more complicated to apply compared to Agile and other popular forms of SDLC because the role of each department undergoes significant changes.
What is DevOps?
Although many definitions are available, we think of DevOps as the space for keeping the software deployable regardless of the new features implemented. Most importantly, DevOps means that everyone — from Jr. Analyst to developer, QA engineer, project manager, and owner — takes equal responsibility and makes a contribution to product success.
The fundamental benefit of the model is a clear segmentation of roles that follows the principles of Continuous Integration and delivery (CI/CD).*
*Off-top for those unaware: CI/CD is a concept that enables effective merge of newly developed features into the main codebase. It fulfills the integration aspect by running different tests at each sprint stage and provides delivery aspect by deploying the committed code into the software available for the end-user.
Back to the roles. Although separated, DevOps is a strategy that embeds each just in time and keeps their activity during the whole product growth.
Developers and Designers (Devs) build the software logic following user stories, create features that work and prove that via unit tests.
Quality engineers (QEs) help maintain software quality, review the features, write acceptance/end-to-end tests, and approve the software correspondence to the requirements.
Product owners (POs) and Business Analysts (BAs) cover the aspect of business value for the end-user, coming up with the user stories. Often, they have to coordinate and analyze the acceptance test results to check their relevance and implement changes in user story when necessary.
Operations (Ops) takes care of the software released. They make sure it is available for the users. Thus, they work on the code logistics design to move developers’ code to a production environment where people access the website/app.