I have been freelancing for companies and clients since 2010, and it’s come to a point where I am realizing this is not the future I want.
Web development freelancing in an agency-like business model goes like this:
- Client has a project in mind,
- you make it a reality after a few weeks or months,
- get paid,
- start again.
is one of those jobs that you think you’ll have 100% freedom to choose who to work for, the projects you want to work in and the hours and days you want to work on. Yet the reality is pretty different.
You do have a boss, and no control
I thought you’d be the one in charge, but eventually realized that from the moment you accept a project from a client he is your boss because he has the final word on approval and payment. He doesn’t care about you at all, he wants something done in exchange for money, don’t expect any sympathy since they’re not looking for you to make friends (although I’ve become very good friends with a bunch of former clients) because you are a replaceable outsider.
If you don’t know your client well enough professionally (which is usually the case, a few interviews/meetings won’t tell you enough), for nearly all projects especially the ones with a fixed price, a lot of things can go wrong.
The main problem is that most non-tech people don’t know about what it actually takes to build a unique website from scratch. They will imagine their perfect website and keep thinking about new things they want to add while comparing it to the best ones out there (like Facebook or Airbnb, built by huge teams during several years). And you will need to be really really good at estimating timeframes and explaining why adding new features will delay the release date, which sometimes can take even more time than building the feature itself (yet clients will demand explanation and you’ll invest twice the time: explaining, scoping, formalizing a contract + building).
I wrote an article on how to spot bad clients (coming soon) with very useful insights.
Your future is uncertain
It is a stressful life not knowing what your next month’s salary is going to be. Since you depend on a few clients at a time, what if one of them doesn’t pay or goes nuts?
It just happened to me that I made a bad decision to trust and condone my client yet got hit by stiffness and unscrupulousness when I needed the favor back and lost my salary for two months, at Christmas time… That’s not fun at all yet it’s one of the things you expose yourself to.
You also need to be scavenging for new projects constantly, we Web Developers are in a great market where there’s a lot of jobs, yet it is hard to find worthy opportunities, there is a lot of garbage out there.
There’s also the fear of getting ill and not being able to work, if you break a hand, that’s 6 weeks with a plaster that will make you half productive.
You will never get rich
You don’t earn significantly more than what you could be earning doing something else, you are exchanging your time for money and that is linear, you can raise your rates but will soon find there’s a roof in how much you can take home every month. You also have the option to hire a team and scale your business but without a huge capital investment, the chances of sustainability and success are nearly as risky as building your own startup or playing at the casino.
The guys from Silktide built a team and went big, yet after 10 years they quit.
There’s not a lot of profit margin when looking at Outsourcing as a business model
Even when you streamline the whole process you will still need to invest a lot of your time acting as the middleman. That’s something you may not be really interested in, some developers find it boring.
You have a lot of competition
There’s few great developers out there and you are one of them, problem is that clients don’t have a clue how to test that, so usually the developer with the best sales pitch and price will get the gig. So you may need to choose between investing your time in learning Web Development or improving your Sales skills.
You end up working more hours than a normal person
I’ve tried to be super disciplined and teach my clients about my working hours, yet there’s always going to be something important they need my opinion at 9pm, on a Saturday. This doesn’t happen (as much) in normal 9-to-5 jobs.
Estimation is really, really hard
I’ve been at various companies where we worked Agile and we could provide very decent timeframes for every new project. That only happened because we knew the team and the client (Product Owner in this case) very well. I also use Agile SCRUM, even when I’m the only person in the team.
People love exact figures and it is usually the case where clients will ask for a specific number when asking How much will it cost. In my case, even when the project is incredibly well defined I find it hard to measure, the Product Owner is the client himself and each one is unique in its priorities, knowledge and communication style. Also, technology keeps evolving constantly so you will use new methodologies, languages and frameworks which will break any past estimation you had.
One piece of advice if need to give a quick quote and you always estimate too low, multiply it by 3. Another quick way and much better is to use the 3-point estimation (best+case+likely average), it’s never a surefire number but at least it’s something.
After all, you are making a bad investment
If you are a great developer, you create great and successful products. I’ve been seeing that around 1 out of 3 projects/websites I built (where there was a great team behind) have been successful over the years and are returning the investment, earning the client several times more.
So, what if instead of building something for a client for a fixed sum and then forgetting about it, I built it for myself and owned it? It’s not as easy as just building something and waiting. You need Sales, Operations and many more skills involved that I don’t have, so that’s what I am doing, I am joining a great team that complement my skills to build something from which I can reap the rewards after.
Time goes fast and there’s none to lose or wait, I hope this new venture works out, at least it should.