In the era in which we live, the agility, quality and efficiency with which we must execute projects in our organizations is becoming more and more relevant. It is then when we hear phrases such as “time to market”, “delivering value to the business in the shortest possible time” and “we must work more agile”. But the big question is how do we do it, how is it that large companies manage to deliver such innovative products, with such high quality, in such short periods of time and that they are also economically profitable? It is possible that there are many answers to these questions, but what I can assure you is that these large organizations definitely work with DevOps.
And the fact is that, through DevOps with a series of strategies, paradigm shifts and adjustments in the traditional way we work we can achieve these goals, and if we wanted to make the process even more efficient we would have to talk about SecDevOps but we can leave this topic for another time, for now let’s focus on what is DevOps, the culture that must be created in the organization and the care we must take to avoid falling into a black hole at the time of implementation.
So, what is DevOps?
Well, to start we must clarify that DevOps is not a tool or software and it is not a programming language in which you follow a tutorial and in one afternoon you create a “Hello world”. DevOps is more a way of thinking and doing our work in a different way, this will lead us to a more organized, automated, harmonious, secure and agile work strategy where we unite in a single core the work of Developers and Operations, without leaving aside quality and security.
In this way Operations and Development work together in the same team and their implementations, development, QA, architecture, integrations, etc. are performed in an automated and joint way; carrying out the complete lifecycle of the applications in each delivery, while at the same time creating or maintaining a culture and atmosphere of continuous development, which is therefore more efficient than the traditional way.
These features help organizations to increase their customer service and be more competitive in the market, since they increase the number of deliveries of their products to production, get more constant feedback from the market, decrease the error rate and increase the recovery time in case of failures.
Now, how is the DevOps culture created?
We must understand that one of the most important pillars in the creation of DevOps culture in organizations is the management sponsorship, this helps significantly to make developers, leaders, bosses and other managers aware of the importance of the change that is coming and that each of them are key players in the process. Because of this, all employees must be part of the change, they must participate in the process, they must be aware of the need, of the adjustments that need to be implemented, and they must communicate clearly and transparently the goals to be achieved and what is expected of them. However, to achieve a positive effect in the organization it is necessary that each person absorbs it and puts it into practice in a natural way, not imposed.
But the DevOps culture goes further and that is why we could even mention 6 relevant aspects to make it more effective, they are:
- Communication: DevOps teams must maintain constant communication about the product they are designing, they must be clear about its features, requests, timelines, resources, etc. In addition, they must create metrics that are available to the entire organization or communicate them transparently without fear of being singled out.
- Focus: Developers should be doing what really matters, i.e. creating code, and not attending to other things such as meetings, calls, providing support, etc. They must be clear that their mission is to deliver value to the business by constantly creating products for the customer.
- Agility: Teams must understand that they work in function of providing value to the business and that they must constantly release their deliverables in order to generate more and more value. Reducing waiting times for new functionalities, being more efficient and timely with customers.
- Respect: All team members should value each other and value the effort made by each one. They must have a healthy communication, listen to each other and understand that the experience of others is learning for the rest.
- Trust: This point is vital in teams, because Operations needs to believe that developers are performing their assignments as agreed, and that they are looking out for the best outcome of the product they are creating. Therefore, if there is no trust among team members, no matter how many tools they implement to support them in the process, these would be meaningless. That is why DevOps is about culture and tools, so implementing a set of tools does not transform people into a DevOps team, but using DevOps tools will help teams perform better while developing the culture and trust that DevOps brings.
- Awareness: Before imposing a new culture abruptly, it is necessary to ask why we have been working in “x” way, what is the main objective of the organization, how can we improve the way we work? Then it is there where we become aware of the problems we have and then we manage the needs in a better way, getting the members of the organization to understand them and work through the DevOps culture until we reach the goal.
We need to be very clear that, if we fail to establish a DevOps culture properly, with a close relationship between Development and Operations, we could lose our focus and simply work according to what suits us or what we are used to doing because it is the easiest way.
Therefore, the implementation of DevOps must be carried out in a careful, well-informed and well advised manner, and with an open mind to change in order to avoid making mistakes such as the following:
- Believing that DevOps is the same as process automation: Of course, one of the most relevant tasks of DevOps teams is to automate as many processes as possible. However, its purpose is not only that, on the contrary, its objective is to go beyond that, taking into account the cultural change in the organization and the delivery of value to the business in a continuous way and above all to avoid the silo culture.
- Omitting management support: It is important that the implementation of DevOps and its sponsorship is felt with full force, therefore, leaving out management support would be a serious mistake, since without their collaboration the necessary cultural changes in the organization would not be achieved.
- Omitting the involvement of compliance, audit, security: These areas should be part of the DevOps implementation, establish the necessary controls, recognize the risks around, restructure internal controls and processes taking into account new ways to stay in compliance. Leaving them out could lead to rework or an incorrect application and use of DevOps.
- Be very inflexible: Clearly we are going to encounter many new things that we don’t know or have never used, but we must be flexible to change, accept when we are wrong and learn from it. Select the right person to be the DevOps Champion to enable team support and collaboration.
- Believing that DevOps is the magic solution: It must be clear that DevOps is not a magic solution that will save the organization from all the problems that exist. That is to say, the bottlenecks or the inoperability of some of them cannot be changed just by implementing DevOps. It is necessary to work little by little on clear goals to achieve concrete results, while reinforcing the need for joint collaboration of operational processes to obtain better results.
- Select a critical project or one of very low relevance as a pilot: Caution should be taken when selecting the project to be used as a pilot implementation, because if it is very critical or very large it can generate the wrong expectation of agility, speed and delivery of continuous value because additionally you must select the tools to work DevOps, on the other hand if you take a very small project or without much relevance can be underestimated and may not be taken with the importance of the case. So it is advisable to select an intermediate project with clear, measurable and achievable objectives, and in which there is the right leader to facilitate communication, task completion and the mechanics of teamwork.
And well, as a final recommendation in case you want to implement DevOps in your company, I advise you to define clear goals that make sense to meet the objective of your projects, for example, reduce time to market, improve performance, reduce implementation time, improve quality, etc. Remember to discuss the goals with the work team, generating a healthy discussion, identify what problems you have to improve and what needs can be solved.
When setting the goal take into account the period of time in which you want to make each delivery, if the team works in Agile you can use sprints, then remember to constantly evaluate the results and renew the goals gradually. At the beginning the process may seem slow, but you will see that it will give you results gradually.
Learn more about Interfaz, a company focused on creating the right strategies for your business to make a difference.