Twenty years after the Agile Manifesto was formulated, and 12 years after DevOps became a thing, both these inter-related philosophies are still works in progress — and for some enterprises, very slow works in progress. These methodologies have the potential to change the way software is designed and delivered, but it takes a great deal of organizational work to make them stick. What’s at issue? The long-sought agile and fast-sprinting agile approach to software may not be quite enterprise-ready, and that’s the challenge — particularly when game-changing initiatives are underway.
Consider the drive toward advanced analytics and artificial intelligence. In this space, “agile and DevOps are still largely misunderstood, overlooked, and misapplied,” says Chris Bergh, CEO of DataKitchen. For example, DevOps is widely accepted in the software engineering community, “but spotty and sporadic in the data analytics space, often consisting of data scientists who use code and configure tools to create analytic insights,” he says.
Attempting to apply agile and DevOps across the entire enterprise “is quite difficult to adopt uniformly,” agrees Manoj Karanth, AVP and global head of data science and engineering at Mindtree. “It must be backed by a change management function given the enormity of the effort. Sometimes the underlying technology does not permit the level of automation required by DevOps teams, leading to lots of spaghetti code that adds to maintenance woes.”
Industry experts provide the following insights for improving the odds of success in DevOps and agile:
Broaden the definition of “product.” A common theme Karanth sees in successful efforts is “the formation of overarching product teams versus siloed product teams,” he says. “These product teams think about the entire product lifecycle from inception to production taking the product maturity and toolset into account. This forms a good ecosystem to apply and tweak the agile principles that the technology and team maturity permits when embarking on a path towards automation.” What is needed, he adds, is the ability to break down organizational silos, as well as an openness to new technology adoption.
Move to low-code and no-code. Low-code and no-code not only open possibilities for end-users, but also pave the way for more resilient agile and DevOps approaches. Adoption has been cohesive because many solutions are either low-code or no-code, opening the door for organizations to implement technology rapidly and maintain the technology with ease,” says Borya Shakhnovich, CEO and co-founder of airSlate. .
Leave grunt work to APIs. The key ingredients to agile and DevOps-driven enterprises “are automation-friendly technology components that are enabled through software APIs — hence the reason why Cloud native technologies and low code platforms are critical for this enablement,” says Karanth. “Put together, this helps bring in greater efficiencies enabled by hyper-automated operations with lifecycle automation, intelligent monitors and bots across business process, cognitive and conversations.”
Encourage adoption of common toolsets. The teams tasked with delivering solution across various parts of the enterprise –IT, data engineering, data science, visualization, and governance — “might report to different management chains, compete for limited resources, or reside in different locations,” says Bergh. “Sometimes they behave more like warring tribes than members of the same team.” As a result, he continues, “the day-to-day existence of a data engineer working on a master data management platform is quite different from a data analyst working in Tableau. Tools influence their optimal iteration cycle time — months, weeks, days. Tools determine their approach to solving problems. Tools affect their risk tolerance. In short, they view the world through the lens of the tools that they use. The division of each function into a tools silo creates a sense of isolation, which prevents the groups from contemplating their role in the end-to-end data pipeline.”