DevOps Institute
8 Key Challenges in Adopting DevOps: Part 2 – Solutions
By: Najib Radzuan
In part one of this two part blog series I looked at the 8 key challenges I see organizations facing when adopting DevOps. Now, let’s look at some solutions.
“Change is hardest at the beginning, messiest in the middle and best at the end. ” Robin S. Sharma
- Making Culture Function According to DevOps Principles
DevOps leaders and change agents will need to find ways to continuously educate teams and people about what DevOps culture looks like and why it accelerates the flow of value. Here are some things I have tried that have worked:
Learning and Communities of Practice
DevOps advocates can arrange internal training or introductory presentations to give exposure to DevOps culture to all and identify other early adopters. Face-to-face collaboration is preferred over using email or video conferencing.
DevOps Knowledgebase & FAQ
DevOps teams can create a knowledgebase or FAQ to ensure that everyone knows where to find information about DevOps. The visibility and easy access to information can encourage self-motivation and contributions.
Applying Westrum Organization Culture Practices
We can look to the Westrum Typology of Organizational Culture to understand generative culture:
How to build a Generative Culture:
Addressing Resistance to Change
Leaders have to expect that people will resist change. We can apply different engagement strategies to approach them toward DevOps initiatives. There are six behavior profiles detailing how we can engage with them:Unengaged
Spectators
Cynics
Critics
Enthusiasts
Advocates (Champions/Experts)
Bringing Clarity to the DevOps Vision
The DevOps CALMS framework can help define the DevOps roadmap and goals. CALMS integrates development and operations within an organization.Creating Cross-Team Collaboration
The development and IT operation teams need to learn to collaborate. This may mean creating cross-functional teams, but traditional department setups can include deep expertise in IT operations. Regular meetings can help with collaboration.Tools such as Slack or Microsoft Teams facilitate communication,
Standardizing Environments
An environment is a collection of resources that you want to convert from code into a product. Below is an example of environment stages and their maintenance:
Advantages of having a well-defined environment include:
- Deployment record/history
- Traceability
- Permission/Control
Infrastructure is critical for application deployment. Infrastructure can be provisioned by script or Infrastructure as Code (IaC),
Configuration dictates application behavior in infrastructure.
Dependencies are all modules or systems the application relies on.
Benefits of automating environment provisioning include:
- Reduced complexity
- Increased stability
- Increased flexibility
Standardizing the DevOps Toolchain
Determine suitable tools for your processes. Training existing workers is essential, and tools must align with security requirements.Accelerating Release Management
Creating a release pipeline with appropriate auto and manual triggers on deployment and testing stages reduces human activities.
CI/CD supports better software development and testing processes. An efficient CI/CD pipeline can significantly enhance time to market.
- Automating Testing
DevOps encourages automation of tasks that don’t need human intervention. Automation tools enhance usability and testing quality. Benefits include:- Stability
- Speed
- Scale
Conclusion
DevOps adoption is a journey that requires an analysis of the organization’s architecture and goals. Addressing challenges will facilitate smoother transformation and help teams adapt to DevOps changes.