Dr. Nityesh Bhatt Neil Harwani
The modern era or the twenty-first century belongs to science and technology as human lives revolve around state-of-the-art technology systems, specifically information and communication technology (ICT). Every sphere of human life – e-banking, e-health, e-government, and e-commerce, etc. is enabled by ICT systems.
The backbone of the continuously evolving technology world is the tech community including developers, who regularly develop, deploy, manage and upgrade the software programs to suit the changing end-user requirements. This process known as software project management has evolved from the waterfall model of the software development lifecycle (SDLC) and has got new feathers with other approached like pair programming, iterative development, and hybrid approaches over the last six decades.
Programming styles like structured and object-oriented ones also developed along with these methods. Over time, the older methodologies became inefficient and ineffective at delivering complex and time-bound products that changed frequently, resulting in the development of Agile and subsequently, DevOps over the last two decades.
As per agilealliance.org, agile is the ability to create and respond to change. It is a way of dealing with, and ultimately succeeding in, an uncertain and turbulent environment. It is a methodology where product specifications evolve over time and development happens in small one to two-week sprints, customers are shown demos at the end of each sprint and sometimes every day. It gives developers, product owners, and management a flexible approach to building software products that evolve and are aligned to customer needs with course corrections possible at any point of time during the project lifecycle.
Despite numerous benefits, certain limitations were observed in Agile approach too, which required weekly or fortnightly demos and deliveries. Therefore, continuous and concurrent light-weight design, development, testing, documentation, packaging, and release became sine qua non for sustenance. This necessitated the development of DevOps tools to improve the culture, deliverables and cycle time of project and product delivery. This shift was largely due to a large number of failures in software projects, cost and time overruns, and product non-conformance.
DevOps (in conjunction with Agile software processes) is a seamless methodology where the development team takes responsibility both for development as well as operations (therefore the term DevOps) which significantly increases the throughput. It has its origin in a thought-provoking discussion between Andrew Clay and Patrick Debois (considered as the father of DevOps) in 2008.
Researches reveal that learning and assimilating the DevOps and Agile methodology are relatively difficult for the development teams, but it produces significant benefits to all stakeholders, both in quantitative and qualitative measures. With the integration of Agile and DevOps, ownership, the overall structure of technology products, and their life cycle have seen a quantum shift.
The DevOps market size is expected to grow from USD2.90 billion in 2017 to USD10.31 billion by 2023, at a CAGR of 24.7$ during the forecast period, according to MarketsandMarkets. The IMARC Group also expects the global DevOps market to grow at a CAGR of around 21% during 2021-2026.
DevOps and related tools: DevOps spans coding, building, testing, packaging, releasing, configuring, and monitoring with cross-functional teams working on these areas. A lot of innovation in terms of processes and tools is happening in the DevOps world (including Scaled Agile). DevSecOps combines development, security, and operation. MLOps integrates machine learning pipelines and operations. DataOps and ArchOps are related tools in the domains of data management and software architecture.
Technology space is the best example for VUCA world. In just two decades, world has witnessed shift from 2G telephony to 4G, and 5G is knocking the door soon.
Use cases for DevOps: DevOps gets leveraged across a wide spectrum for software development. Smart cars are examples where car apps and navigation (integrated with IoT and embedded systems) need rapid upgrades and security patches from the vendor. In banking and financial applications, loan and insurance processes regularly change, which necessitate DevOps usage.
In smartphones, operating systems and applications are upgraded continuously due to regulatory, legal, and other macro-and micro-environmental reasons. Digital manufacturing and 3D manufacturing require changes in assembly and production lines to cater to large numbers of products making these ideal candidates for DevOps usage. The nature of online education also required continuous changes in courses, delivery, and methodologies, which are facilitated by Agile and DevOps tools. Similarly, applications of DevOps can be found in many other industries like telecom, online retail, e-commerce, social media, pharmaceuticals, petrochemical, hospitality, etc.
DevOps in a networked technology-infused world
We live in a technology-infused world where rapid changes can be witnessed across domains and where the pace of obsolescence is very fast. Technology space is the best example for VUCA (volatility, uncertainty, complexity, and ambiguity) world. In just two decades, the world has witnessed the shift from 2G telephony to 4G telephony and 5G is knocking on the door soon.
Changes in apps and billing ecosystem, frequent security updates, software-defined networks for optimising network performance, software-defined storage, a paradigm shift of in-premise systems to cloud to hybrid cloud (SAAS, PAAS, IAAS, etc.), wide-spread adoption of analytics technologies (including big-data), virtualization, high-speed broadband are some of the other trends. These technologies are reshaping the business models across industries, geographies, and the size of the businesses.
Containerization and orchestration of containers in the cloud ecosystem provide the facility for dynamic changes and this, in turn enables DevOps to work at speed.
The Agile approach or development originally started with the business and product team, architects, developers, etc. sitting together in a close office workspace or co-located for frequent interactions to deliver desired value to the customers. However, in the last one or two decades, these teams had to be located across places for several reasons including cost advantage and faster delivery. DevOps tools (for faster development) and network technologies (for team collaboration) facilitate concurrent development (along with monitoring and management) by multiple teams across time zones, geographies, SBUs, and sometimes organisations too. Thanks to DevOps tools and faster telecom and information networks, most agile teams have become distributed agile teams or location-agnostic, without compromising quality and speed.
Following are other reasons for DevOps in contemporary networked environments:
- Availability and need of virtual instances which can be scaled up and scaled down in seconds/minutes to meet varying demands of customers from different domains using a Cloud environment.
- Dynamic internet, cloud, analytics, and 4G/5G driven world where streaming, changes, and integrations are commonplace.
- Containerization and orchestration of containers in the cloud ecosystem provide the facility for dynamic changes and this, in turn, enables DevOps to work at speed.
- Developers don’t need to wait for multiple team members to set up their environment or applications. Containerized environments and build tools with CI/CD pipelines allow them to do this seamlessly.
- Requirements and design are discussed over calls and stored in tools like JIRA with development happening in DevOps way via containers.
- The same concept applies to all the network upgrades in the 4G/5G world, applications over networks, software-defined radios/networks, and so on. These necessitate rapid development infused with seamless operations for managing environments.
Disruptive technologies like Agile, DevOps, SMAC, and 5G will keep coming. While individually these innovations will add value, together these will bring a significant advantage for the community.
Bhatt is Professor & Chairperson, Information Management Area, Institute of Management, Nirma University
Harwani is Founder-Director – Harwani Systems