Startup founder’s reflections on working with software development agencies.
Almost anyone who ever dealt with software development outsourcing can share some horror stories about their experience. It’s a minefield for things going wrong: communication issues, cultural differences, false expectations, broken deadlines and many many more. Ultimately all of the fears boil down to a question of trust:“How can I be sure a partnership with a software development vendor won’t f*ck up my business?”
The biggest challenge here lies not in the spectrum of motivation, culture or communication with individual engineers. All of these derive from a bigger issue of information asymmetry. How much do you as a buyer know your supplier at the time you engage? Most of the times you won’t even be able to tell who your team will comprise of, let alone how well you will collaborate. That might result in negative consequences which make you claim that outsourced software engineering sucks and software development also sucks.
But that’s just part of the problem. Think about how little do both sides know about the product they will be creating. Every startup is a ship navigating through a Sea of Unknown. It moves by conducting various experiments (and usually finding America while searching for India, but that’s a whole different story). Every negative outcome of an experiment opens new opportunities for further experimentation, and new directions for the journey; every positive one – even more so. Uncertainty to a startup is everything. It brings hoards of opportunities but makes the journey so much more complex. A successful outcome now depends not only on hard work and perseverance but even more so on being open to luck and chance. Nassim Taleb put it amazingly well in his book “Antifragile”, so I’ll try not to repeat him here.
The point is that in an uncertain environment your vision often stretches as far as your next pivot. Strategy gets updated monthly. Tactics – weekly. Documentation expires on a daily basis. Your product roadmap is an ever-evolving assumption and functional specifications can change with each new experiment. We are in that territory with YouTeam and… admit it: you don’t really know what you are building until you actually build and test it.
Yet, given all the above, we do the same thing time and again. We find a number of vendors, go to them and ask how much a certain piece of work will cost. Why? Probably due to a habit – enquiring for the price of goods or services has forever been a natural start to a business transaction. It aches me to see startups still relying on estimations because under the conditions startup companies operate in estimations are none other than lies. Here’s why (and let’s not touch upon stories when this lie is deliberate):
– They are an evaluation of your current vision at a very specific moment in time. They don’t account for higher-order information i.e. decisions and actions that led to arriving at that vision, and how this vision will change when the business gets exposed to new information. Paradoxically, this is exactly what denounces most of their value as they fail to provide a reliable outlook in the future.
– They are a way of tying the service provider to a commitment and shifting the responsibility of delivery onto them. This kind of security is invaluable but largely depends on the reliability of your supplier (which – guess what! – is another of these things no one will ever be able to guarantee).
– They are a way of testing a supplier – and this, in my humble opinion, is where most of their value lies. They are company-wide technical tasks. If you want to assess a supplier, look at the questions they ask after receiving your documentation and how they approach assessing it.
As (non-)valuable as they are, estimations only provide a fraction of information necessary to make a thoughtful decision about who to work with. Then what is it that we have to look for?
I believe that by doing one small thing companies can greatly increase the chances of their success with outsourcing. That is to look beyond marketing and make an effort to put people before companies. Ask yourself: “Do I really know the people I will be working with when deciding which company to collaborate with?” The reality in most cases is – no. This is exactly why traditional outsourcing feels so “unnatural” compared to in-house hiring or freelance outsourcing. There are no companies in in-house or freelance. Nothing to distract you from the most important part – the people.
Wouldn’t it be great to know who you will be working with – right at the beginning of your conversation with the supplier? Wouldn’t this allow us to make much more calculated decisions, faster? Focusing on people is ultimate flexibility in the face of aforementioned uncertainty every startup faces. If you have the right crew you will be able to handle whatever storm the Sea of Unknown hits you with, and whatever direction you will steer your ship into. Talk about antifragility now.
We at YouTeam call this human-centric outsourcing. For the past 9 months we have dedicated all our efforts and resources to building a tool that would allow businesses to look beyond just vendors and to focus on individual specialists that work for them. Among the global population of 20 million software engineers, about a quarter works in IT outsourcing. Most of them are incredible professionals whose time and skills can be purchased and used for building amazing products and software development outsourcing services. From now on there is a way to find out who these people are and where exactly you can find them.
We believe disclosing relevant information about own employees is of a mutual benefit to both the employer (i.e. the agency) and the client. It is a way of bringing more balance and transparency into the buyer-supplier relationship, and as a result having a much more efficient, trusted and fulfilling collaboration. True, there’s no universal recipe to make outsourcing work for everyone. But as long as you can get access to the right people – the world is your oyster.