Though DevOps has become a primary aspect of development across a variety of organizations, many are still in the early stages of adoption, and everyone is searching for ways to improve practices. DevOps maturity is still young in many organizations, so you may find yourself asking some of these questions heading into 2018:
1. How does an organization approach DevOps?
DevOps is in the intersection between several teams, namely engineering, IT, and quality assurance teams. It’s important to have buy-in from all three of these teams. DevOps adoption requires a cultural change across all of the teams, so leaders must be focused on promoting this change. I would suggest starting with small, well-defined projects with well-defined success criteria. Finish those before jumping to large scale strategic changes.
2. Who should launch an organization’s DevOps initiative?
As I said before, adoption success lies in the collaboration of the engineering, operations, and quality assurance teams. Hence the DevOps leadership in the organization should have stakeholders from all involved teams. Since they’ll all be working to initiate the strategy, they’ll all need to be satisfied with the strategy.
3. What are some of the challenges, roadblocks, and setbacks that can be expected as a DevOps implementation unfolds?
The biggest challenge in DevOps adoption, by far, is the required cultural shift to cross-team collaboration. In larger organizations, the engineering and operations teams might be siloed with different budgets, short and long term goals, etc. Changing the attitudes to work together is not an easy task. It’s not necessarily a personality thing. It’s more of a habitual thing. A lot of times, they’re conditioned to focus on department-specific goals. Department leaders must scale up the vision from “my department’s success” to a larger goal for the organization, and that change in mindset can be difficult.
Another common pitfall is using large projects as a test cases for DevOps. Failure or even partial success in these kinds of projects might lead to dissatisfaction with practices. It’s important to start with small, well-defined projects and iteratively build confidence in DevOps processes, both with upper management and the teams involved.
Stability might be an issue if the adoption is not handled correctly. DevOps practices imply much faster and more agile changes in the organizational infrastructure, so it’s important to adopt automated testing as early as possible to ensure more verified changes.
4. What’s the best way to get teams to work together?
Make sure that development, operations and QA teams share common success metrics. Promote as much collaboration as possible between the teams. It’s good to have shared daily meetings for collaboration on specific tasks with representatives from all the involved teams. Involve representatives from the operations team in the initial project planning steps. Ensure involvement of the development team until the project is successfully deployed to the production environment. Adopt virtualization and componentization tools and technologies like Docker to make the dev environment as close to production environment as possible. Use the same monitoring tools across teams. Make infrastructure planning and deployment planning a shared task across teams.
5. How do you overcome cultural differences?
The universal metrics should help with this. The success of the project should not be measured on a team-by-team basis. Scalability and future planning should be considered from the start of a project, keeping these ideas in mind all the way through implementation and QA phases. Promote as much collaboration as possible on common tasks. Ensure a culture of openness and working together towards common goals.
Michael Mazyar is the Chief Technology Officer at Samanage.