5 Things I Learned Working as a Freelance Developer
While working as a freelance developer can be tough in and of itself, working as a freelance developer with no prior experience in this kind of work can be quite challenging. And as someone who accepted my first freelance software project back when I was 16, I learned a few important lessons a hard way.
To save you from also making the same mistakes as I did, here are 5 things I learned working as a freelance developer:
1. Break the Project Down
Ask anyone whose job relies on planning and they'll tell you that the first step of a plan should be breaking things down into smaller, doable tasks. That way, not only the goal won't seem so huge anymore, it is also possible for you to create more reasonable estimates of when a part of your project will be finished.
For example, if you're trying to implement a blog UI, this can be broken into smaller tasks, note that these can even be broken down further if needed:
- Create a basic structure for the page
- Implement the navbar
- Implement the sidebar
- Implement the "Featured" area of the blog
- Implement a page for the posts to be read
- Implement the footer
2. Communicate as Much as Possible
When starting out my first project as a freelance software developer, I was given a gist of what my client wanted: a dashboard to manage their customers and appointments. The 16-year-old me went off just that, thinking that the process I had in mind for how that should work is the standard, to my surprise, what I ended up delivering months later was far from what my client actually wanted.
The truth is, a freelance software project requires as much (if not more) communication than a 9-5 programming job, in each step of the process, you're going to need to explain what the problem is and agree on the solution you're providing to that problem. This way, your client won't be surprised at the end of the deadline and you'll save yourself time by implementing what your client actually wants.
3. Over-Estimating Is Key
Even when I started out as a freelance software developer, I knew the industry standard for creating a website can range upwards of 3 to 6 months. But the over-confident me provided a 1-month deadline from start to finish. And of course, that deadline was delayed over and over until the whole project was dropped.
It can seem unrealistic to provide deadlines that are farther than you think are needed. But the truth is, there are too many things that can go wrong and cause you to miss a deadline. Be it a new programming concept that you have to implement but can't get yourself to learn quickly, or the fact that your client asks for a significant change in the middle of the process. (And trust me, they will).
As a rule of thumb, I try to create feasible deadline estimates by over-estimating and imagining the worst possible scenario, even going as far as doubling how long I think the project will take.
4. Avoid Over-Working
This is more of a soft-skill/life-management advice but I feel like it should be included here anyway. As a freelance developer, you're not usually bound by strict working hours and that may lead you to sacrifice your own health (mentally and physically) for the process.
As I continued down the freelancing path, it was made rather clear to me that if not regulated, I would keep working until I'm so burnt-out I can't work on the project anymore. So my advice on this is: Take a few days off each week and account for this in your deadlines. You should also avoid working more than a reasonable amount of hours in a day. This may feel irresponsible but in the long run, it will help you stick through the project even on the hard days.
5. Pay Close Attention to the Legal Matters
Through my first freelance projects, I learned that a binding contract is a double-edged sword to every project. On the one hand, it provides a legal baseline for you to make sure you'll be getting paid once you fulfill a set of (well-defined) goals. On the other hand, if not carefully crafted, can put you in more legal trouble than you need.
At least for me, it has been a convention for the client to propose a contract themselves, however, using a service like PeoplePerHour to take care of this for you, or hiring your own lawyer can also be a valuable choice to go for.
Also, remember that in many countries, income earned through freelancing is regulated and taxed. So you will need to consult a professional accountant for that before the payments roll in.
Thank you for reading through my first post on DigitalMikey, what experience have you had with freelancing that is worth mentioning? Consider commenting below!