Whether you work in the IT industry or not, you will likely have heard of DevOps at some point. You may know what it stands for, but do you know how the practice evolved and why it matters? Read on to find out more and check out our suggested resources at the bottom of the page.
DevOps stands for Development and Operations, and in software development it is as much a set of practices as it is an ideological approach to ensure fast, reliable and frequent releases of new software. At its core sits the recognition that the original, by now somewhat outdated, process of releasing software was inefficient and often resulted in poor quality work. Why? That requires a quick detour into the history of software development.
Back in the old days, software was developed and released in cycles very similar to those of hardware development. Meticulously planned releases were preceded by carefully developed code that was built into hardware only at the last moment to then be tested before being released to users. But unlike hardware, software can - and should be - constantly optimised, changed and republished. The static release cycle just made this rather difficult.
Enter agile software development. Professionals in the field had been highlighting the problems with this inflexible approach to software development for years and begun to formulate solutions. In 2001 a set of principles for more proactive processes was published as The Manifesto for Agile Software Development.
There are 12 principles in total, but the four listed below have the most direct impact on DevOps:
As developer teams started to follow agile principles and frameworks such as Scrum and Kanban became the norm, new ways of optimising workflows were introduced. Continuous Integration (CI) and Continuous Delivery (CD) are two of those approaches. The former is the process of integrating changes from developers into the main product code as early as possible (hello, short iterations and incremental change principles!). Key to this is another innovation in software development: automated testing. It allows teams to test the quality of each increment as well as the overall product on every iteration. The latter, CD, is an extension of this, with further workflow automation that builds releasable chunks of software that can be moved into the product environment.
Glad you asked. Now that we know the background, let’s answer the question at the top of the page. Throughout the 2000’s the profession developed alongside new technical capabilities (e.g. the internet, SaaS, etc.) and started to build new methodologies onto the agile foundations.
The focus was on bridging the gap between software development (Dev) and Operations (Ops) - that is, the technical work behind the scenes and the user-facing product. The key aim was to figure out how to quickly deploy high quality software (new products as well as updates to existing ones) to users with minimal delays or disruption.
DevOps practitioners use the agile principles as a foundation for expanding the scope of project stakeholders to include everyone in the organisation who has a part or interest in the product being developed.
They also innovated on existing CI/CD tools to further automate the software development pipeline including building, testing, release and deployment. Code bundles can now be fed into one end of the pipeline and software updates are released to the user at the other end, with minimal to no manual involvement needed. Advances in monitoring capabilities have also enabled developers to gain a better understanding of how users interact with their products and of the effects of software updates.
DevOps matters both in principle and due to its tangible impact. It is a practice, mindset and approach that has had a momentous impact on software development and organisational structure. The underlying DevOps principles of agile working practices, transparency across an organisation and continuous improvement result in improved collaboration, and culture, within and between teams. This fail fast, learn fast approach is instrumental in instilling a culture of learning and adaptability within organisations.
DevOps effects are also measurable. Faster development and more efficient deployment of software, coupled with better automation of key tasks, means products can be used, tested and improved faster. This, paired with better monitoring capabilities also championed by DevOps, directly influences software quality, user experience and, ultimately, satisfaction.
In fact, looking beyond a singular company or product development, many of the SaaS products which allow for low code/no code self servicing can also be said to owe some of their technological innovations to the work DevOps has been doing since the 2000’s.
So with its significance and benefits established, the question at the head of the page is answered. The next question is this: Is your company already “doing DevOps”?
The good news is that, as a practice, mindset and approach rather than a specific process, there are no mandatory tools you must have or ultimate end goal you must reach. Instead, it is about assessing your company’s ability to be flexible in the face of constant change, its approach to optimisation and level of transparency among separate teams of stakeholders.
Start with some light reading, we really like DevOps blog DZone.com and Atlassian’s blog posts on the topic. Another useful resource is Cloud Native Computing Foundation’s (CNCF) infographic that maps out the wider technology ecosystem. Follow this with an internal meeting or even workshop to establish the current state and desired outcome. That’s as good a start as any.
If you want to dive deeper, our team uses KodeKloud for a lot of their training, and we are big fans of their educational resources. It is a paid service with various pricing plans, so you are likely to find one that fits your budget.
If you think your team needs DevOps support or would like to discuss how DevOps can be implemented at your organisation, contact us for an initial no-strings-attached chat about your needs.