Why Your DevOps Is Not Effective: Common Conflicts in the Team
Why Your DevOps Is Not Effective: Common Conflicts in the Team
Since DevOps bring such change, there can often be some contention within the team. Take a look at how to mitigate it.
Join the DZone community and get the full member experience.Join For Free
The main problem that DevOps solves is how to give businesses the ability to respond to market changes as quickly as possible.
Many companies mistakenly believe, that by trying to get in developers and administrators and implementing a couple of useful tools, they get DevOps. When we consult companies, some of them believe that they are already actively using DevOps.
But just by implementing Docker, Kubernetes or CI/CD, you will not get DevOps. Bringing people together should be the main goal because only highly-motivated people with good collaboration between teams can work efficiently.
However, conflicts are possible in any company, and companies that implement DevOps methodology are not an exception. Usually, people’s fears stand behind all of the conflicts. In this article, we are trying to list the most widespread fears, conflicts and provide advice on how to solve them.
Objections and Fears Arising when Trying to Implement DevOps
"DevOps Is Automation. What if I Automate Myself Out Of a Job?"
When management begins to implement the automation of some routine tasks, people start to worry about losing their jobs and being replaced by machines.
In such a situation, it is important to inform employees that they will not lose their job, but will only get rid of the routine and will be able to switch the focus to more important tasks for the business.
Automation is a tool that can help people, not replace them. There are a lot of smart people in many companies who spend hours of their time to perform routine tasks. Instead of using their intelligence and creativity for real business tasks. Repetitive and predictable tasks should be done by machines, freeing people to focus on more important processes.
Automation helps optimize the release cycle and testing process. Due to the fact that automated tasks are performed in the same way, the amount of testing decreases each time, which could be required if these tasks were made by a human.
Automation allows system administrators shifting from the manual configuration of monitoring, alerting and patching tasks to implementing scaling, high availability, self-healing and proactive monitoring solutions.
Using DevOps Tools Is More Expensive than Making the Task Manually.
Sometimes teams find it easier to do something manually than implementing expensive automation.
In reality, the use of DevOps tools can save a huge amount of hours, while the cost of using such tools will be much lower.
At the same time, experienced system administrators automate any routine operations at least to solve the human factor problem that may occur during manual operations. If your task should be performed at least two times, then think about its automation.
Refusal to Cooperate Because of The Fear of Responsibility. Who Will Be Guilty if Everyone Works Together?
In the DNA of DevOps culture lies the principle of constant and continuous interaction as well as collaboration between different people and departments. The key reason for this is a much greater final efficiency and a much smaller time-to-market compared to the traditional approach. Proper implementation of DevOps shifts the focus from personal effectiveness to team efficiency. At the same time, due to automation and the widespread introduction of monitoring and testing, it is possible to track the occurrence of a problem at the early stages, as well as quickly find the causes of problems.
Building the right culture in the organization is important, and it does not depend on DevOps directly: problems occur in all companies, but in an organization, with the right culture all the forces will be thrown at solving the problem and preventing it in the future, rather than searching for the guilty side and punishing.
Common Conflicts in The Team
For instance, you are launching a new product and with every new release, the number of bugs grows, which accordingly increases the time-to-market. As a result, the level of trust in the team greatly reduces both between the team and the leader and between developers, QA-engineers and administrators. When conflicts begin that drops the productivity of the team and creates a toxic atmosphere in the company.
In such a situation, you should think that something is going wrong with communication in your team and you invest too much in interaction and communication. This problem can be solved with the help of the correct implementation of DevOps methodology.
Let’s consider the standard team where developers, product managers, QA engineers and administrators work together. In case of a conflict, each of the participants believes that the others are wrong. Developers think that product managers do not know what they want, change requirements, set tasks unclearly, etc. Product managers think that developers are incompetent and constantly break something and do not think about the users. QA engineers are not satisfied with both developers and product managers.
How do you improve relations between all involved in the working process and convey to everyone that the main goal of the project is to build a successful business? Primarily, think about what product you are creating, for whom you are making it and what problems it should solve.
Let’s take a closer look at why conflicts arise in the teams and how they can be resolved.
Developers vs. Administrators
The conflict between developers and administrators generally occurs iwhen you ask them to work together. Developers are constantly changing the architecture of the application, as well as making frequent releases. At the same time, administrators want everything to work stably without making additional changes. Otherwise, it distracts them from fulfilling their own tasks and solving customer problems.
There are many ways to solve this problem. One of them is to create the role of a DevOps engineer who would help developers to automate the product.
Administrators vs. Customers
As it happens, many system administrators often spend a large amount of time resolving customer problems. This can significantly affect the implementation of the plan (sprints, tasks) of system administrators team. In this case, operations lose motivation, because they perform the work of support service and constantly disrupt their plans and promises to the management.
One approach to solve this problem is to assign the role of a temporary duty administrator, who solves customer requests and, possibly, developers’ requests. The duty manager can perform this role for several days a week, and then transfer it to another team member. At the same time, the main team of system administrators is practically not distracted by customer problems and development tasks but is engaged in planned maintenance tasks.
Developers vs. QA Engineers
Testing, especially automated, is one of the key elements of a successful DevOps strategy.
However, it often happens that in a fast-growing company, QA engineers do not keep up with the speed of adding features by developers, which leads to potentially unstable services go into production, and causes conflicts, because developers expect from testers full quality gates for each feature.
This problem can be resolved by sharing responsibility for creating tests between developers and QA engineers. At the same time, developers can do both unit tests and functional ones, since they know best how to test the functionality created by them.
Developers vs. Product Managers
The main task of product managers is to respond quickly to business requirements of customers and test hypotheses using A/B tests. When requirements are constantly changing and it is necessary to make changes to the product arises the conflict between developers and product managers. It is important to convey to the developers that the architecture should work for the business, not the other way around.
The problem of some product managers is that they do not want to communicate with developers and clarify things, like why the developer created a certain feature. Every developer should understand why he is doing his job. To explain this moment to the developers is one of the main tasks of the product manager.
Developers poorly understand customers. They need to see a customer in person, and it’s better to arrange a real meeting. The developers believe that it is very easy to understand the product, completely unaware of the clients, who are often difficult to cope with new programs.
Properly-implemented DevOps principles make the team’s work more comfortable, efficient and productive. Although conflicts in DevOps teams are inevitable, you can find many ways how to solve them by appealing to people’s real motivation and optimizing communication bottlenecks.
Published at DZone with permission of Matthieu Robin . See the original article here.
Opinions expressed by DZone contributors are their own.