This is PART 3 of a blog series that details the challenges of outsourcing software development. Go back and check PART 2: "Software Outsourcing Challenges: Buyer's Remorse".
Software development is always on the cutting edge of technological advances.
It’s the foundation that allows us to design tools that make our lives easier and stay ahead of the game. But developing is far from easy. And honestly, sometimes it requires outside help.
Even though the number of software outsourcing providers has skyrocketed in the past few years, the overall quality of work and level of customer satisfaction hasn’t.
We want to change that.
With over 15 years of experience in software development, our founding team has experience both from the perspective of an agency as well as a client.
🧭 We’ve received vague requirements (and given vague requirements).
🍒 We’ve dealt with picky customers (and been a picky customer).
🐛 We’ve complained about bugs to suppliers (and been the ones fixing bugs).
To put it simply: we’ve been on both sides of the fence. This has given us a unique perspective to understand the drivers and motivations behind clients and agencies when it comes to problems with outsourcing software development.
No Skin in the Game
The more clients a software development agency agency has, the less “skin in the game” they have toward each client.
One of the main sources of mistrust in software outsourcing is the fact that external teams appear to have less skin in the game when building a tech product than in-house stakeholders.
Or at least they are perceived that way.
In-house programmers have more to lose if things don't go well. If new features or the entire product fail, they may be yelled at, lose their jobs, or the whole company might do down. Plenty of tools to significantly boost software developer motivation. 💀
These are dire consequences.
As a software developer, you might not only lose your job. But your colleagues in project management, devops might lose their jobs too. You don’t only lose as an individual but as a tribe.
On the other hand, external developers (and agencies) seem to have slightly different incentives.
If things don’t go as well in a given project. They will simply move the developers to another project in their portfolio, or simply put them on the bench until the next project comes.
Their developers might get a slap in the wrists, but they will definitely not lose their jobs on the spot. To the agency, these developers are a valuable resource, that while it didn't work out for your needs. They can certainly be utilized for other initiatives.
There are many other intricacies that can exist between external (outsourced) and internal software development teams. And if you want to know more, check out this video right here:
Also, if your project does not perform, the agency itself will not go down with you (in most cases). They are probably well diversified and they might have anywhere between 3 to 300 other clients like you.
HINT: The more clients an agency has, the less “skin in the game” they have toward each client project, as a loss of any one particular client will have a very small impact on the overall business.
Equity = Aligment
If you want to make your full-time developers more invested in your goals, decision-making and be more agile overall, you could give them shares as part of their overall compensation. That way the wins and losses are felt directly.
However, you could do that with agencies too.
At Softup, we receive offers to work for equity quite frequently. But there are a few things that you need to keep in mind when offering equity to an agency:
- Every founder has their own way of valuing their company’s worth. Sometimes an agency will agree with that valuation and sometimes not. And sometimes you decide not to work together, not because you are not a great fit, but because you didn’t agree on how much the equity is worth… which is a shame.
- Offering equity-only compensation, won’t work for most software engineering agencies. In the real world, if the agency would work on an equity basis ONLY, for all of their clients, they would be out of business and illiquidity in a matter of months. So this is not scalable.
But there are ways how you can make a software development agency have more skin in the game, and make sure that the external team members take both the rewards and the risks of building your software product:
- You could agree on a part-equity or part-cash payment. Based on agreed milestones, the agency works to earn enough cash to cover basic overhead expenses and their “profit” would materialize only in equity form in your company. It is a very popular approach among agencies.
- You could use a risk-free development approach, where you only pay for a given sprint if you are satisfied. If not, an agency should give you the code base, for that sprint, for free.
The risk-free model is really the closest thing to making an outside agency have skin in the game.
Think about it, if customers are not satisfied, they would not pay for the sprints. If they wouldn’t pay for any of the sprints, an agency would be out of business very fast.
When we used to work on the vendor side when we were the client, we found ourselves, in a position where, depending on the contract, we were often obliged to pay invoices even when we were unhappy, frustrated, and disappointed with the work from the agency.
In classical outsourcing, you are paying not just for the work, but for the mistakes also. A classical no-skin-in-the-game scenario.
At Softup we believe that if we get the rewards, we must also get some of the risks.
If you want to understand how that works in reality, I'd be happy to explain.