DEV Community

loading...
Cover image for 5 Key Takeaways from my First Freelance Project

5 Key Takeaways from my First Freelance Project

itsnitinr profile image Nitin Ranganath ・4 min read

Getting your first client as a freelancer is usually a giant stepping stone that a lot of the developers, especially the newer ones, look forward to. The satisfaction and confidence you receive after successfully building an actual product that might be used by hundreds or even thousands of users is unmatched and makes all your hard work worth it. I'm grateful to have been on that path recently after building an e-commerce platform for a PCB manufacturing startup and I'd love to share some of my insights and tips that could help you make the most out of your first freelance job. Without further ado, here are five of my key takeaways:

Don't Underestimate Yourself

While this may also be interpreted as trusting in yourself and the skills you've acquired in the past few months or years, what I really mean to convey is that don't undersell yourself just because you're new. It is undeniable that you may lack professional experience as you're beginning but that does not make you any less professional in terms of your code and the efforts you'll be putting in. Yes, you may be paid lesser than an experienced freelance developer and that's totally fine. It may be difficult to strike the perfect deal but make sure the project you're taking on is worth your time and efforts.

From my experience, the excitement of learning and implementing new things was more fruitful to me more than the paycheck. Think over the project requirements, devise a plan, and don't be hesitant in asking for what you feel you deserve. That being said, pay emphasis on the things you'll be learning along the way but don't let yourself be exploited just to get that client you've been waiting for.

Lay Down the Deliverables

I find it really essential to let your client know exactly what you'll be providing them in the beginning itself to avoid unexpected surprises later. Create a concise document, write down the features and functionalities you'll be implementing and share them with your client. This is something I regret not doing. Few weeks into the project, I was asked to implement some features I wasn't expecting.

Albeit a great learning experience, it helps to know these things in advance to properly plan and execute them to the fullest of your capabilities. Moreover, you can keep this document as a reference for yourself to keep track of the things you've completed and yet to do.

Break Down The Project Into Milestones

You must've heard quite a lot about breaking down tasks into smaller chunks or subtasks. The same principle applies here. This makes the project less overwhelming and less intimidating, allowing you to focus on a particular task at any given time. A simple example would be to dissect the project you'll be building into features and functionalities like authentication and further breaking it down into frontend (pages, components, state management) and backend (routes, controllers, models) tasks.

You can also use a project management tool like Trello or Notion to keep track of tasks to do, in progress, to design, to test, and whatever else feels appropriate. Combine all the related tasks into milestones. If possible, you can structure your payouts in such a way that you get paid a fraction of the total amount after achieving each milestone.

Communication, really, is the key

The heading seems pretty self-explanatory for this one. However, people tend to undervalue this particular statement. Right from the start, I maintained professional but friendly communication with my client on an instant messaging platform. In case you're skeptical about sharing your phone number, platforms like Discord, Telegram, or Slack are perfect for such use-cases. Even a simple e-mail communication is much better than no or rare communication between you and your client.

The reason I included this as a key takeaway is that this communication helped me put worth my own ideas, implementations and even revise my client's plans in a better way. This shows that you have a positive attitude and interest towards the projects and clients will genuinely appreciate this. Moreover, the chances of getting further opportunities and referrals from them are pretty high too.

Don't Shy Away From Asking for a Testimonial

Once you complete the project successfully, I would highly recommend you ask your client for their experience working with you and a small testimonial regarding the same. I'm sure that most of the clients would gladly agree to it. **Having a well-written and genuine testimonial alongside the projects section of your portfolio enhances it by a great margin **and leads to more opportunities in the future. It's also great for identifying the areas in which you can further improve.

More than adding credibility to your skills and portfolio, receiving positive feedback truly sparks happiness for the hard work you've been putting in for weeks or months. And in the end, being able to help the people around you through your skills and knowledge might just be what truly matters.


So that was some of the lessons I've learned from my first freelance project. Did I miss out on anything? Want to share your first freelance experience or leave some feedback? Drop a comment down below or tweet it to me.

Discussion (6)

pic
Editor guide
Collapse
rahoulb profile image
Rahoul Baruah

One additional point - ask “what results did you get?” when asking for the testimonial. That way other potential clients can see how important the work you have done is

Collapse
taikedz profile image
Tai Kedzierski • Edited

I think you are writing the effect of obtaining testimoinal - you can ask what your customer gained as a result of your work, but bear in mind that if you quote them on this, you do need their consent to make public that they engaged you for the work (can incur accusations of "false endorsement", nevermind representation/misrepresentation laws, whcih differ between countries).

Collapse
taikedz profile image
Tai Kedzierski

Spot on. This is advice I've given many times on the back of my own experience even in corporate inter-team environments where the "customer" is "another team."

It is vital to make sure you define the scope of the project/task, and its deliverables, and clearly point out any new requiremetns later on that are not within scope. Not only can you keep to the stated scope, but if new things come in - especially through factors outside your control - you negotiate accordingly. The brief time I went into contracting, this is something that really bit me, and even today in corporate settings I have to keep it in mind. Where "dollar" is the important factor for contractors, "ability to deliver other features" is what is negotiated within corporations.

In our environment, I put emphasis on

  • Acceptance criteria (when the project's requirements as stated are effectively satisfied)
  • Definition of Done (what meta-requirements are needed for scope to be completed, e.g. documentation, handovers, presentations, etc)
  • Scope of responsibility (what specifically would fall outside of the scope of the project, and what ultimately may yet be considered within-scope)

Also, sometimes things that affect the initial premises/assumptions of your project may fall within scope, calling on your adaptability. It happens - but your time (or other dependencies/projects) is still subject to the base rule: it's extra, negotiate the way forward. Don't be a super-hero by tanking the effort. If you said "it will take X days" and a new requirement pushes that out, re-negotiate the duration - and the pay.

Set the scope, and do not stunt your other projects just because others have new, unforseen requirements. They are under pressure, and so are you. Set scope, negotiate, and set expectations.

Collapse
itsnitinr profile image
Collapse
bhavesh392 profile image
Bhavesh⚡

How did you get the client?

Collapse
itsnitinr profile image
Nitin Ranganath Author

Through a mutual friend.