The first time I tried to build a software company, it literally put me into the hospital. If you had asked me during that first year for advice about starting a project, I would have instructed you to take out a piece of paper and a pencil, then stab yourself repeatedly with the pencil because to me, building software was nothing but pain.
For that first year of pain I received debt, bad memories, more debt, about twenty pounds of unwanted weight and nothing resembling a working app. The only positive things I took away from it were lessons about how software can go horribly wrong.
In my experience, there are four main reasons why starting a software project gets painful. In this post, I want to share the first type of software pain and how we have learned to avoid it. (More posts will follow.)
Software hurts because it costs a fortune.
When I first got into software, I was blissfully naive about what it would cost me. I had heard stories about how expensive it was to make software, and I was determined that I was going to be the exception.
What I know now is that there is no world with software doesn't cost a lot of money. Good software requires skilled developers spending hundreds of hours of their time working towards a goal. Skilled developers (and the infrastructure to manage them) is never cheap.
I've heard horror stories about people throwing money at $300/hr development firms, but that is not the most common way to waste money on software. Far more often, people throw away money by trying to be cheap and hire low-budget firms overseas.
When I was trying to build my first SAAS, I wasted thousands on inexpensive agencies located in places like India, the Ukraine and Russia. My thinking went like this: These shops were charging $20/hr. How can I not get ahead when the going rate is 10x that? It was just too tempting.
It wasn't until I threw away enough money to buy a good car that I realized my mistake: The only thing more expensive than a cheap developer is an overseas agency staffed by them. Every single penny I ever spent was a wasted penny. It was like I was taking my money and throwing it into a bonfire.
Which is why I call this the bonfire. It was literally like lighting my money on fire.
There are hundreds of Indian, Chinese, Ukrainian and Russian software agencies on platforms like Upwork. Run away.
These agencies are almost always staffed with inexperienced junior developers who are working at slave labor rates and trying to make up for their low rates on volume.
There will be a communication problems. If you get anything at all from them it will look nothing like what you were promised.
I have friends (more than one) who have paid foreign agencies for months only to have them hold their code hostage for more money. It happens. Imagine spending your kid's college tuition on a barely working app, only to have the developers who have already taken your money demand more.
If you like lighting money on fire, having no idea what is going on, and the general feeling of frustration - then by all means try to save money on a cheap foreign agency.
Of course there are wonderful, talented developers who live overseas. We have several of them on our team. But learning to find them and having the infrastructure to manage them are much harder than most people think. It requires skills in project management and software development, a deep commitment to building relationships, and a lot of patience. Most people don't have this, and outsourcing dev is like a bonfire for thier money.