Do you remember an Indian parable about the blind and an elephant: when blind people were asked to touch an elephant and tell about their feelings? Every person had his own story about the elephant depending the part of the body they had touched. DevOps is just the same. Many have heard about this up-to-date concept concerning the software development, some even experienced its separate parts but they still can not sort it out what an elephant is (in our case DevOps). In this article we will try to figure out the meaning of the concept that is simultaneously considered a kind of culture, philosophy or the development methodology.
Where did DevOps come from?
Not taking into consideration all romantic stories about DevOps, it is a culture of software development, implying SW and IT developers cooperation in the frameworks of one project. This cooperation helps to streamline the software product release and increase the efficiency of teamwork.
The idea of their collaboration sounds so sensible that it is even hard to imagine that something can happen in other way. Nonetheless, DevOps as a culture of software development appeared not so long ago and even now not all companies use it.
Some time ago only large companies were represented at software market, they developed very long-term and expensive projects that IT experts were supposed to implement. The development process was really time and effort consuming and releases were rare phenomena compared to nowadays.
The world of large companies and self-conscious admins has disappeared
Then the world started to change: the developments became vital in all fields; technologies became integral part of both business and average people life. Services of different ranges became available to everyone thanks to the Internet and personal devices: computers were followed by laptops, smartphones and tablets. At the same time, an enormous wave of different startups crashed on the world. Some ideas, sometimes implying only beautiful presentations, surprisingly found funding and were seeking for people able to find practical implementation of the ideas. Outsource development also blossomed in many countries, including ours.
Both beard people and smoothie manufactures desperately needed their own apps
Software developers often got used to dealing with not large-scale projects customers or even very limited projects. Moreover, the trend is here to stay. A high speed of software development release has become a vital competitive advantage on the market. Releases have become more frequent phenomena and even a very small delay of development and coordination may be terminal for the developers.
It became obvious that the wall between the software developers and people working to implement the ideas only interferes the process. Some time before developers worked on programs not paying any attention to what already had been developed or might be developed in the near future, not considering real conditions of its implementation, and only after their work was accomplished, IT profs started to collaborate. They were trying to embed something not very practical, notwithstanding the fact, that they could have conducted all the processes simultaneously.
The DevOps concept inferred destroying the wall, integrating the team, automatizing the processes and making them simultaneous. The goal was to reach the same development surroundings for all participants of the process and make it closer to real usage environment of the product. Only that could help to cut the time from the beginning of the work to new product release or new features presentation.
Successful companies sought a real pro applying the knowledge of programming and information-technology practical usage to implement such a complex idea. Besides, this expert should have some specific personal qualities: he has to be a team worker, flexible learner, analytical thinker, independent doer and a determined leader.
Good news is that it is possible to become such an expert (of course, if you possess all necessary character features). To master a new major you do not need to obtain another degree or learn some very specific skills, which is always too long and too expensive. If a programmer wants to become a DevOps, he will need to learn how to present new products. Consequently, an IT specialist will have to learn more about programming and testing the product. But there is no need to discover America again for both of them. There is a rising demand for such experts, especially on the developed markets. That is not just a stupid idea to spend your time on some nonsense, not compelling with the reality of your profession and in the end not have nothing to apply, it is a real chance to make a step forward.
What does a DevOps do in the team?
DevOps professional works at the project during all stages of its development and SW maintenance. At the very beginning of the project his main task is to understand what infrastructure is needed for a successful SW development and provide such an infrastructure for each team member. At the stage of writing a source code it is to supply a shared environment for all team members, automatize the testing processes, remove all computer-bugs as soon as possible, prevent them in the future, control that the development surroundings meet the requirements of real life product application. At the phase of a product release, his duty is to automatize the necessary versions development and provide new product deployment.
DevOps expert doesn’t have to be near the team all the time, if everything is arranged well, he can control the team work even on the beach provided good Internet access.
DevOps prof has to collaborate with a project architect in the very beginning to understand the ultimate goal of the product, so that it will be able to add new features, change the project or make it bigger after carrying out the project, as the customer is supposed to order new feature development or product adaptation due to some changes in business. DevOps has to coordinate with the developers to avoid devising things that have been already developed and so that the source code fits perfectly for the product. This professional should also cooperate with embedded software development engineers to increase the efficiency.
The bad news is that this expert should have real power to influence the process. Accomplishing this task means restructuring all development processes within the company, changing the attitude and promoting the culture of working hand in hand to achieve the goals successfully within a short period of time. Just finding a good professional is not enough, all processes should comply with the principles of DevOps. A person influencing the team members without any authority can not be called a DevOps expert, he is just a self-conscious system administrator that has at least two more colleagues.
One more good news to implement all principles described above there is no need to embed and obtain new technologies. The DevOps tasks can be solved using usual instruments. The usage of such technologies as cloud technologies (for example, Microsoft Azure and others, that enable to use any infrastructure and use only necessary for the project resources) will help to arrange the development process even faster and more reliable.