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.

 

Share it with your friends, thanks !
Share on FacebookTweet about this on TwitterShare on Google+Share on TumblrBuffer this pagePin on PinterestEmail this to someone

You may also like...

  • Good sharing. Instead of running away after a project is completed, you have the courage to face the mistakes you made in the past and fixed it. This is a really great learning experience. “To build from scratch or customise?”, this is really important question, and it have implications.

    From experience, we know that there will be changes during course of development. Some time, we discover that what we build is not what client want. During early stage of development, I also try my best not to make assumptions and design for flexibility whenever possible. It might take extra effort upfront, but it is definitely better than rewriting large portion of code toward/after the end project.