software

Deepdive: DevOps and its impact on software development

Prashant Vasant Burse- AVP – Senior Delivery Manager, Infosys talks about the multi-pronged impact of DevOps. Excerpts.

What ails current software  development practices and why is DevOps being touted as the panacea?

Digital consumers are driving growth within all business segments. These smart customers have high expectations and will switch loyalties if their interactions with digital media do not meet these expectations. The best way to address the increasing velocity, variety and volume of such customer needs is DevOps because it focuses on faster feature deployments to production. It helps us accelerate the feature deployment process with increased automation using open source or license tools at every stage of delivery lifecycle which includes development, QA, on-demand environment provisioning, production deployment, and gathering newer requirements to make applications more customer-centric. DevOps brings together all these organizations, thereby making process of software deployment very lean.

snip20170303_35 Prashant Vasant Burse

Traditionally, Dev and Ops never see eye to eye. So, if you take a practical view, how difficult is it to bring together people, process and technologies under one umbrella?

Certainly, Dev and Ops are part of different hierarchal structures within an organization. They both have different visions, missions and SLAs metrics, making it quite difficult to bring together people, processes and technologies but they have the same goals. Here, standardized processes and the right mindset can drive collaboration between these teams.

Organization change management (OCM) is an integral part of DevOps adoption, and runs in parallel through all phases of the adoption journey. OCM includes focusing on redefining the roles and performance measures for successfully driving the people transformation across dev and ops teams. It also includes defining goals for the DevOps teams, setting up governance, metrics, creating enablement programs, etc.

We use certain practices to facilitate this collaboration such as:

  • Cross-team change management – With integrated change management, development teams can work closely with operations teams to understand the implications of any technology changes at the organization level.
  • Integrated deployment planning – In a DevOps strategy, a cross-team approach to deployment planning greatly encourages cooperation between operations and development teams.
  • Unified stakeholder involvement – For DevOps to succeed, developers, operations staff, testers, and support staff must work together on a regular basis. This is possible by adopting practices that encourage stakeholder participation such as on-site customer, which is adopted from extreme programming (XP).
  • Continuous testing – This is common in agile projects and extends to approaches such as test-driven development (TDD) and behavior-driven development (BDD). Agile teams frequently run automated test suites resulting in better quality as problems are fixed immediately. This shift-left approach to continuous testing enables quality assurance (QA), advanced QA analytics from production and various unstructured and structured sources, thereby helping development teams uncover operational issues faster. Thus, continuous testing closes the gap between Dev and Ops.
  • Continuous deployment – Continuous deployment enables development teams to reduce the time between developing code and deploying code into production. It enables the business to become more responsive. Here, the key is to standardize processes across the feature deployment lifecycle, thereby accelerating the tool implementation process.
  • Automated reporting dashboards – Automated dashboards in DevOps significantly reduce time spent on collecting metrics and provide quick insights to the management and governance teams.

While 100% error-free code is a utopia, how does DevOps change the scheme of things here in terms of QA, SW integrity and cutting down on lead times from development to test to beta to production or implementation?

QA is an integral part of an effective DevOps value chain. It reduces business risk and enables faster delivery even within complex application architecture (Cloud, IoT). Adopting DevOps, it is essential for QA to adopt several new strategies such as:

  1. Maximizing automation to reduce lengthy test cycles
  2. Shift-left of testing to test early and often
  3. Introducing various tools to test complex application architecture and platforms (API, Cloud, IoT)
  4. Leveraging analytics-driven QA and testing strategies
  5. Enabling skill upliftment such as SDET, testers with development skills and knowledge of multiple toolsets for continuous testing
  6. Improving the user experience with functionality validation
  7. Automating test data
  8. Optimizing test environments

In our view, DevOps impacts 4 aspects of QA:

  1. Comprehensive automation test strategy: QA has to create a comprehensive end-to-end automation strategy that covers all aspects of technological architecture such as:
    1. Automated functional testing:
    2. Automated SOA/API testing with virtual assets:
    3. Automated test data management:
    4. Automated performance/security testing:
  2. Process automation: In the world of DevOps, agility is the key to deploying quality features into production. There are 2 aspects to this:
    1. Process automation:
    2. Automated reporting:
  3. Testing debts: The term ‘technical debt’ is quite common in the context of bad code, which prolongs the process of software development/continuous integration in DevOps. It is very important to broaden the horizon of debt to all aspects of software delivery, particularly for continuous testing which would be Test script, process, tools and right-skilling debts. 
  1. Elevated quality assurance: Prompt feedback loops and the ability to take into account the sentiment of digital customers are crucial for higher business growth. To enable matured DevOps, it is important to implement quality AI/machine learning solutions in areas of development, testing and production. as well as various aspects of software delivery such as tracking customer sentiment across social media and other channels.

Agility and continuous delivery are part of the DevOps value chain. Could you elaborate on that? 

Agility is a business imperative and is required to respond to ever-changing customer requirements. Organizations that adopt DevOps can benefit from faster responsiveness to changing market conditions, customer sentiment and the demand for high-quality & low-cost solutions.

Continuous delivery extends continuous integration and promotes consistent, reliable and automated deployments with frequent iterations and fast feedback loops. CD tools provide visibility to operational environments, streamline their workflows and automate a number of build, release and deployment steps. 

DevOps is about enabling rapid delivery of capabilities to the end consumers, which requires collaboration across the software delivery value stream that includes teams spanning across business, development, QA, and infra & ops. This entails embracing a set of capabilities that deliver speed (faster development & frequent releases), quality (stability & resilience in production) and value. Software tools are an essential part of DevOps and the key to orchestrating these capabilities seamlessly across this software delivery value stream. DevOps adoption entails building a set of capabilities across various functions in the organization in terms of people, processes, and tools. 

How is Infosys approaching DevOps? How is it impacting your development and delivery processes?

Given the growing demand to implement DevOps capabilities in our projects and our client organizations, Infosys has built strong capabilities in this space and our client engagements on DevOps are increasing at a rapid pace. Our solution is based on 3 levers:

  • Leveraging people with the right skills to increase collaboration between development, QA and operations
  • Having well-defined, lean processes and practices for measurable and predictable outcomes
  • Using technology to maximize automation and increase adoption of right tools 

From an IT organization’s perspective, how will DevOps impact the enterprise side of things? 

The core idea of DevOps is to break silos and remove boundaries between business, development, QA, and operations teams. With decentralized self-organizing teams, there is a tendency to create a centralized testing CoE to establish standards and guidelines that leverage best-practices and mitigate the risk of inconsistency when using various methods and tools.

Do you think DevOps will impact the whole testing arena? Is it something like a Dev-Test-Ops scenario that we are heading towards? 

QA act as a key enabler for DevOps as the quality, reliability and security of the applications should not be compromised due to frequent releases and faster feature movement to production.

 DevOps breaks silos between business, development, QA, and operations teams. While the lines between development and QA are increasingly blurring, there is an increased focus on continuous testing. 

DevTestOps ensures that testing is part of the complete picture and that it remains a first-class citizen in agile and DevOps transformations. Through DevTestOps, the overall delivery speed increases while maintaining or improving quality. There are some new best practices for effective agile or DevOps such as specification-driven testing (behavior-driven development), test-driven development, exploratory manual testing (ad-hoc testing with a focus on business and technical-critical priorities), and service virtualization testing.

Leave a Reply

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