DevOps Explained: What do "DevOps Engineers" actually do at Zühlke?
Have you ever wondered what “DevOps Engineers” actually do? What does “DevOps” even mean actually? This blog post aims to explain the concept of DevOps and the value that it
brings to an organisation.
Why is DevOps important?
Picture the scene: An executive committee meets for a quarterly meeting and the technical lead overhears this: “Our plan is to scale the platform, drive 25% increased revenue in the next 6 months and to position ourselves as the go-to provider in our market sector”.
In a lot of cases, a statement like that could lead to fear, panic and stress. But with DevOps, a company can optimise and automate development processes from the ideas stage through the development cycles and onwards through to production. This creates a lot of tangible benefits:
increased feedback cycles
increased throughput speed and time-to-market.
As a result, the company becomes perceptibly more innovative and can react more quickly to customer requests.
What is DevOps anyway?
Originally “DevOps” was coined as a label for a development methodology that bridged software development and software operations, and brought with it the following set of principles:
holistic system approach
no silos between disciplines
short and fast feedback loops
collective code ownership.
The application of these principles is open to interpretation, leading to a variety of methodologies and tools all claiming to "solve the DevOps" enigma. Also, the general applicability of these principles in other areas has resulted in a plethora of new acronyms such as DevSecFinHugOps.
DevOps is not a job description, or a discipline. DevOps is a mindset, a culture, and a set of technical practices, hence the quotation marks around “DevOps Engineers" in this article.
As part of this new philosophy, cultural transformation and changes in how we work are of central significance. It’s no longer about “them” (development and operation), but about “us” (everyone involved in the value stream). Teamwork is the foundation of DevOps. Mutual trust, empowerment, responsibility, continuous improvement, data-based decision-making and customer empathy are the DevOps values.
For Zühlke, DevOps means: Bringing all the people, processes, and technology together to continuously deliver value to our customers!
What is the goal of DevOps?
DevOps provides communication, integration, automation, and close cooperation among all the people needed to plan, develop, test, deploy, release, and maintain a product. It essentially empowers an organisation with:
faster time to market
small and frequent software releases
shorter fix lead times
Improve the meantime for recovery
Who is DevOps?
In people terms, this is everyone that contributes to the value stream. The DevOps practice does not operate in a silo, but rather functions as the enabler of collaboration across many disciplines.
What skills do DevOps Engineers have?
The fundamental skill is to understand DevOps. A "DevOps Engineer" must have a DevOps mindset and be able to completely embrace the DevOps culture.
Prior experience as a Software Developer or System Administrator is clearly advantageous - if you know how to code, you can easily master the automation aspects of DevOps. On the other hand, a System Engineering background is also useful as it brings a familiarity with infrastructure - something often overlooked by software programmers.
Having said all of that, prior technical experience is not the only way into DevOps. There are many other possibilities such as
transitioning from other roles
mentoring or joining open-minded organisations (that support alternative education paths).
At Zühlke, when working as a "DevOps Engineer", your work not only revolves around technology, automation and tools - there are also other skills that are highly valued:
Code comprehension across multiple programming languages.
Good listening skills: You will have to respond to the whims and wishes of your development team.
Patience and perseverance: We are one team, and we want everything stable, well performing – and ready yesterday.
But what do “DevOps Engineers” really do all day long?
“DevOps Engineers” ensure work flows smoothly through the entire value stream, giving businesses a competitive advantage. For this to happen, context is key because their work yields different value depending on operating environment. Some typical work areas include:
Participating in discoveries: A project phase where Zühlke helps its clients to define the right thing to build.
Building minimum viable products.
Conducting architectural assessments.
Cloud Native projects.
Listing every aspect of DevOps at Zühlke is beyond the scope of this blog post. Nevertheless, here are some examples of typical tasks:
Build a continuous delivery pipeline so that the team can continuously deliver value and receive feedback.
Define processes to arrive at a common system approach.
Prioritise automation over repetitive, manual tasks: In a highly or fully automated system, any team member can perform complex and specialised operations.
Keep consistency across the developer’s environment, the test environments, and the production environment.
Support business needs and initiatives to enable innovation and business development.
In general DevOps is a shared approach across an entire development team, and often comes down to a shared agreement on how to tackle the development process. When an organisation embraces DevOps at the heart of its business development strategy, it empowers faster and safer production, and the ability to reach goals more consistently. It also allows business units to explore new ideas, and ultimately to innovate.