It’s a logical fit. In essence, DevOps picks up where design thinking techniques leave off. “There is a natural fit between DevOps and design thinking,” says Zak Islam, head of engineering for Atlassian’s Jira Platform. “The design thinking framework encourages engineers to start with the customer in mind, and DevOps focuses on delivering the best customer experience.”
IT organizations that have embraced DevOps eliminate barriers between software development teams and operations teams (responsible for production environments), increasing the velocity of deployment. That’s critical in a quickly evolving business and technology environment where IT service delivery has a direct impact on competitiveness and business performance.
However, increased speed alone doesn’t guarantee that what’s being rolled out will be accepted by users. A design thinking mindset injects more user-centric thinking into the DevOps environment and increases the likelihood that IT will deliver what users need. It also helps to ensure that user feedback is part of ongoing development and deployment processes.
[ Some common DevOps wisdom falls flat. Read 7 pieces of contrarian DevOps advice. ]
When combined, the two methods encourage the rapid development of thoughtful user-centric systems – and continual improvement. "The goal of design thinking is to produce better designs through an intentional iterative process,” says Todd Loeppke, lead CTO architect at Sungard Availability Services. “Meanwhile, the fundamental goal of DevOps is to increase the speed to market of features while maintaining a high level of product quality.”
How design thinking helps DevOps problem-solving
For example, if an IT organization comes up against production incidents when making changes to code, the design thinking framework would encourage the DevOps team to explore the problem from a user-centric point of view first rather than through a technology solutions lens – and then start figuring out the best fix.
“The design thinking framework encourages [you] to start with the customer and work backwards,” Islam explains. “Often, we can fall into the trap of diving head-on into a solution without deeply understanding the problem. This can sometimes lead to delivering a solution to a problem that customers did not have. The design thinking framework is a great forcing function to start with the customer and work backwards to a solution.”
For those who embrace a five-phase approach to design thinking, the process of solving the production incident problem would look something like this:
- Empathize. IT works to develop a deep and meaningful understanding of how a user or customer interacts with the system and associated processes.
- Define. IT considers the user experience in the context of the problem at hand to steer the DevOps team toward a solution for providing the best possible uptime for customers.
- Ideate. IT comes up with a possible solution: implementing automated rollbacks of deployments based on anomaly detection and creating alarms for key metrics that identify a regression in the user experience (e.g., increases in response latency) or missing metrics.
- Prototype. Instead of building out the system, IT explores what happens when it manually triggers alarms to initiate an automated rollback.
- Test. IT then implements automated rollback in production and refines the appropriate metrics that will improve the customer experience over time.
Why empathy can be a game-changer in DevOps
The design, ideate, prototype, and testing phases can all occur within an automated DevOps pipeline. However, it’s the empathy step that proves to be the real game-changer when mixing design thinking with DevOps. “It’s tempting to dive into the prototype and testing phase before we empathize with the customer,” says Islam. “This is the most crucial phase of the design framework.”
A design thinking mindset can also increase empathy within DevOps teams. People in operations who take a design thinking approach will consider what developers are trying to do, how they approach their work, and what they need to do their jobs more effectively.
Meanwhile, developers can think about what their infrastructure counterparts need, what makes their lives difficult, and how any code changes will impact operations. “Empathy and understanding are required on both the development side and operations side so that both development and deployment speed is addressed, while stability and at-scale operating is realized,” says Loeppke.
[ What do great agile leaders do differently? Read How to be a stronger DevOps leader: 9 tips. ]