The digital five forces – mobility, Big Data, social media, cloud computing, and artificial intelligence, are disrupting not just businesses, but also IT strategies. Monolithic systems are being split into smaller, manageable modules. IT, business, and operation units are being merged. Feature and product-based teams, and productized organizations are the business reality. These changes have also shifted CIO priorities from reducing cost, up-scaling productivity and improving quality, to superior customer experience and release acceleration. CIOs are turning to Agile and DevOps to succeed with this strategic focus shift. As a result, the project line of thinking is making way for smart sprints. As these changes make their way into IT landscapes, its important to understand them better. In this blog, I will also share some critical factors for success with these acceleration enablers.
The terms Agile and DevOps are often used interchangeably. Both complement each other, and drive release acceleration. However, not all Agile is DevOps. Agile is a development methodology. DevOps is a culture change that disrupts existing work processes. Driven by enhanced stakeholder collaboration and automation, DevOps mandates formal change management, de-skilling and re-training of the workforce. Developers often fancy Agile for its flexibility, because it makes life easier for them. But from the business perspective, DevOps translates the agility into frequent production deployments, and generates value for businesses and customers. Therefore, to succeed with DevOps, businesses must reach a certain level of maturity with Agile. Quality assurance (QA) and testing units can accelerate this maturity without projects aging with failures and learning.
Agile maturity is driven by the mantra – Fail Fast, Fail Early, Learn from Failure, and Recover Quickly. When merged with the DevOps principle of no slowing down the process, the mantra ensures business acceleration in the right direction. In the QA-testing space, shift-left must be the new norm from test early and often to continuous testing. Testing can no longer be plugged in towards the end. It must be continuous and automated not just in pockets, but across the testing lifecycle.
Also, methodologies such as Behaviour Driven Development (BDD) and Test Driven Development (TDD) are making their way into the development and testing landscapes. DevOps is also disrupting the testing lifecycle by reversing the testing coverage and effort. Unit testing gets maximum focus followed by service-based and GUI-based end-to-end testing. The traditional UAT is replaced with exploratory testing methods involving multiple permutations and combinations for business and feature acceptance.
This testing complexity introduced by Agile and DevOps requires end to end automation automation that extends much beyond mere environment and data provisioning. The cloud, combined with effective service virtualisation is enabling automation and eliminating testing dependency on upstream and downstream systems. Open source tools drive continuous integration and continuous delivery, and provide the much needed release acceleration. While CI and CD are must haves, theres a third C, which cannot be ignored Continuous Innovation. Comprising intelligent QA tools and frameworks, continuous testing innovation ensures passage of clean code through the CI-CD pipelines. When combined with AI, these intelligent frameworks result in intelligent, self-learning and auto-correcting CI-CD pipelines that can support unmatched speed and acceleration.
With a focus on more unit testing in the development phase, developers often tend to look at these modern testing interventions as unnecessary effort overhead. This challenge is actually an opportunity a good case for integrating developer-tester roles and dismantling the development, testing, release silos.
In addition to these operational issues, which are easily addressable, CIOs have a larger concern – effectiveness of Agile and DevOps with geographically dispersed teams. Distributed Agile also introduces compliance challenges. Regulators in some markets could have a different view, terming multi-vendor integrated teams as leased resources. While these compliance risks can be addressed with tight scope and role definitions, effectiveness of distributed Agile can only be proven with the right set of velocity metrics such as build failures ageing, automated build quality, automation and confidence rates and lead time to deployment. With increased stakeholder collaboration and the right level of automation, distributed agile teams have delivered superlative results far better than co-located teams. There is enough data to substantiate this view.
Finally, its best to be prudent and realistic with DevOps goals. If your company is just beginning to test the waters with Agile and DevOps, my advice would be to start small and then scale big. Before taking the first step, equip and empower your QA team with business access and visibility across functions. It will steer your business in the right direction and with the right speed.