Lessons learned from a failure: how not to start an outsource company:
I was sifting through my drafts and this one has been sitting unfinished for almost 4 years now. The story I am telling here is a bit hard to swallow, but also really important for me & my experience. So, after a bit of deliberation I have decided to finally finish it and put to public eye.
I will tell you a story of another small tech company which failed. I was 20 and tired of “all that stupid management” in my current team. I got bored with meetings, bureaucracy, and boring projects. But most of all I was tired of working in the outsource without any real impact on what I was creating. You know, that feeling, you sometimes have when you do believe that you can do something useful?
The solution I found was pretty simple: to start a business by myself and “do it right” (and of course, it had to be another outsource agency, because I was 21 and didn’t know any better. Go figure).
Now it’s been a year (no, now it’s been much longer, but I kept it as is to remind myself how long-ish ago that all happened) after it failed and I am going to share some insights on decisions which lead to such end.
First of all, a piece of background information about my “start-up”. We started as two passionate guys who wanted to build software with as little control and management as possible. The end was much more realistic. We were barely keeping up with requirements from the few customers we had, our quality (both of life and deliveries) was slowly but steadily declining, I was trying to bite off a log bigger chunk than I possibly could swallow, and ultimately and most importantly — I was so enamored with the idea of running a company that I’d forgot that I wanted to do something not related to out-source.
Lessons learned and what not to repeat
Now with the introduction done, I want to go over a few of the outtakes in a bit more detail. None of them are particularly ground-breaking news, but for me, they were “new things” I had discovered almost five years ago.
Do not run a business if you want to do engineering
One of my major misunderstandings was that I believed I would be able to work more as an architect, not as an entrepreneur.
That is just a wrong opinion. Even if you are running a start-up of 3 people, your main task will be to make connections, find customers, investors, and employees. If you are going to add engineering tasks to that pack… well, one day you will wake up so overloaded you won’t be able to do anything. It is better to admit that once you step on the entrepreneur’s path you are no longer an engineer. That’s fine.
If you run a business do not work as an engineer
This one is quite similar to the previous point. The idea is that even if you are not intending to keep doing engineering tasks… life happens. You might be tempted to jump into a difficult task and implement something your team got stuck with. Believe me, it’s better to avoid it. You can and actually should share your knowledge. Give ideas on how to solve some problems. But remember, each hour you spend writing code is an hour you are not spending doing tasks bringing business value. For me, that was one of the hardest parts. How can I not help with this feature if it will only take 3–4 hours? Just stop and re-read the previous paragraph.
Firing is hard. You will need to do it.
Probably one of the least pleasant moments of the whole experience was that one day when I had to let go of one of my friends. We’d hired him as a Junior Developer working on one of our projects. He was a great guy. But he was a weak engineer. And I’ve failed him. Ultimately, when you join a company as a Junior first and foremost you are expected to learn and to grow. We didn’t have neither resources to spare, nor the experience to provide such guidance. It was an environment of “let’s get going and learn along the way”. Quite predictably it didn’t work out well. After complaints from our customer and a painful code review session, it was clear — the guy at the moment did not have the skills we needed. What followed was a very awkward conversation between two similarly-aged young adults. I have put myself in a place, where I have gained someone’s trust, brought them into the team, and then ultimately could not help them grow.
Lesson: when hiring, always remember that it’s not just you who trusts a new person with some responsibility, but also your new employee who trusts you with an important part of their career and life.
Be ready to be responsible for what you do not control
One of the biggest changes for me at the time was the idea of being responsible for something I do not have a direct influence over.
How could I commit to something for our customers when I have zero clue if “Bob” who will work on the project will have any roadblocks or not?
It took a better part of 5 years for me to learn how to trust those who work with me on one hand, and on the other hand, to have enough experience to “wing” the complexity of a problem. And of course, always multiply estimates by a factor of 2. Minimum!
Closing thoughts
With all that being said I am still incredibly grateful to all those with whom I embarked on this journey. For me, the most important lessons were not only those I have mentioned before but also the ability to talk with customers and those whose problems we ultimately try to solve.
I strongly believe that a good software engineer knows, understands, and cares about the underlying pain that the software they are building can eliminate. And for me it was an incredible opportunity to see the “full circle” of the software lifecycle.
Would I advise everyone to band together with their colleagues, college friends, and a few strangers to create a small company? Hells no! But definitely try to get an experience with the end-to-end customer journey in our industry which can be isolated from living and breathing users by quite a long chain of “processes”.
I am going to conclude this small retrospective with a quote that I find quite inspirational to always keep going:
“Success is not final; failure is not fatal: It is the courage to continue that counts.” — Winston S. Churchill