Dr Przemysław Chmielecki
‘DevOps’ term is getting more and more popular in wide IT area, especially in software development. This approach is getting increasingly implemented not only in Agile oriented SDT1 but also, in waterfall driven projects. But what the ‘DevOps’ means? Is it something new and trendy that every organization must have or is it only a buzzword, empty, misleading term? Let’s have a look at it.
From the beginning of Computer Science, we have a one-man-expert situation. In the ‘60s developers and operations separated as various roles2. This started to isolate each specialization in silos – developers apart of testers (quality assurance, QA) and IT admins. Every group was focused on the specific area in the software development process and abandon tight collaboration.
Let’s get back to the origins. In 2007 Patrick Debois, the Belgian engineer, became frustrated by the conflict between developer and operations teams. He was a member of the Agile community and noted an opportunity to use Agile methodology to manage infrastructure management process like developers manage the development process. He initially described this concept as Agile Infrastructure but later used the DevOps term, which was a mixture of development and operations.3 The next big step was publishing in 2013 The Phoenix Project book written by Gene Kim, Kevin Behr,, and George Spafford. This fictional novel tells the story of an IT manager who was put into a seemingly hopeless role to get the company out of the crisis. His mentor, a board member permeated of lean manufacturing, guides the new VP into the completely different way of thinking about IT and application development, introducing the concept of DevOps along the way.4
What DevOps means?
DevOps (Developer and Operations) is just a process for software development methodology whose emphasis collaboration, communication, automation, integration, and effective ways how the cooperation between the IT professional and the software developers can be measured. In this method of software development, there is interdependency between the members of the SDT. It is due to this that the development team finds it possible to develop and deliver software rapidly and improve the performance of the various operations.5
The DevOps movement is rooted in Agile software development principles. The Agile Manifesto was written in 2001 by a number of individuals wanting to improve the current status quo of system development and find new ways of working in the software development industry:
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.6
According to the quotation above, the DevOps approach relates the strongest to the first principle. This might be seen as an obvious benefit in way of work, but in many large organizations it wasn’t materialized because of rigid corporative form and walls between different parts of an organization.7
DevOps philosophy emphasizes interactions between individuals on the main place and put technology as a tool or kind of platform to assist in making these interactions happen and breaks the walls inside the organization. To visualize this, DevOps is in between of (1) Developers, (2) QA’s and (3) System Admins on Venna chart8. Gene Kim in her article The Three Ways: The Principles Underpinning DevOps9 introduces the three changes in the paradigm of thinking which are the foundations of the DevOps approach:
What does it solve?
A very simple example might be the choice of systems used to report bugs. Quite often, development teams and quality assurance teams use different systems to handle tasks and bugs. This creates unnecessary friction between the teams and further separates them when they should really focus on working together instead. The operations team might, in turn, use a third system to handle requests for deployment to the organization’s servers. An engineer with a DevOps mindset, on the other hand, will immediately recognize all three systems as being workflow systems with similar properties. It should be possible for everyone in the three different teams to use the same system, perhaps tweaked to generate different views for the different roles. A further benefit would be smaller maintenance costs, since three systems are replaced by one. Another core goal of DevOps is automation and Continuous Delivery. Simply put, automating repetitive and tedious tasks leaves more time for human interaction, where true value can be created.10
In that sense DevOps introduces continuous care of many areas of software development process: (1) business planning, (2) integration, (3) testing, (4) delivery, (5) deployment, (6) monitoring, (7) security11.
It seems then that the DevOps approach is not only a buzzword and trendy model which drives the organization to be perceived as modern, innovative and fresh but that is complete change direction of thinking about software development process.
1 According to DSDM nomenclature, SDT abbreviation means Software Development Team.
2 Loukides Mike (2012). What is DevOps? Infrastructure as Code. Sebastopol: O’Reilly Media, p 2.
3 Loukides Mike (2017). The evolution of DevOps. Online: https://www.oreilly.com/ideas/the-evolution-of-devops
4 Mezak Steve (2018). The Origins of DevOps: What’s in a Name? Online: https://devops.com/the-origins-of-devops-whats-in-a-name/
5 Rengel Darek (2015). DevOps Learn One of the Most Powerful Software Development Methodologies FAST AND EASY! p. 10.
7 Verona Joakim (2016). Practical DevOps. Harness the power of DevOps to boost your skill set and make your IT organization perform better. Birmingham-Mumbai: Packt Publishing, p. 2.
8 Cf. Matanow Ilya (2018). The History of DevOps and Why You Should Consider Adopting It. Online: https://expertise.jetruby.com/the-history-of-devops-and-why-you-should-consider-adopting-it-babeaa778288
9 Gene Kim (2012). The Three Ways: The Principles Underpinning DevOps. Online: https://itrevolution.com/the-three-ways-principles-underpinning-devops/
10 Verona Joakim (2016). Practical DevOps. Harness the power of DevOps to boost your skill set and make your IT organization perform better. Birmingham-Mumbai: Packt Publishing, p. 3.
11 Cf. DevOps Tools, CI/CD, Testing and Latest Trends. Online: https://www.xenonstack.com/blog/devops/top-trends-ci-cd-devops-tools/ ; DevOps Solutions https://software.microfocus.com/en-us/solutions/devops-solutions