Today, we can see a certain tendency in the world of IT – a tendency to use structured methodologies and principles in the process of software development (such as Agile, Scrum, etc.). But with all buzz around Agile/Scrum/Kanban methodologies we have seen lately, there skipped unnoticed another movement which is no less important than the ones mentioned above.
We’re talking about DevOps right now. The term was first used in April of 2010 (click here to see the Google Trends for this word). If you still haven’t heard about it, it’s high time for you to learn.
What is DevOps?
First of all, let’s take a look at the DevOps’ Wikipedia page to define the notion:
DevOps (a portmanteau of development and operations) is a software development method that stresses communication, collaboration and integration between software developers and information technology operations professionals.
So basically, DevOps is intended for improving the interaction between developers and IT specialists. Traditionally, these two groups of specialists work separately on the same projects, which may often lead to some confusions and misunderstandings between the two. A picture below is a perfect example of what’s going on in most cases:
The only cooperation between the two teams comes to a ready project release being thrown by developers over this wall and after that the developers don’t care much about the release’s future. Such low level of cooperation can be explained by the different tasks and goals which are set before the teams.
Development team is responsible for managing the main stages of software creation process, like writing code, testing, releasing, etc. At the same time, IT Operations team’s main task is configuring system resources for applied tasks, managing and monitoring IT structure components, etc. In short, developers generate new changes in the IT environment, while IT Operations personnel support the stability of this environment and its efficient work.
It’s all about cooperation
This situation has inspired the appearance of DevOps movement, which should tear down the wall of confusion between the two groups. Its main goal is to adjust the interaction between them according to a certain pattern and to create a process which will unite development and operational support within one project.
First mentioned about DevOps are dated to sometime in 2009, when Patrick Debois first started talking about this the concept of DevOps and there were even held a conference in Ghent, Belgium, called DevOpsDays. Since then, this methodology started spreading like fire across the globe and DevOpsDays have been organized in USA, Australia, Brazil, India, Germany and Sweden.
It is important that DevOps works for business, as it implies the realization of two very important business qualities – business flexibility and IT alignment. DevOps helps implementing IT alignment by assigning the roles of developers and users and organizing collaboration on business tasks. Both developers and IT specialists need to understand that they’re a part of one business process. And DevOps helps to unite these two groups.
In most companies business flexibility is manifested in Agile or Scrum development methodologies. In case of software development, flexibility means quick interaction and great feedback between customers and developers. But if we take a look at the whole process from development till the final use of the product by the customer, we’ll see that the befit of such flexibility is not that obvious.
The Wall of Confusion includes the difference in views on the development process. There’s always the difference in the tempo of software use and development. Long pauses in the process of product deployment lead to the Agile methodology being turned into so much undesirable waterfall model.
DevOps helps to get benefit from the agility of development process as it means providing a customer with stably working functionality, which is added in the customer’s working process simultaneously with its appearance in the process of development.
Is everything so perfect?
There has also been some voices raised against DevOps. Jeff Knupp has recently published an article where he says that DevOps is more likely to suit start-ups, because they simply don’t have enough people and thus developers have to assume QA’s or sysadmin’s role.
But this is not what DevOps is about. It’s not about developers writing code 50% of their time and deploying the system for another 50%. It’s about developers and IT specialists getting to know the whole process of software development and deployment rather than concentrating on their direct responsibilities and cooperating efficiently.
If you are interested in participating in DevOps, then be sure to register for this year’s conference in Belgium. The conference will be held on October, 27-28, in Ghent, Belgium.