As a software engineer turned CTO, I often face the dilemma of whether to outsource or not. After some reflection and experience, I’ve came up with a framework that helps guide my decisions:
I only outsource when I have no idea how to do something or know exactly what I need.
No idea <—- [Outsource] ———— [Nop]———— [Outsource] —- > Know exactly
This framework helps manage expectations—when you have no clue what to expect, any outcome can be seen as positive. On the other hand, if you know exactly how something should work, you can define precise requirements and select the right solution. It’s the situations in between, where you’re somewhat familiar but not entirely confident, that I find it’s usually better to handle things internally.
I find this approach helpful in many situations, from deciding whether to outsource a project to choosing between building software or using an off-the-shelf, or even deciding when to ask GPT to create a solution.
What are your thoughts on this? Do you have any rules for when to outsource?