Tech Debt for Freelancer
There is no doubt as a freelancer , there will be tech debt come back to hunt us some time, it might be a wrong tools you use , wrong platform you deploy or even wrong code that you write due to time constraints.
For me, recently I have just pay back one of my biggest tech debt in my entire 3 year plus freelance life, what I did is spending 2 month plus rebuild the 80% of the system for free. so what happen on this is when I just start as freelancer, one of my friend was offer me a project, the project spend like a few month to complete, it doesn’t justify the effort I put in and the money I m getting, but I still feel thankful for this first project not only it become my first income job , it also let me learn a lot to avoid poor judgement on project in future.
So after the project is completed initially , there is a lot of conflict within the system, it was like 50% due to poor communication , which cause the outcome didn’t really meet with his expectation , another 50% due to lack of experience, instead of build from scratch I choose a CMS to customise, I was thinking the budget is kind of limited and if I customise on top of the CMS, the budget should be enough to cover.
So the rest are history , the project go lives with quite a lot of problem , the architecture I purpose doesn’t really working well, I spent lots of time to support and debug. I been suggested to my friend to rebuild with a discount rate, but I guess he lost confidence on me or he just don’t want to waste any more budget on it, just pushing me to keep fixing the poor design system. At the end I decide although not 100% is my fault but it is due to my decision which causing all these problem , I take the opportunity this year when I m stop taking in any project to welcome my little one, rebuild the project on Laravel and build from scratch for free.
Something that I learn through this project
- Try not to take project from friend, if the project turn sour , it might affect the friendship.
- Try to communicate well for the project, confirm what the client really want.
- Understand what the client want for the end result, then purpose the solutions.
- Build the system with the mindset how can I expand this in future.
- Need to judge nicely when to build from scratch , when to just customize.
I know there is freelancer that just run away when the project done, I m proud that I didn’t , I also proud that I have a chance to make up my mistake , I don’t plan to continue work with my friend on this, at least I feel no more guilty when I think about this project.