When we talk about DevOps we mean the set of process automation practices in the software and IT departments. DevOps is a movement, or work philosophy, also defined as a culture of shared responsibility or systematic thinking, whose ultimate objective is none other than to work based on collaboration between members of the software development and IT / operations teams to achieve better and more agile results.
This movement began to become more visible in 2007, when, being aware of the disunity and independence with which the software development and IT operations teams worked, it was decided to begin to change the way of working and Modify the model based on the one that had been working so far and that had amply demonstrated its ineffectiveness in terms of slowness in the publication of developments, disunity between teams and customer dissatisfaction.
The previous model did not allow code developers to interfere in the organization and operation of the tasks carried out by those responsible for deploying and maintaining the code. Both departments worked separately and, on many occasions, pursued different objectives. This train crash, this separation of interests, inevitably caused the projects to suffer.
Without a doubt, a change was necessary, so DevOps was born as a culture of collaborative work, responsibility and shared objectives between the different departments involved in a software collection, testing and publishing project, which improves transparency and reinforces the internal communication lines.
The result? Shared objectives, greater visibility of the work of the departments, integration of the entire team in the development processes, more agility in the publication of software, greater productivity, improvement in the resolution of incidents and less frustrated and more motivated teams. No, DevOps does not work miracles; it requires dedication time and gradual implementation in teams.
We are witnessing the digital transformation of companies, and there is no sector of activity that is free. Although "digital" a priori may affect some sectors more than others, we are facing a transversal transformation that does not understand the type of activity or company size. Faced with this totem revolute, companies must be prepared, changing the way they operate to meet the demands of today's consumers (which by the way, we are increasingly demanding and more informed).
For example, in this scenario of change, we are seeing how Uber opens a gap in urban transport as we knew it until now. Slack enables teams to collaborate between workers in completely new ways, or Docker rivals the most veteran virtualization providers.
Today, innovation is based on technological advances that occur faster than ever. In this direction, data is the new fuel that drives companies, and we cannot ignore that in recent years there has been an explosion of data generated by organizations, systems and consumers that require its value. In fact, in just two years the accumulated data in the digital universe will grow from the current 4.4 zettabytes to 44 zettabytes (44 trillion gigabytes). A huge amount of data that needs to be structured!
In short, technological progress and the value of data are aspects that are transforming industries. To summarize, this transformation is driven by three fundamental avenues:
Technology powers innovation. Technology is the basis of all the processes and services that businesses develop. This frenetic pace of technological transformation involves companies and end customers with a multitude of ways of participation and interaction at their fingertips.
Increased consumer demand. We are in the era of more and better informed consumers. Many of the purchases that are made today are qualified, that is, they are made by clients who have taken more than reasonable time to find out about the product and / or service and carry out a comparison task. Consumers have at our fingertips a great diversity and quantity of options for business services and products that advance thanks to the available technology. The number of brands that customers can interact with is seemingly endless, and it continues to grow. On the other hand, if the service or product does not meet our expectations, customers can change brands, simply by touching a button on the screen or on the keyboard.
Increasing competitiveness. The technological innovation we were talking about, coupled with growing customer demand, is increasing competitiveness in all industries. Every company, even the largest organizations, faces the possibility of new market breakthroughs from more agile competitors in technology that will be able to attract customers with more innovative services and / or products.
If there is a key point within this digital transformation of companies and, therefore, of forms of consumption, it is applications (apps) that are very present in our day to day. Whether they are B2B, business-to-business applications such as CRM and business collaboration tools, or B2C, business-to-consumer applications such as personal banking applications and healthcare monitoring services, applications like no other digital tool, technology to everyday life.
They allow customers to interact with brands how and when they want, and allow disruptive startups to quickly compete against brands already established in the market. Applications are therefore being instrumental in shaping and defining the current and future business landscape.
There are millions of applications in operation. Only in Google Play we find more than 3,600,000 applications, to which are added those available in the Apple Store that, according to data from 2017, already exceeded 2 million. Dizzying figures that do nothing other than respond to the growing demand for apps of all kinds by users.
Only in the USA, around four million apps are downloaded a day and the time we spend “browsing” them is also increasing, according to data from the American consultancy App Anie, during the third quarter of 2017 325,000 million hours were recorded in the world, 40% more time than the same period of the previous year.
But, we find useful apps that add millions of downloads and little golden stars and others that go completely unnoticed or that slow down their growth shortly after their launch. What factors determine the success or failure of an application? Whether the balance is tipped towards success or failure depends on the software strategy carried out by the company that develops it.
In this sense, the traditional approach to software construction and development, the Waterfall methodology, has become obsolete. This traditional approach forced teams involved in building and developing software to work independently, in separate departments for development, quality, and operations.
In this ecosystem of professionals working at their free will and in which collaboration between teams was conspicuous by its absence, the software was planned for months and an app launch was prepared that was set in red on the calendar. All teams feared the date in question, since each of them operated with different objectives and based, on many occasions, on different guidelines. For this reason, the process as a whole was very prone to failure, in addition to being slow and inefficient.
Today, applications have evolved from desktop applications to design. Now they are much faster, lighter and easier to use. Users demand more speed and we are more intransigent in terms of possible failures in the applications. Therefore, the change in the way these applications are used also requires a change in how they are developed by the construction and software development teams.
Collaborative systems are becoming the answer. Collaboration between software development teams is key to building successful applications. The software development pipeline has to be optimized to obtain versions in shorter and shorter cycles. This new approach is the one explained through the philosophy that we advanced at the beginning of the article: the DevOps culture, movement and philosophy.
As we anticipated, there are numerous definitions of what DevOps is. In summary, we recall that it is a culture, movement or philosophy that works on how to organize the work of development and operations teams, with the aim of ensuring that companies can launch new quality software developments to the current competitive market. a speed that meets the needs of the most demanding customers.
There is an acronym "CAMS" that describes the main aspects of DevOps. This acronym was coined by two pillars of the DevOps movement around the world, John Willis and Damon Edwards during the first DevOpsDays conference in the United States in 2010. "CAMS" stands for "Culture, Automation, Measurement and Sharing." For his part, Jez Humble, author of the book "Continuous Delivery", years later added the "L" so that "Lean" (infallible) would finally form "CALMS".
Collaborative culture: It is necessary to implement a culture of shared responsibility in the construction and software development teams. In this way, all the members will row “all together”, they will work with greater agility, the degree of confidence of the projects will increase and the ability to solve the incidents in the developments. Therefore, this collaborative culture causes greater agility at work, reliability in developments and improves project management.
Automation of processes. Through the DevOps philosophy, team members will try to automate as many tasks and processes as possible. Projects will be more agile and traceable.
The importance of measurement. The DevOps culture understands processes iteratively, repeating and analyzing each phase from the beginning. For these processes to be successful, the more data that is collected and analyzed, the more information we will have to improve the system.
Collaboration / Sharing. Before DevOps, with the Waterfall methodology, development and operations teams were in constant confrontation. One team did not take care of incidents or failures caused by the other, which resulted in some instability in the teams. However, with DevOps responsibilities are shared and both workgroups work together throughout the application development life cycle.
Infallibility (LEAN). With DevOps, continuous improvement and failure always go hand in hand. Members of the development and operations teams will be able to constantly visualize work progress and acceptance and resolution of errors are encouraged.
While these are the basics of DevOps and the CALMS model, just as no two organizations are the same, there are no two companies that do DevOps in the same way. The DevOps culture must be shaped based on each work team and must be implemented gradually.
In short, DevOps can be a very useful culture for the digital transformation to be a success in companies, promoting agility and continuous delivery (continuous delivery) always with an eye on the changing demands and needs of customers and the quality.