What is DevOps?
Making one exact definition of ‘What is DevOps??’ is super tricky, because it can mean different skills or results to different teams. Here’s one way to break it down:
Tech companies need people in-house who can develop software that belongs to the organisation; they also need people who can fix bugs, work with operating system updates and keep the code working. This is the Dev.
But there’s no point in having super shiny software if no-one in-house can look after it operationally - literally, to make sure that there are the structures and logistics around the software to make sure it can do what you need it to do. This is the Ops.
So, DevOps is a slightly jargon-y way of saying “we build a system and we make sure we can run it, maintain it, fix it and grow it, all in one team”.
But, as Aristotle may have foreseen, DevOps is a ‘more than the sum of its parts’ gig.
It’s having teams of tech people who understand that there isn’t a trade-off between the slightly more glamorous development side, and the essential (yet less sexy) operational efficiency.
Why does DevOps matter?
DevOps grew out of the Agile way of working, but is distinct:
- Agile is about being adaptive and quick to react to new learnings.
- DevOps plays a very important part in enabling agile ways of working by greatly simplifying management and operations of infrastructure.
In a sense, DevOps was for some time "the missing piece of agile". As DevOps developed and more tools became available, tech organisations finally had the tools they needed to be truly agile all the way from planning to production.
So, DevOps offers ways of working that allows organisations to iterate - play with - products and systems constantly. It also means working to improve the architecture of the product - literally the software equivalent of blueprints.
But rather than static, imagine blueprints for a house that you can continually tweak and improve depending on the weather, how many people need to live in it or what job each room should do.
DevOps means having a mindset of ‘never done’ and being excited about making the product more efficient and effective for users.
Tech companies have the benefit of consumers using their products every day. This creates a huge amount of data - all interesting, all significant. Sometimes insights are thrown up; you can think of them as positive or negative, or they can be thought of as useful to your continued growth and adaptability to the marketplace.
How do DevOps think about failure?
An agile team should use this data to learn how to best serve their users. DevOps helps take this one step further by allowing for shorter development cycles and shorter feedback loops. It’s always difficult to know what the best solution is. The one thing we can know is that we’re not likely to get it right the first time. So, rather than striving to get it right first time every time, it’s much more effective to optimise systems that can and are changed rapidly.
As a fully integrated team, DevOps is as far from the old ‘tech support’ model as boarish bosses and fax machines.
How does DevOps help organisations to flourish?
In the world of software development, you’re always running to catch up to the latest threat or development. And that’s great, because it means you’re always running to fix and find the next solution, to make something better.
Solutions are sometimes needed in a crisis - and here is where DevOps also supports and sustains the organisation.
How do DevOps solve tech problems?
The average consumer will only wait between 2-3 seconds for a web-page to load; breaks in service have financial implications. A strong DevOps team should have policies about how to manage breaks in service quickly and efficiently.
DevOps should have a thorough, accessible and actionable incident response policy that the team understand and review. The policy should enable every person on the DevOps team to be able to see a problem, assess the level of risk to the company and the steps they need to take to resolve the break. Once the problem is resolved, a post-mortem may be needed, to avoid repetition of the problem and increase efficiency.
The most important components of creating an incident response policy is to emphasise the importance of:
- risk evaluation
- efficient and thorough communication
- personal accountability for seeing a task through to completion
- problem solving to understand the problem, why it occurred and how to avoid recurrence
With a strong policy in place, your team is empowered to own the problem and get your service back up and running.
What are the deciding factors in hiring DevOps?
Experimentation is the best way of learning; engineers who are going to flourish need a deep love of creativity, life-long learning and resilience to work with a mindset that embraces failure as a tool to learn. It’s said that a good engineer can increase profits tenfold, and in today’s candidate driven market finding the right talent is even harder.
DevOps teams use multiple tools to keep your software up and running; they might be tools like GCP, heroku, terraform, ansible or others. But, in reality, the type of tool that is used shouldn’t be a deciding factor in who you hire. Why?
Because the best DevOps team members are people who love to learn. Packages will change and the tech will continue to emerge - and that’s what’s exciting.
So if you’re hiring DevOps team members, don’t use how many years of experience a person has with this or that tool as a primary decision making tool; don’t necessarily prioritise the particular languages they can use (you can find a list of the languages we use here).
What skills are needed in a DevOps team?
Knowledge and experience in DevOps is very valuable in a candidate, regardless of what tools or technologies the candidate might have experience with. Seniority and having experience definitely plays a part in helping to decide who the best candidates are; but the correlation between seniority and experience in specific tools is lower than one might think.
Experience can help - but we suggest a more fluid, soft skills set of skills and competencies to assess candidates, such as:
- What is the situation or problem?
- What are we trying to achieve?
- What’s the most agile way to get there?
- What’s the price of inaction?
We use the metric that languages and tools can be taught, and years of experience lock certain groups out of professions, but a personality who loves learning, thrives on logical challenges and seeing a problem through to conclusion is more likely to make a great hire who can help us to grow and nurture our platform, keep us running through glitches and be key players in evolving our tech to best help every candidate and recruiter to find and do their best job.