DevOps Benefits
Jul 01, 2022In this video we'll outline the benefits of DevOps compared to older methods. Traditionally, organizations utilized separate operations and development teams and that's because the perception was that the skill set required to do those jobs was completely different. However, organizations that run with two separate groups for operations and development tend to run into certain barriers.
Traditionally, organizations utilized separate operations and development teams and that's because the perception was that the skill set required to do those jobs was completely different. However, organizations that run with two separate groups for operations and development tend to run into certain barriers. The most obvious barrier is silos. The teams are separate, so their knowledge is separate. And that can sometimes be referred to as silos. Siloed knowledge means that the individual teams don't have the full knowledge of the other team and that can make it very difficult to collaborate or even help each other out. Having separated team also tends to lead to errors simply because they aren't in harmony. Both teams do their own thing their own way. So, when the Dev team hands over a version to the Ops team, there are almost always going to be errors in the deployment simply because the Ops team is not nearly as intimate with the software.
It also results in the project execution by each team being completely opaque to the other team. As far as the Dev team is concerned, the Ops team doesn't need to know how they're coding things. And as far as the Ops team is concerned, the Dev team doesn't need to know how they're monitoring things. When in reality, it'd be much better if this was more transparent. And one more barrier is maintenance. Because the Ops team has no control on the software development, if any maintenance is required, it needs to pass through the Dev team and maybe even a whole other process. And lots of times it's just not worth it. Now, over time we've come to realize that the skill sets of these two teams are complementary. And so, having a combined team called DevOps was born. And with that we discovered a whole host of key advantages. For example, with the combined development and operations team, we came to realize that development could be performed substantially faster. The time to market was drastically reduced.
The Ops team knows what it takes to deploy and maintain software, and that's fed into the development process. And that results in much less turbulence when it comes time to deploy the software. Now the combination of the teams also results in a far more stable development environment. The team fully understands the operational needs of the software and builds that into the product from day one. And this can include simple things like improved logging. But it can also include more complex things like metrics, monitoring, automatic recovery strategies. Another key advantage of DevOps is simply that you get a much better-quality output. Now because the Dev and Ops teams are now one, the team is required to not only understand the development needs, but also the deployment needs. And that results in a higher quality product that's thought through the operational needs. Now like I said, this results in better logging, more metrics, more robustness, and due consideration of other SRE and support needs. And all of that combines to a much more robust, secure, and quality product.
Now, DevOps also has a tendency to result in higher degrees of automation. With DevOps, we become so much more efficient in the deployment strategies that we can automate it. So, we create automated pipelines that compile, test, and deploy our software to the various environments it needs to go to. And of course, DevOps means enhanced collaboration. Now because the Dev team and the Ops team are now one, clearly that relationship is going to be enhanced. But also, because that team is now one, it enhances collaboration with other teams. So, if other teams have questions about the software, they no longer get bounced around between two teams to get their answer. It means that a single unified DevOps team can collaborate much more efficiently with those other teams. And thanks to that collaboration, the DevOps team simply works smarter too. Now I already mentioned the automation but it goes deeper than that. The fact is that now that the Dev team understands the Ops side of things, we simply build our software differently. We keep testability in mind.
We consider security and monitoring, even think about maintenance and future enhancements. So, the way the software is built is much smarter. Now DevOps also results in a much higher degree of agility. That's why it works so well with the Agile methodology. In the past, if a change in direction was required, you'd be impacting a couple of different teams and you'd have to manage the transition of both teams. But now that it's one team handling change is substantially easier. So, changes to strategy and direction aren't a problem. Another key advantage of DevOps is that you can implement continuous delivery. Remember, I mentioned automation and pipelines. Well, traditionally the Dev team would build some software and hand it over to the Ops team for deployment. With DevOps, because the teams are one, the development and the deployment can be done much closer together.
In fact, it can all be automated. That's where pipelines come in. The pipelines can be connected to a code repository so that any time code changes it can be automatically compiled, tested, and deployed. Even work management is improved with DevOps. Rather than having two teams needing to organize related work items between each other, we now have one team with a single backlog of work items. The DevOps team is far more optimized when it comes to managing work. It's also a much easier situation for management teams to take on. They no longer have to figure out which team takes on which work items in which order. They simply write up the work and stick it into the one backlog for the one team to take on. Another really nice advantage to DevOps is versus two teams anyways, quick issue resolution. So, let's imagine a traditional case where the teams are separate.
Now let's say a user has a problem. They reach out to the support team. The support team reaches out to the Ops team. The Ops team does some investigation and if they can't solve the problems themselves, it goes to the Dev team. Dev team then also does an investigation, fixes the problem, and hands it to fix to the Ops team. And then the Ops team deploys to fix and tests again. If it's fixed, they contact the support team who then contact the user. And that's a lot of steps. With DevOps, the user call support or sometimes even the DevOps team directly. The DevOps team investigates the problem, resolves it, and the fix is automatically deployed, and then the user is contacted, way less steps. Now, with all these advantages being laid out, you've probably spotted a rather obvious advantage, better productivity. DevOps teams are much more knowledgeable in several areas of the product lifecycle. And so, their output and their efficiency is significantly improved compared to having separate teams responsible for specific things.
Work items aren't bounced between teams. They're handled in one location by one team that understands the entire process and it's hard to beat that efficiency, which brings us to one last advantage. Reduced production costs. Now it's hard to explain just how much cost benefit there is for your organization until you implement DevOps for yourself. But everything is simply more efficient and streamlined. And that results in a faster to market, higher quality, and cheaper output. So, you're not only getting more and better and faster, you're getting it cheaper. And who can argue with that?