Publish Date : 04 Oct 2022
DevOps means that the running and maintenance of software is considered when it’s being built—an approach that’s slowly grown in popularity due to its many advantages.
Since Salesforce became the first major company to deploy enterprise software on a web browser in 1999—using cloud computing to deliver programs on demand to anyone with an internet connection—more organizations have followed suit. But moving to the cloud shone a flashlight on a whole host of issues developers had previously never worried about.
Traditionally, software was built by one team, which was handed over to another to run and maintain it. But in recent years, as software-as-a-service (SaaS) business models have become more widespread, these departments have begun to interact more. In the past, uptime was the sole concern of the customer and the operations team; suddenly, it became the developers’ problem, too.
What DevOps Means—Or Should Mean
In 2009, Patrick Debois coined the term “DevOps.” Many think this describes a function within a software engineering organization, but it’s really a mindset about how your organization operates. It means that when you build software, you take into consideration what it’ll mean to operate it.
In practice, this isn’t what seems to be happening. I see a lot of businesses with a department called DevOps that’s essentially a bridge between their engineering and operations teams—and I believe this is the wrong approach. Instead of trying to connect these two siloed departments, businesses should merge them.
This doesn’t just mean that the people who run your software are the same people who build it; it means a major shift in your approach. Instead of building an application and worrying about running it later, you tackle operational requirements as part of the overall engineering process. At an early stage, you identify and build any additional elements needed to ensure the resilience of your software so it always operates to your end users’ satisfaction.
The Value Of DevOps
By taking a DevOps approach, you make sure that you build the right functionality for the users and that you can seamlessly operate it so that you can do the following
1. Ensure system uptime. Operations teams often struggle to find where problems occur—a task that’s increasingly difficult the larger your system is. Even with monitoring tools, they may have to speak to IT support and to your customers to work out what’s gone wrong. It’s a time-consuming and unreliable process that risks long system outages and a failure to meet your service level agreements. Incorporating operational concerns from the start can cut the risk of expensive downtime and disappointed customers.
2. Run your business more smoothly. Two unconnected teams will inevitably have communication issues, and adding a third to the mix only compounds the problem. Simplifying your departments cuts time, complexity and frustration.
3. Build better software. Right now, many software engineers don’t consider the ongoing operations of what they’re building simply because it isn’t their problem. A DevOps mindset makes it their problem. Believe me, if you’re the one getting called in the middle of the night when something breaks, you’ll do everything you can to stop it from breaking in the first place! And that means organizations gain more stable, reliable software, as well as improved observability and traceability.
Learning From Experience
We’ve recently gone on our own DevOps transformation journey at Unit4—and we’ve made all the mistakes and got the T-shirts. In 2019, as we began work on the next generation of our ERP products, we realized that the potential risk of downtime is magnified in a multitenant environment. If your system is down, it’s down for everyone—impacting thousands, if not tens of thousands, of users.
This led us to the DevOps philosophy, but it wasn’t a simple transition. At first, we created a DevOps team that sat in the middle of development and operations before merging everything into one. The experience has taught us what it takes to make DevOps successful.
1. Put the right people in the right place. I see a lot of organizations treating operations as an IT administration task and placing talent accordingly. However, digital-native businesses are employing software engineers for both DevOps functions in recognition of the high level of technical knowledge required. To make DevOps effective, invest in hiring engineers who specialize in operations or upskilling your existing workforce to avoid frustrated staff and sluggish, ineffective software.
2. Change mindsets. Adopting a DevOps mindset isn’t solely about bringing operations and development closer: It’s about getting them to meet in the middle. Crucially, you need buy-in from your software engineers.
3. Prioritize change. Undergoing any kind of transformation is a significant investment of both time and money. But the earlier you acknowledge that DevOps is an important challenge to overcome—rather than assuming it’s working fine—the easier it will be and the more value it will add to your organization.
Meet The Future
The move toward DevOps is simply the next step in the maturity of your business—and where the world is going. For most businesses, making the most of DevOps will take a lot of work. But it’s worth it: You’ll get better products, faster updates, more aligned teams and a better guarantee that things will work. Doing it the right way can hugely benefit not only your own company but also your customers and end users.