DevOps doesn't have to be limited to software development and production. DevOps ideas should apply to your entire organization.
DevOps has reshaped the way software is designed and delivered. But why stop there? DevOps can help improve your entire organization, not just the part that handles software. Here's how.
DevOps is an approach to software production and management that emphasizes collaboration between developers (i.e., those who write code) and IT Ops admins (who deploy software and maintain it in production).
The DevOps philosophy is oriented around the following principles:
- Agility. Your software delivery process should be scalable and adaptable to changing needs.
- Coordination. Different teams should communicate and coordinate constantly. No team should operate in a silo.
- Automation. Technically, automation is more of a means to an end than the end itself. No matter how you categorize it, it's crucial for achieving the other goals that define DevOps.
- Shift-left. The shift-left concept means that processes that are typically performed late in the software delivery cycle, such as testing and security reviews, should be integrated with earlier steps. In other words, they should be shifted to the left of the software delivery pipeline. The idea is that you can catch problems sooner, when they are easier to fix.
DevOps became famous as a way for developers and IT Ops to work together more efficiently.
Since then, other technical teams have taken up the DevOps mantra. It's common to hear QA groups talk about shift-left testing. Security engineers promote the idea of DevSecOps, which involves them in the software delivery process more prominently.
Taking DevOps beyond Software
The adoption of DevOps principles doesn't have to be limited to people whose work relates directly to software, however. DevOps can improve the way an entire organization operates.
For example, consider the following DevOps-inspired strategies that benefit an organization as a whole:
- Communication should be centralized and streamlined. This may mean doing away with emails and phone calls as a primary means of communication and replacing them with something better. Next-generation communication tools like Slack and HipChat have become popular with DevOps technical teams, but there is no reason they can't be used by everyone else.
- Roles should be defined flexibly. Central to the idea behind DevOps is that engineers should be able to step outside their areas of specialty when needed. Programmers should be able to lend a hand in IT Ops, and vice versa. This is the only way that different teams can truly coordinate their activities. You can apply this same idea to non-technical roles, too. You probably want to retain some structure, but empower employees from different parts of your organization to collaborate as much as possible, even if that means doing things that are not formally part of their job descriptions.
- Adopt automation wherever possible. Automation seems like a good idea to most people. But it can be hard to get buy-in in cases where people feel that automation tools cut into their personal territory and make them less important. Overcome that mindset by encouraging your organization to automate as much as possible, then shift the time saved into other tasks that make employees feel even more productive.
- Improve continuously. A DevOps-centric organization strives for continual improvement not just for its IT teams, but for the organization as a whole. Assess your current state constantly through hard metrics, identify areas where you can improve and execute a plan for improving. Don't ever be satisifed with your status quo -- even if your status quo is pretty good.
- Shift everything left. Your entire organization should adopt a shift-left mentality. Everyone should strive to find and identify problems with any process or product -- not just software -- well before it reaches end users.
In short, the benefits of DevOps are too great to be limited just to software production. Extend them as far as you can.