Is Error Free Code A Utopia?

Will DevOps usher in error free code? Notwithstanding, a radical intervention is needed to uplift the ailing current software  development practices and why is DevOps being touted as the key to better software and touted as the panacea

 DevOps is not so much a destination as a journey, a kind of fitness program that can help you transform your business into a world-class competitor. Like any fitness program, it will be difficult and, at times, painful” – Amy DeMartine, Senior Analyst , Forrester Research

 DevOps. This is the hottest tech term in town now. Enterprise computing is at the center of a major disruption and a nexus of forces are ushering in significant changes and separating leaders from laggards. The leaders obviously are the early movers of tech and have already started reaping in the harvest. In the past we have seen major disruptions like cloud to big data – that has opened up a new premise in solving business problems by using a new style of IT.

In that order, as we look at the last few months, one of the trends that is getting heightened momentum is DevOps. Lets try and decode what exactly is DevOps and why it will play a significant role in shaping enterprise IT in the days ahead.

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.

THE GREAT DIVIDE: DEV & OPS

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? Experts say that 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.

Experts advocate the following practices to facilitate this collaboration:

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

IS ERROR FREE CODE A UTOPIA? 

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? Experts say that

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

DEVOPS IMPACT ON QA

Experts aver that 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 testingwith virtual assets:
  3. Automated test data management:
  4. Automated performance/security testing:
  1. 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:
  2. 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. 
  3. 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

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.  

 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.  

DEV-TEST-OPS

Experts say that 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.

UP AHEAD

The road to DevOps has already begun for some and many others will be a part of it this year. Enterprises are recognizing that DevOps will enable them to develop faster, better quality applications, and more importantly, better align with their overall business objectives.

DevOps is a disruption that will have a sweeping impact on software development practices. The advent of the application economy has changed the demand landscape completely as IT organizations are forced to relook at their IT infrastructure to the new normal demands.

As we take the supply side of things, today all IT services companies are inking bold new strategies to take on to the new normal tech challenges. The old school global delivery models based on ‘Time and Material (T&M)’ approaches no longer holds good and ‘Outcome” based model is the client preferred delivery approach now. So when we speak about an outcome based model, clearly, it is an approach that is measurable with many parameters and metrics and hence tighter SLAs.

In this backdrop, while Cloud in the last few years have unbundled some of the ‘On Prem’ challenges at the same time has created the need for elastic IT infrastructures- that is agile and be able to pro-actively address demands.

Clearly IT services companies today need to have a multi-pronged delivery strategy. Many are resorting to ‘Automation and AI’, but at the heart of it, the need to put in place agile development practices to create elastic and on demand IT infrastructure. It is in this context DevOps is expected to play a pivotal role as we move forward.

Leave a Reply

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