DevOps has taken the IT world by storm, quickly becoming the go-to method of managing the various responsibilities involved with development and IT operations. Much of DevOps’ appeal is that it helps break down barriers and bottlenecks that traditionally plague inter-department communication and collaboration.
Development and IT Operations: So Much Alike, Yet So Far Apart
At first glance, it would seem that development teams and IT operations should work harmoniously right out of the gate. Unfortunately, the truth is often far more complex.
Developers often have a specific workflow in mind when they create a tool or piece of software. Unfortunately, developers can sometimes be on their own wavelength, in terms of what makes sense to them. That program a developer has put their heart and soul into, and believes makes perfect sense, may be a confusing mess for the people in IT operations who have to use it day in and day out.
In addition, in many situations, there are security issues that play a role in how the two departments work together. As a general rule, it’s usually a good idea to have a degree of separation between those who create the software and those who use it on a daily basis.
Unfortunately, however, too much separation between the two departments can cause issues, with neither fully being on the same page as the other. This, in turn, can result in added cost and waste of resources and manpower, not to mention frustration on the part of everyone involved.
DevOps: The Mediating Factor
The problems organizations face helped lead to the creation of the DevOps concept. In many ways, DevOps is the culmination of, and the successor to, both Lean and Agile methods.
Lean, as its name suggests, focuses only on what is required and excludes any superfluous features. As a result, Lean emphasizes only what adds value, and improves the status quo.
Similarly, Agile was aimed at addressing old-style methodologies that were more about established processes and rules than actual productivity, or that emphasized systems over the people running them. These principles are laid out in the Agile Manifesto.
We are uncovering better ways of developing
software by doing it and helping others do it.
Through this work we have come to value:
Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
DevOps is the natural progression of these two philosophies. As such, much like the Lean approach, DevOps focuses on removing anything that does not contribute or add value to the company’s goals, including unnecessary separation between development and operations.
Similarly, just as Agile focuses on the people rather than the systems, as well as practical response rather than the established order, DevOps focuses on helping the two departments to work together as efficiently as possible.
As a result, DevOps helps companies achieve a speed and efficiency not otherwise possible. A key element is frequent, incremental improvements and deployment, along with corresponding testing.
What a DevOps Developer Does
As the above illustrates, a DevOps developer acts as a sort of liaison between development and operations. More often than not, DevOps developers don’t do much actual coding, yet they are responsible for setting up and overseeing development projects. As a result, they need to have a solid understanding of software development, including establishing testing protocols. One such important part of many DevOps developers’ responsibilities is establishing automated protocols to aid in the deployment and testing process.
Needless to say, in addition to being well versed in software development, a DevOps developer must also have a deep understanding of operations and the role it plays in the organization, not to mention the best way to help meet those needs.
To help both departments achieve their goals, and successfully work together, a DevOps developer needs to have a healthy understanding of the business goals, and help development and operations meet them.
As can be seen, a DevOps developer must wear many hats, and stands at the crossroads of development, operations and business concerns.
DevOps: A Rewarding Path With a Bright Future
Without a doubt, a career in DevOps offers an exciting future for any who choose it. A DevOps developer has the ability to influence an organization’s operations and development like few others.
Such a career requires a developer to wear multiple hats, acting as a liaison between the different aspects of an organization.
At the same time, a career in DevOps provides a developer with a “big picture” view that some find far more rewarding than either development or IT operations alone.
Best of all, given how much DevOps has transformed the IT industry to date, it’s safe to say it will continue to be a critical discipline moving forward, ensuring a bright career path for any who choose it.