If you've worked in a technology or engineering team over the past few decades, you'll have been round this cycle more than once. The outsourcing of software development and the potential pitfalls that follow are commonplace amongst businesses that operate in the digital space. Have you ever wondered what happens on the inside or looked for strategies to make these engagements more successful?
Then read on....
Build internally or outsource? It's one of the most common debates across the technology community. More often than not the conversation usually descends into a simple decision about the bottom line. Cost. An offshore team promises to deliver the same thing you can deliver yourself with an internal team at a significantly reduced cost. Also the stakeholders and decision makers in this endeavour are usually deeply frustrated with the speed of development and the external agency promises it can deliver faster and with better capability and scalability. The CFO likes it as it's very easy for them to trim costs in the event of a business under performance. All across the market, businesses have offshore development teams working hard on delivering on requirements and shipping products. Sometimes it works, sometimes it's a catastrophe. What makes one engagement or project good and one an absolute car crash? First of all, there are some fundamentals to understand.
What is a development agency?
This may seem entirely obvious, however a development agency is effectively a group of people sitting around, trying to get the maximum value from a bunch of other people in terms of time booked on a project. In the world of development agencies, people are a resource and it's the job of those that lead the agency to get maximum utilisation or return on those resources they pay for/employ.
It's common for an agency to have a core group of 'staffers', accompanied by a close knit group of regular contractors/flexible team members. In addition, you often find a cohort of nearshore/offshore developers. It's incredibly common and largely expected for an agency that wins a pitch to not have the full team to deliver it. They will then scale by employing perm or contract supplementary staff to deliver on the engagement depending on the length of the contract.
The real advantage to using an agency is that (if you choose correctly) they have a very deep and diverse set of cross-sector experience that they can bring to bear for your business. This 'gold' tends to sit in the more senior members of the team who are often split across multiple accounts.
How are they set up?
Typically, an agency will have a set of project specific 'deliverers' at the coal face and are entirely working on your project full time. The more senior members will be split across multiple accounts, as will your account manager/account director/client partner. Larger agencies will have the standard organisational roles and hierarchy, smaller agencies probably less so (although this isn't always detrimental)
What are their objectives?
If you're a business and working with an agency, it's of paramount importance that you remember that the agency's single purpose is to get you to book more business. It's their entire purpose for being. For every social, drinks, lunch or selection box of cupcakes - the person delivering them is financially remunerated on your willingness to re-book or expand your spend with them. Yes, it's absolutely in their interest to provide you value, deliver on time and do all the things you request as a client. However, it's entirely with the aim of retaining your business and getting you to expand your spend.
Laying it out in black and white may seem callous. After all, when you've been working with a partner agency for a prolonged period of time, those people become friends and colleagues. It's very easy to lose track of the mechanics of the relationship. The fact still remains that an agency's purpose is (and always will be) to grow the account revenue. (that means get more money from you) Everything they do is to aid that purpose.
Why is this a problem?
It's an unfortunate revelation for some that there is a juxtaposition between your business's aims and the aims of the suppliers that serve it.
Two of the more prevalent areas are software development and digital transformation.
With the former, software development. Good software is written in a way that ensures anybody can easily add to, change or expand upon it. This way of developing is well known, well-practised and ensures that you're developing in a way that can (in the future) be easily maintained by the supplier that commissioned it. I've never, in all my engagements and travels, seen an agency that's self-started and developed in this way. Why? Because it takes longer, costs more money, creates less profit, requires more expertise, and removes the dependency on the agency (and thus the revenue line) to maintain. It simply doesn't support the agency's primary goal, so most tend to not do it.
Digital transformation and Agile implementation are another area where many of the agencies who work within this space will deliberately avoid addressing the core problems that would enable the client to make real progress in favour of extending the engagement as long as possible. Thereby taking small, ineffectual bites and never making the lasting change required. Lasting change doesn't lead to future revenue. I had a conversation with a 'big three' account director the other day who was tasked to do exactly this.
Unfairly harsh
There will be those reading this article, maybe even those working in an agency themselves that will view the above paragraphs as unfair. In some ways, I can appreciate how it paints a pretty bleak and jaded picture. There are good, moral agencies out there who want their clients to succeed and have morality and pride in their work. They do exist, however they are few and far between. I've been involved in some groups who have genuinely sought to grow their client base by helping their clients be successful and grow. Hoping that the success of the client and the loyalty of the agency to that client will lead to an expanding revenue from the account. Occasionally that happens. More-often the now successful client is advised to hire a large and well proven agency with scale that outstrips the original agency. It's a cutthroat industry and nobody gets fired for hiring one of the 'big three'.
How to use a 3rd Party Software Development Supplier safely and with low levels of risk.
About 10 years ago, a small group of colleagues and I started what was called the 'Partner Management Team' within the technology/engineering department at News UK. The purpose of this new team was to ensure that the many software development partners we had working with us at the time were monitored, governed and followed agreed processes to give scalability to the business. Our aim was to deliver software through 3rd party vendors in a low risk, high transparency and high quality fashion.
It was a great success, over 18 months we worked with the existing suppliers to build processes, governance and standards that ensured what was being produced provided high levels of value and met the needs of the business. We rolled this framework out to vet, engage and onboard additional suppliers and helped those partners deliver quality and value as well. The fundamental principles are easy to understand:
- Build transparency and trust at a code level between client and vendor - Develop against agreed engineering/coding standards. - All code is written in a way that makes it portable cross supplier and internal teams.
Unless expressly agreed by the business, never develop anything through a 3rd party we don't have the ability to review, govern and develop on ourselves.
The framework had plenty more detail, however the important takeaway was that the partner agencies were sufficiently steered and motivated to deliver on our quality requirements. Because we operated outside of procurement, any existing relationships and influence was null and void. Our methods for governance were friendly and empathetic, but ultimately clearly outlined the businesses requirements and expectations for which payment was contingent.
Many interesting things came out of this process. Primarily the expectation setting and trust building between our business and our suppliers shined a stark light on the processes of some incumbent suppliers and their practices. It clearly showed the lack of data and review being undertaken by procurement and the absence of business focused diligence in partner selection in favour of those partners who had doubled down on relationship building and demonstrating a false fast pace over demonstration of quality. Some suppliers, having their wares 'laid bare' made decisive and wholesale changes across the account and committed to resolve historically substandard deliveries. Some suppliers were of such low maturity that those in-charge couldn't comprehend their shortcomings.
How do you lower the risk and what are the 'gotchas'
Quality, Quality, Quality, Quality
If you're going to use a third-party development resource in your business, you need to ask yourself a simple question. Do I have the budget, existing capacity, or resource to ensure that the output from the supplier meets our business needs?
Using 3rd party development can be hugely advantageous, however things go wrong when a business expects an agency to work unobserved in a way that's counter to its mandate to grow revenue.
I would argue that a business cannot engage a 3rd Party Delivery resource without the in-house skill set to review, understand, visualise, and govern the output of said partner. It's a common fallacy that a 3rd party development resource can replace an internal team entirely. It cannot. Businesses must maintain appropriate resources to ensure quality, maintain currency in the technology and remove the risk of agency lock-in and dependency.
Beware of the bait and switch
It's common practice, especially within the large agencies, to pitch and win engagements/accounts with senior and experienced individuals on the team, only for those people to be replaced by an inexperienced person with a very well written playbook/resources. In smaller agencies, the senior experience is spread thin and across multiple accounts. Ensuring you're clear on who's bringing focused experience to your project is paramount.
How do you manage the risk?
As I've spoken to many times before in my articles. If you own or manage a digital product today, it is crucial to the business that the code merged into your product is of good quality. It doesn't need to be gold plated and we use the mantra 'Good Enough is Best'. Those who have partnered with us in the past will know this all too well. As a digital leader or c-suite member in a digital business, it's your job to ensure that the code you cut is of a quality that allows the business to adapt to changing user requirements and market conditions with low effort and overhead.
Working with a 3rd party development house is an option for all organisations and one that often seems to make sense when interrogated through the business plan. The reality is that whoever is developing the product that drives your revenue, you need to ensure you're able to guarantee quality, avoid supplier lock-in and deliver outcomes that meet your business and technical needs. In the same way you wouldn't send your children to a school that's not reviewed and that you can't monitor, you should take the same approach with your technology.
Key takeaways:
Never develop anything with a partner supplier you don't have the ability to inspect, ensure quality and govern.
Ensure you clearly agree engineering quality and standards with your suppliers and have the processes and governance in place to impartially ensure you're getting the outcome that's right for your business.
Ensure you have the ability to monitor and audit the output from your suppliers.
Be acutely aware of potential supplier lock-in or dependency. Constantly monitor where you have a single point of knowledge or reliance that's not a member of your business.
Finally, there are significant advantages of working with 3rd party agencies. Whether that be for UX and Design, Software Development or Transformation and Maturation of your processes and people. The unfortunate truth is that just like you, these organisations are businesses. Businesses with their own objectives, agendas and sought outcomes that may or may not align with your own. That (on the most part) is absolutely fine. The proviso being you have the ability to use those organisations effectively and collaboratively for your own needs and put the processes and governance in place to protect yourself and your teams from activities and situations where they don´t. At scale, a well-managed 3rd party development/supplier cohort can provide speedy, effective and experienced support to a business. However, at low levels of scale or on a 1 to 1 basis, the cost of governing an external supplier effectively is often more expensive than maintaining internal resources.