Welcome to the latest post in a series where I answer some of the many questions on how to approach an Enterprise DevOps transformation at scale.
Human issues continue to pop up – not surprising, as people and culture are at the heart of DevOps. This next question asks how to encourage a ‘big picture’ view across a complex org:
Q: Keeping an eye on the bigger picture is getting harder with larger scale operations. Do you have any tips to feel each person in the team responsible for this?
In larger enterprises IT is often positioned as a factory that services the whole business. Software is created to meet specifications, often with no real connection to larger business goals. Fixes are prioritized by development, releases are controlled by operations, and the business units are expected to be happy with whatever they are given. Specialists get tunnel vision, and barely understand their impact on business goals like “accelerate customer acquisition” and “penetrate new markets.”
The ‘generalist vs. specialist’ question from my previous Q&A (along with the ensuing debate on LinkedIn) keenly informs this challenge. Ultimately the type of people in your org – specialists or generalists, system thinkers or silo thinkers, I-shaped or T-shaped, goats or sheep – will have a huge impact on how well they collaborate and share responsibilities. But here are some ideas on how to encourage a shared responsibility for the ‘big picture’ of IT service delivery.
Take a refresher course on corporate strategy
Start by ensuring everyone, on every team, knows the corporate objectives. IT staff often don’t connect with corporate goals simply because they don’t know them. For large public enterprises, the annual report and/or recent SEC filings are a great place to start. Listen to earnings calls, read press releases, and follow other executive messages. Understanding corporate goals as a team is critical to sharing responsibility for the bigger picture.
(Re-)Discover your business unit objectives and contributions
Invite the business unit(s) you support to present to IT their role in the business and their objectives. Ask them to describe how their goals align with corporate strategy, how they contribute to corporate goals, and (if they can) how IT helps them achieve these goals. Then workshop across teams on how every role in the IT value chain contributes to specific business outcomes. This will help to establish each team member’s shared responsibility for those objectives, and their responsibility for each other.
Formalize shared goals and measure results against them
Reflect shared responsibilities by establishing and measuring formal performance objectives for individual, team, business and corporate goals. For example, make operators responsible for infrastructure stability and on-time release; make developers responsible for code quality and break-fix; make DBAs responsible for schema design and transaction throughput; make everyone responsible for speed, quality, cost and security. Make individuals accountable to each other, their business, and the company through shared goals and metrics.
Bring people together with shared process
Map out the application delivery workflow so everyone can see clearly the shared responsibilities in an end-to-end process that contributes to business objectives. Do not make these process maps rigid; rather, encourage everyone to continuously look for improvements to the process flow. Make them highly visible too, to remind everyone of their shared responsibility in the end-to-end service delivery process, rather than as a reference guide to be slavishly followed.
Bring people together with shared technology
Provide shared technology to help establish common language, foster communication, and streamline team interactions. Look for scalable, multi-site, multi-user capabilities for automation and management in a shared toolchain. Adopt common social software to enable fast and easy communications among and across teams. Use common tools, screens, and reports to monitor performance against key individual, team, business, and corporate metrics.
Align staff intentionally with key business processes
Where possible align end-to-end (or ‘full stack’) IT teams to business areas rather than grouping specialist teams to service the whole company. Closer alignment helps build a connection between the business and service delivery teams, with a shared responsibility for business outcomes. This ‘artisan’ approach can be hard to enact in a ‘factory’ structure, but it can be adopted incrementally (by geo, by BU, by product line, by project) to make it easier.
More ideas?
These are a start, but as with all my tips and answers, definitely not the final word. Please feel free to add your ideas in the comments on how to foster a shared feeling of responsibility for the big picture in a large, complex environment. Or you can tweet your comments to @AndiMann. Or take them to your favorite social site and discuss this article there. I’d love to see any other ideas you have, or chat with you about these ideas wherever you log in.