DevOps can help organizations get better software to market faster, when it’s working. When it’s not working, development and operations teams aren’t working as a cohesive unit. They’re operating as distinct phases of a software development lifecycle.
Part of the problem may involve tools. Either the tools still operate as silos or they don’t provide the kind of cross-functional visibility that DevOps teams require. However, a bigger task may be getting development and operations working together.
What makes DevOps even more challenging is that there’s no one right way to do it. Of course, there are better and worse ways to approach it, so here are a few suggestions to consider.
Think before automating. Automation is part of DevOps, but it’s not synonymous with DevOps. While it’s true that automating tasks saves time, automation also accelerates the rate at which mistakes can be propagated.
“If you just automate things and you haven’t built the skills to handle high speed, you’re putting yourself in a place where friction and accidents can happen,” said Sean Regan, head of growth, software teams at software development tool provider www.atlassian.com. “Before you automate everything, start with a culture. You’ll have happier developers, happier customers, and better software.”
Test automation is essential for DevOps, and to do that well, developers need to test their software in a production environment.
“DevOps is founded in automation. One of the first things organizations recognize is they need a dynamic infrastructure which most people think is cloud,” said Nathen Harvey, vice president, Community Development at DevOps workflow platform provider www.chef.io Chef Software. “It doesn’t have to be cloud, it means you have compute resources available to developers and the people who are running your production organization.”
With the help of automation and developer access to production environments, DevOps teams are delivering software in days or weeks instead of months.
Cultivate a DevOps culture. Software teams that have gone through an Agile transformation remember they had to change their culture for it to succeed. The same is true for DevOps.
“You need to get your teams collaborating in a way they haven’t done before,” said Harvey. “It becomes much less about a hand-off and more about understanding the common goals we’re working towards.”
One indication of DevOps maturity is whether the shipment of software is considered an end or a beginning. Atlassian used to celebrate after a product shipped, which used to be common for software companies. Now Atlassian celebrates milestones hit after the release, such as the number of customers using a new feature within a given time frame.
Take a hint from web giants. A decade ago, web companies were embracing DevOps and figuring out how infrastructure could be managed as code. Meanwhile, other companies were operating in business-as-usual mode.
“If you’re coming from a more traditional organization, the idea of managing infrastructure as code may still be new,” said Chef Software’s Harvey. “I think the best way to achieve success is to pull together a cross-functional team that cares about driving a particular business outcome, such as how to deliver this one change out to our customer.”
Cheat. Companies spend lots of time reinventing what works at other companies. Atlassian memorialized a lot of what it has learned in self-assessments and playbooks, so DevOps teams can identify and address the challenges they face.
“Customers are coming to us saying, ‘Give us playbooks, give us patterns, give us specific actionable ways to move toward DevOps,” said Regan. “If you’re moving to DevOps, there’s usually an early stage where you wonder if you’re doing it right.”