I decided to tell you a story about the dark ages of my professional carrier. I was still studying at university and I decided that I can earn some extra cash when I start creating simple websites or applications for local businesses. This was quite solid business plan. A lot of developers think that in this world only exists big enterprise applications. But for each enterprise application there might be thousands of small local businesses that need a simple webpage with contact information because nowadays if google won’t find you, you don’t exist. So I went to local Trade Licensing Office paid 5 euros and got my license! Great! I’ve got also great catchy name — PK Designs. My family has small accounting business so I said to my mum to advertise my cool services to her clients. After a while I got some projects. Nothing big, mostly static websites. So these were my first steps as a freelancer.
If you got this far you probably realized I will not talk about some contractors that are pretty much full time developers on projects with only difference that they send invoices to their company instead of getting regular pay. My article is about lone wolf surrounded by small businessmen that don’t know anything about programming.
If you are not a freelancer you probably see only good things about this job. As the word freelancer suggest you are free: you are free to choose your work time (like work whole night and then sleep till noon), you are free to set your hour rate (and ask for something you will do in 2 hours 200 euros), you are free to choose where you want to work (in bed, in the cafeteria, in park), you are free to use technology to use (you want to use haskell? go on…), you are free to choose dress code (pajamas ? ok…), you can choose which projects have perspective for you and which do not (yack that’s jQuery? How about no…), you can optimize your taxes (this is related to my country and the main reason why many of my colleagues are contractors), etc. This looks perfect, does it not?
NO!!! Because that is just bullshit. Let’s see how it is in real life. You are free to choose your work time. You don’t need to work from 9 to 5. You have to work always! Clients decides that wants to complain about some feature at 10PM? You have to pick it up and listen to his hour complaints that are not really your fault because you did not cause an outage of hosting provider. Do you get email at 6AM that some value is incorrect that was imported in overnight process? Yes you have to fix it asap because then he will maybe lose 2 euros if somebody would order that item at 7AM during work day. And this is only my experience but I suspect that clients have 6th sense how much work load you have. It can be that 3 weeks you don’t have anything to do and only think about how much money you can earn as a street performer. And then all clients will write to you in the same day with most urgent matters that needed to be implemented yesterday and you just say goodbye to your sleep, to your girlfriend, to the outside world and work day and night to make it asap. And do you think clients will be at least grateful for it? Don’t be ridiculous. You will probably get their ironic: “Oh, finally…” And I did not even touch the vacation topic. Shortly you have no vacation. Once client informed me how disappointed he is with me just because I said no to work at 10PM on Christmas Eve.
You are freely set your hour rate so reflects how much you value your time. Right. No! One thing I learned about any businessmen they want to become competitors of google for the price of static website with 3 subpages. Real life example: “Do you want tests? It will take twice the time and money to do it.” “No! I will test everything manually“. You think fine he will be responsible for quality and you have hourly rates so you will charge then for bug fixing as well. But this is what will happen: 1. They will not test anything 2. They will complain how it is possible you delivered code with some minor bugs 3. How dare you to charge them for the faults you created. This happened to me multiple times so I can say this is general behavior of random client. The other thing is that you cannot charge too much because then they will ask the neighbours kid to do it. And you need to live from something. So you will ask less and hope you will reuse some stuff from previous projects and try to create a timetable with no issues. That would be fine because if you are experienced enough you can do it and still have a good profit. But clients won’t give it to you that easy. How you ask? Change requests. Yes, the application you agreed to do will be changed from roots during development. Because “I just want some button… how hard can it be?” I had a project where almost half of the budget I spent on manual import of data (that client could easily do through administration) and he was angry that all work cost 200 euros more than the initial estimation (but he did not see that the initially agreed work cost 400 euros less).
You are free to use technology you want. Well yes. If you do greenfield project. But you have to think about hosting and it’s prices. And in the end you will end up with LAMP setup because with shared hosting solutions that is the cheapest way to go. Especially if you find some hosting that has hosting in price of domain. But then you cannot be surprised that your app will be longer down then up. But if the client won’t pay 50 euros a year just to have some decent server…
And lastly you can choose projects that are interesting to you. Bullshit! You will take anything! Why? Because you need to eat. Because you need to pay rent. Because there are bills to pay. And then you will manually insert some items to someones eshop, you will for 50th time create same static landing page, you will create for 100th time contact form in php and for infinite time insert google map frame to the webpage.
By this time you probably think. “You have to be such a loser to not say no that is not part of my job. Find somebody else to do that”. Sure you can do it. But then they will find some bigger looser than me that will do everything they need and I will starve to death. So this is why client is God. You do everything he wants so he gives good references to his friends and you will get more clients like him. And that is why you have to please all his needs. That means that you need to be a specialist in almost everything. Does he need to improve performance? You need to be a database expert. Does he need to switch to cheaper hosting provider? You need to be an IT specialist. Does he need a picture for his new campaign? You need to be a senior graphic. Does he need some e-commerce feature? You need to be an accountant. Does he need more customers? You need to be SEO expert. Needless to say you cannot be an expert in everything. And you will either spend endless time to study or you will need to admit to client you need to ask different freelancer to help you. You can be sure he will question your reliability because you should know that “computer stuff”.
Well needless to say I do not work as freelancer anymore (I still maintain some apps but nothing serious). I work as a full time developer, I complain about stuff I do not like about project and I work from 9 to 5 (after 5PM work is dead to me) and leave scrum masters to handle clients. What about you? Would you still prefer freelancing? Let me know in the comments.
Thanks for reading.