Almost every applications team encounters a scenario like this: Business stakeholders need new functionality from a critical application (‘ASAP!’), requiring quick code updates from developers. Then, it’s off to the operations team to ensure a smooth rollout of the modified application without disrupting service.
Easy enough, right…?
Not exactly. As many IT organizations are realizing all too well, traditional goals of development teams and operations teams often conflict with one another. The development team is always looking to release new features and functions based on business or customer need. However, the operations team seeks stability and is averse to releasing new features that could potentially cause performance issues. Clearly, the tunnel vision one can develop within these silos can create confusion and frustration.
A DevOps model seems to offer better practices. Embracing tighter collaboration between developers and other IT professionals will lead to faster, more reliable development, testing, and deployment methodologies.
It feels intuitive, at any rate: Iteration and teamwork should make things more seamless. And stories of DevOps teams innovating at other companies are common. Surely, this is a better way to handle application releases so that these silos disappear!
However, while DevOps undoubtedly offers many benefits, we should be wary of such instinctive reactions. To truly reap rewards, teams have to understand and embrace core principles in the DevOps methodology. Simply copying techniques without an understanding of their greater purpose will turn IT teams into ineffective copycats.
For instance, you can easily imagine teams becoming single-mindedly obsessed with unnecessarily complex details in a DevOps framework. Just like before, tunnel vision creates annoyances for everyone. So there’s a bigger picture here—the mission of DevOps is underpinned by a set of larger values. To find success, teams will have to internalize them.
So what are they?
1. Focus on Business Intent
DevOps is certainly about integrating development and operations teams. However, business considerations are crucial in driving adoption. DevOps allows IT to quickly deliver initiatives with a direct benefit to business. Therefore, syncing up with the organization’s larger goals is important.
The team should be genuinely focused on business intent. Working with other departments within the organization allows DevOps teams the chance to address existing problems and potential opportunities. Monitoring for metrics such as user experience, usage trends, and the business impact of applications can also ensure a focus on providing business value.
2. Culture of Teamwork and Trust
DevOps teams emerged to eliminate the ‘wall of blame‘ between development and operations silos, but restructuring everyone onto one team isn’t a magic wand. It’s important to foster a collaborative and trusting environment.
A common roadblock for most companies is cultural. Failure is often seen as a personal demerit, so people try to look out for themselves. Companies need to help individuals lower their guards. By embracing failure as part of the feedback process, businesses can nurture employees to be comfortable enough to collaborate.
3. Creation of Feedback Funnels
Being agile is one promise of DevOps, but there’s an important caveat: Rapid feedback is a core value that makes DevOps teams successful. Continuous delivery is only half the equation; observations about performance should be communicated and addressed just as swiftly.
This means code should be validated during development, then continually observed for performance issues and anomalies during testing and into production. Monitoring of applications in the operational environment is equally crucial. Nothing makes a report more accurate than backing it up with actual user interactions, so having these monitoring and feedback funnels across the application lifecycle is imperative.
4. The Use of Helpful Tools
Because DevOps is about speed and iterations, many CIOs see various tools as essential for their team. There are certainly benefits to their use. Automatic provisioning, for example, can reduce the manual work required for deployment. However, it’s important to make sure these tools are simplifying the process, rather than causing more problems and time-sucks.
Real-time, end-to-end visibility throughout the whole process is invaluable. All parts of the DevOps engine should work together as a well-oiled machine. This means using tools to track transaction histories, gather contextual insights, and quickly get to the root cause of problems. Ideally, teams should be able to resolve production problems without needing to recreate them, freeing up valuable time and resources for ongoing innovation.
Heading Down the Path to DevOps Success
As DevOps becomes a standard for IT, there will be both innovators and copycats. DevOps works because of fundamental principles in its approach, and teams that internalize them will find success in execution. And when they do, perhaps they’ll have a more charming story to tell about how they handled their walls of blame.
- White Paper: Playing offense with DevOps Practices
- Field Guide: Practical Tips for Finding and Fixing Common App Performance Problems
- Free Trial: Experience how Riverbed® SteelCentral™ AppInternals helps IT embrace a culture of DevOps