Many companies across the world are adopting DevOps mainly for the purpose of reducing the time taken for delivering software releases, without compromising on the quality of the software. It is estimated that in the next five years, the DevOps market would definitely touch close to $13 billion. When DevOps is first introduced in any software development company, then such an unprecedented change increases the chances of resistance from all the departments involved in the software development cycle (SDLC), including the end-users of the software.
There are many benefits that come when DevOps companies are used for improving the software delivery process in a given organization. Some of these benefits include fewer post-release errors as a result of continuous testing, along with providing new infrastructure as well as highly reliable delivery of updates happening in the software. Moreover, for more efficient implementation of DevOps, there needs to be better collaboration between the operations, development and quality assurance teams and also, training for tools and technologies like CI/CD, automation of IT infrastructure, and others needs to be given to members of all teams.
Why do members of various teams initially resist DevOps and how can this be prevented?
Nowadays, there is a brand new approach of implementing DevOps in a given organization, wherein developers, quality assurance, project managers and infrastructure management teams need to blend in with the changes being brought about in the software delivery process and become dynamic enough to adapt to the new work environment.
The following members of departments in the organization may resist DevOps –
Developers may feel wary to work together with members belonging to other departments such as infrastructure engineers and in case if the operations team is not efficient, then they might have to deal with operational issues by themselves. There is also the problem of developers being too comfortable with the technology stack that is chosen for any given project and they may not have an idea about the level of familiarity of these tools by other members of the team.
The best way to overcome this problem is to provide training to members of all teams with the technology that everybody has to work on, along with the training for various associated tools and techniques.
Quality assurance team
DevOps brings about an environment where there is a swift implementation of SDLC, thereby reducing the time taken for testing. This proves to be a cause of concern for quality assurance (QA) team members since they might feel the heat of learning entirely new skills and tools like API testing (Postman, JMeter) and automated testing (fMBT, Selenium, Appium) that is required for ensuring complete automation throughout the SDLC.
For easing out this learning process for QA engineers, QA managers should collaborate with project managers to offer training for automated testing and API testing, along with increasing the skillset and qualification of QA engineers.
Project managers (put first)
Project managers are the ones who bear the brunt of a newly introduced DevOps environment, since they now have to undertake new roles and responsibilities, in addition to those that already exist such as ensuring smoother and constant collaboration between developers, operations team and QA team; increasing familiarity with DevOps tools and techniques and also cloud computing technologies such as Google Cloud Provider (GCP), AWS and Azure.
Project managers have to get themselves equipped with all DevOps concepts by acquiring relevant training in all the related tools and technologies, in collaboration with the development, QA and operations teams. Project managers also have the responsibility of removing any sort of friction that may arise in the intra-departmental work environment.
In a DevOps environment, infrastructure managers’ responsibility increases considerably to a large extent, since they now have to transform their department into a competency center rather than just controlling the infrastructure for development, production, and testing.
The CIO of a company should take steps in explaining the infrastructure managers their new roles and responsibilities, that require them to change their current approach of doing work. For example, by taking into account the complexity and size of projects, the infrastructure managers need to help project managers in properly arranging the development, QA and operations teams for any given project. Also, they should take steps not to delay the project just because other team members lack the necessary skills and expertise in handling the given project.
The operations team needs to regularly collaborate with the QA team and also the developers right from the time the project starts getting implemented. The team has to constantly report to the project manager for the purpose of providing information on all tasks that have been completed. In addition to this, they need to get familiar with the various IT automation tools and technologies. On top of this, the operations team has the huge responsibility of informing the various stakeholders of the business regarding the IT infrastructure.
For adapting smoothly to the DevOps environment, without facing any hiccups, the infrastructure department needs to take steps for familiarising the operations engineers with the newly introduced tools and technologies in the work environment by giving them the required training.
The end-users, who benefit from the DevOps implementation, are the ones who might also resist due to the reduced time of software acceptance testing as a result of quicker SDLC. The end-users also face hesitation to give their approval to anything that goes through automated testing.
For eliminating the resistance of the end-users, project managers have to establish seamless communication with them. Project managers need to regularly interact with the end-users for giving them an assurance of the reliability of software development, release and testing processes happening in a DevOps environment. This would increase the confidence level of the end-users, thereby creating an environment of trust towards the DevOps approach.
Organizations looking to have a smoother transition to DevOps can do so by availing the services of a DevOps consulting company. This is because these companies help organizations in properly planning and ultimately implementing all the steps involved in bringing about a culture of DevOps in the work environment.