Tom Godden and Phil Le-Brun
In our previous blog post, we discussed why we need to rethink how we outsource in the age of Agile. The problems are clear, but how do we overcome them? In this post, we’ll get into some practical keys to success and obstacles to avoid in order to be successful.
1. Be Clear about the Why
If you said, “I want to be smarter, and taller, and faster, and richer…what pill do I take to achieve this?” you would be derided in real life. Yet this is analogous to discussions some companies have about the goal of their outsourcing. Outsourcing for lower cost, faster time to market, innovation, and everything else is not a realistic proposition. Be clear about the specific problem you’re trying to solve and how a partner can help. If you are outsourcing to reduce costs, the contract will look very different from one that is designed for agile delivery of new business capabilities. One is deterministic: “outsource systems A and B to an outsourcing partner; outsourcing partner will do X, Y, and Z to achieve a 50% reduction in cost.” The other is emergent: “deliver an innovative payment solution that is widely adopted by our customers.” If you’re after the latter, then you need to establish a relationship with your outsourcer that allows you to be nimble and responsive. You jointly need to be able to quickly build teams and pursue new ideas while simultaneously measuring the business value created by these teams, pivoting when necessary.
It’s also worth repeating the well-trodden advice: don’t outsource what you don’t understand and don’t outsource a system you are having problems with. It can be tempting to offload these things to a partner who promises a seemingly perfect solution to deal with a system or product that you don’t understand or that’s broken. This should be a last resort. You will become beholden to your partner, unable to articulate the need, roadmap, and value for the item in question. Instead, focus on building the necessary core skills to maintain product and technical leadership, and look to your partner to fill in the blanks with the rest.
2. Design the Relationship for Agile Ways of Working
Agility to address customer needs, de-risk initiatives, deliver value, and to bring forward new innovations requires a model that embraces a higher level of collaboration, information sharing, and problem-solving. Team members must work as equals, iterating, exploring, and investigating new ideas guided by common goals. You don’t enable these types of teams through comprehensive SLAs that try to address every edge case up front, nor through burdensome, overly specific statements of work or cumbersome, punitive change requests. Rather, it’s best to find mechanisms by which you and your outsource partner can co-resource agile teams, deliberately and relentlessly eliminating dependencies and increasing the frequency of value delivery.
The value of the relationship is measured in value produced over time. The KPIs in your contract need to reflect this relationship, forming the basis for trust as they define what success looks like at a high level. These KPIs should be understandable and relevant to your business versus just tactical internal measures such as change requests completed or SLAs achieved. These KPIs should, for example, encourage teams and partners to invest in robust, automated pipelines to reduce undifferentiated work and ensure consistent controls. Take a long, hard look at your existing contracts. Do they specifically encourage proactive investment in, say, quality assurance (rather than throwing bodies at the problem), relentlessly removing system dependencies, or keeping products “evergreen”? Unfortunately, even companies with the foresight to build these provisions into contracts often deprioritize their achievement by elevating other KPIs and focusing on traditional outcomes.
If you can’t determine how to build agile methods into your contract, experiment with your intended partner. Figure out ways of working that can be turned into a long-term relationship and contractual language. Don’t be deceived by the assumption that you can work this out post-contract.
3. Collaborate over Watertight Contracts
It’s easy to feel that more time and money is spent on attorneys negotiating contracts with outsourcers than on the practical implementation of the relationship. Traditional outsourcing contracts hopelessly focus on precision, risk mitigation, and change management in an attempt to eliminate known-unknowns and unknown-unknowns. As a result, they can make change—the whole purpose of technology—difficult.
In an agile contract, you want to focus not just on flexibility, but on transparency, open dialogue, empowerment, shared objectives, and real value delivery. You can’t do this purely through highfalutin ideals and proclamations. You need to pick the right model in which your teams can execute. The traditional contracts with a high offshore contingent rarely work in a situation needing agility. In this scenario, teams fail to build a strong foundation of trust and their velocity is hampered by asynchronous communications. In most cases, although it’s more expensive, agile companies are moving toward team co-location or, minimally, co-locating the product owner, scrum master, and business analysts. It reduces complexity, increases trust, and improves customer-centricity.
One obvious challenge with any of these models is how to effectively work in an agile manner when your team isn’t fully co-located. If you would had asked us 12 months ago, we would have said this remains a challenge. While we still believe co-location is preferable, the last year has taught us how to work together more effectively in a remote fashion.
4. Look for Cultural Fit, Not Just Technical Ability
As with most things in life, relationships matter and are normally forged over shared values. At Amazon Web Services, we use our leadership principles to guide decision-making and priorities in everything from new products, hiring, and team meetings to holding each other accountable. It is a fabric that allows a large and dispersed enterprise like AWS to be both nimble and consistent in its values. Extending these values or establishing specific principles with your outsourcing partner is critical for exactly the same reason. Make sure you value the same things.
Let’s take our assertion further. If your own company culture isn’t ready to support agility, don’t launch into an agile outsourcing arrangement. It simply cannot work. If you do practice agility, you need to ensure your outsourcer’s employees can, too, else progress will be slowed during handoffs (especially if time zones are involved). Implement guardrails within which the teams should operate. Embrace the agility and responsiveness of agile and DevOps. Accept mistakes will be made but can be easily rectified.
5. Make Decisions about Ownership
In our discussions with numerous enterprise customers, we often encounter scenarios where not only the doing, building, and operating of systems or products have been outsourced, but the strategy, thinking, and ownership have been outsourced as well, whether deliberately or otherwise. So much of the “doing” has been jettisoned that the internal employees no longer can bridge the understanding divide between what they want to do and how to go about it. This disintermediates you from your customers, internal and external, as well as makes you as a business partner of questionable value. Disappointment in and with both parties results.
An essential part of developing an effective outsourcing plan is, and always has been, to determine what your competitive advantage is over others in your field. Figure out your company’s core skillset and roles and then keep them in-house. Traditionally these roles include architects, senior and technical leads, UI/UX experts, single-threaded leaders, product owners, and business analysts.
6. Make Outsourcing a Business Conversation
Agile companies understand that they cannot look at their business through the lens of organizational structure. Rather, they have to look at how value is created end to end for a product or service, the so-called value streams. Outsourcing part of a value stream, such as just the bits owned by IT, doesn’t create real agility. In fact, it will likely lead your business partners to believe their problems are solved when, in truth, they haven’t.
You cannot view your outsourcing contract as just an IT deal. The contract fundamentally changes how work gets done for everyone, not just IT. Educating your peers on this and assessing how work can get done faster across the entire value stream are more pragmatic means of increasing business agility. Education is also essential to ensure that your peers understand and have a voice in the outsourcing process. After all, they’re the ones who will be affected, and they need to know this upfront.
While we have only scratched the surface of the challenges, we hope this has given you a perspective on what you need for a successful agile partnership with your outsourcer. We have the greatest respect for the systems integrators, an essential part of the technology ecosystem, that make up our partner community. Going into these relationships with your eyes wide open can only make you and your partner’s relationship stronger.