There’s no question that open source software is vital to enterprises today. But in particular, agile and DevOps teams rely on open source. In fact, it’s hard to imagine how you could have one without the other, says Chris Short, principal product manager for Red Hat Ansible and publisher of the DevOps’ish newsletter.
“Open source software and the processes and tooling around it are what necessitated the birth of agile and DevOps,” Short explains. “Having the ability to edit and share code in real time with the rest of the world (or only your internal teams) can be a significant productivity boost. The folks working in these spaces are force multipliers in the right conditions. They focus on the tasks that solve the next series of problems the organization will face.
“As a result, teams engaged in open source are often learning, automating, and tackling new obstacles at an ever-increasing pace,” Short continues. “Adopting DevOps and agile practices is how companies are managing the velocity of change. I imagine it’s possible to do agile or DevOps in a closed source world. The question then becomes, why put that hurdle there?”
“Unless you’ve been hiding under a rock for the past 10 years, I’m sure you have seen a tremendous uptick of open source,” says Kohsuke Kawaguchi, chief scientist for CloudBees. “Simply put, we live in a world where most of the middleware and development tools that agile teams rely on are open source because that’s how the industry produces high-quality software, and then whenever possible, we consume that middleware as services. The landscape surrounding open source has changed, with more and more projects backed by vendors and end-user companies versus a community of independent developers, but the importance of open source has only gained more prominence.”
[ Read also: 8 advantages of using open source in the enterprise. ]
As DevOps and agile practices have gained momentum in enterprises, so has a reliance on open source – and there’s a good reason for that, according to the experts. Here are seven fundamental advantages open source offers to agile teams.
1. Productivity
Eran Kinsbruner, lead technical evangelist, Perfecto: “Open source provides the flexibility developers and test engineers need to solve complex problems that commercial tools often lack. Open source enjoys access to a large community of practitioners who are sharing good practices, code that solves specific problems, and more. In a DevOps reality, where multiple teams are working together on various projects that are tight in time, having the ability to leverage a plethora of free and flexible resources in the shape of open source solutions can be a huge boost to productivity (hence time).”
“Agile teams can get fast resolution to their ongoing activities and work around limitations that commercial tools sometimes pose to their software development cycles. Collaboration between teams that uses an open source tool versus a commercial one is also much easier since there is less of a struggle to deal with software licenses across individuals, etc. Teams can simply download a free repository from the web and start working immediately.”
2. Autonomy
Helen Beal, DevOpsologist, Ranger4: “In DevOps, we want to empower people to have autonomy and to experiment. The availability of open source software allows developers to do that with ease, whether it’s using open source components in their applications or integrating tools to build a DevOps toolchain.”
3. Cost savings
Fin Goulding, co-founder and CIO, Flow Academy: “The open source community should be widely praised for its role in modern software development. It’s inevitable that if you use agile and DevOps practices, then you'll be using open source in some shape or form – be that to write software and deploy it or to run and support it. It is the most cost-effective way to scale and grow a business.”
4. Flexibility
Jayne Groll, CEO, DevOps Institute: “Agility comes in all forms – by definition, it means to be flexible and adaptive. Agile software development, therefore, must be supported by flexible and adaptive agile automation, much of which will likely be built upon open source products. With the availability of plugins and APIs, organizations can also build custom pipelines to meet their specific needs and resources. They get to build their own ‘suite’ of products instead of being limited to that offered by a single vendor. Open source helps vendors deliver flexible solutions; it helps organizations deliver software as and how they need it to.”
5. Adaptability
Jonathan Fries, VP engineering and digital transformation, Exadel: “Open source projects have several benefits to agile projects, namely increased velocity, improved quality and timeline (versus newly written code), and cost. Another big advantage is adaptability – it’s possible to branch the source code and make changes for use in the project that you’re working on. Using closed source, third-party tools can help with velocity and timeline, and they may be cheaper than writing such code yourself, but you will always get just what the vendor has produced. Open source tools have the possibility to be adapted and changed, bringing them closer to the client or customer’s specific needs.”
6. Improved flow of work
Carmen DeArdo, senior VSM strategist, Tasktop: “Using open source can be applied to improve the flow of work, particularly inner-sourcing. Specifically, we know that teams encounter wait states – waiting for others to do work for them (e.g., make a change to an application ‘owned’ by another team).”
“Rather than wait for the team to have capacity and priority to get this work done, it’s more agile to allow the team itself to do the work and then use a Git pull request to have the code change approved by the owner. This is the same concept that drives the use of open source – the way to improve flow is to improve efficiency to add value in the most expedient way.”
7. Reduced cognitive load
Manuel Pais, DevOps consultant and co-author of “Team Topologies”: “The commonly referenced advantage is reduced development time, when you can delegate non-core parts of your system to open source components. But there’s also a long-term advantage in terms of reduced cognitive load for development teams.”
“If the open-source component is seen as a ‘service’ that the team consumes, with clean interfaces with our system, then we can ‘offload’ its technical complexity and focus on the component’s features and inputs/outputs. However, at times the team might need to make contributions to the open source component. It’s important to explicitly consider that as a distinct, collaborative mode of interaction that needs to be restricted in time and scope so that the ‘component-as-a-service’ model can remain sustainable.”
[ How do IT leaders use open source? Get the new research: “The State of Enterprise Open Source.” ]