Everyone is talking about DevOps. I’m sure you’ve heard it. One of the best definitions is: the union of people, process, and products to enable continuous delivery of value to our end users. What does that mean? What is value? How do we know we’ve delivered value? And why continuous delivery?
Let’s start with Value. There are lots of benefits and value for lots of groups. We’ve got end users, customers, clients; whatever you want to call them, those are important. They’re usually the reason the company exists. We’ve also got employees, people at the company that do the work. Finally there is the company itself, and all of the market, monetary, and legal things that go along with that. Let’s break down some of those. And I do mean some of those, because there are a ton of aspects that are minor but deliver noticeable value.
Let’s start with the end user. This is the one most people have heard of or are interested in. We want to deliver value to the end user. What type of value? Well, that depends on your business. But this is related to the value Development or Operations can help provide your end users. This could be a new feature, or a new product. Perhaps you’re enhancing the stability of an existing product, adding additional resources in new regions. Leveraging new areas for disaster recovery for business continuity in case of an emergency. Maybe it’s as simple as making sure the bugs get fixed in production. Value can be whatever it needs to be for you business and your end users. DevOps also helps us deliver smaller chunks of code, effectively limiting the blast radius of change. We deliver value in small, working pieces instead of waiting months or years to deliver a big bang release that has to work, all or nothing.
Peers / Coworkers / Employees
What about the peers, coworkers, and employees at your company? DevOps provides a lot of benefits here too. They not only want the right tool for the job, they want the right process to make the job easier. By focusing on the work we are delivering, we limit the work in progress (WIP). People don’t have to juggle 10 different tasks, or scramble into the weekend trying to finish work.
As a developer writing code, you want to be able to work on those new features and not have terrible merge pains. You want to be able to quickly get feedback on that feature: does it compile, did you break any of the tests, do your peers see anything that you missed?
As a tester, you want all the code that gets checked in to be able to compile, run, and pass all the existing tests. You don’t want to start testing builds to be on hold waiting for a small typo or configuration error to be fixed. You want to be able to automatically run your regression suite. You want to see that end to end traceability of work items to test cases to builds.
As an operations worker you want to know that every release will happen as smoothly as the last. The fear of releasing on Friday or a holiday should go away as you start being able to release every day or multiple times a day. You want to get code into a real environment (DEV/QA) as fast as possible. Leveraging the tools, you can create new environments faster than ever before, in minutes or hours instead of weeks. When You know when issues arise with detailed monitoring and alerting.
There are some interesting benefits that deliver value to the company as a whole. Depending on the industry your company is in, there might be some legal requirements for reporting. Because most DevOps tools and processes allow for push button, automated, deployments, most of them also have explicit audit logs. This allows for you to easily have that traceability from an idea, to work item, to development, to build, to release. Are those features you’re delivering being used? Are they making an impact? With those feedback loops and monitoring, you can know the state of your products and how they are being used.
There is a lot to think about regarding DevOps. There is a ton of value in DevOps practices, but there needs to be care. Some people think you can buy the DevOps, you can’t. DevOps needs to be part of how you work, not just something you bolt onto it. Nebbia works with and along side teams to show them not just the how, but the why of DevOps. We want to give new capabilities to teams let them deliver that value faster inside and outside their organizations.