I remember my early days of freelancing. A Malawi-stock-exchange-listed client was looking for a USSD application. “How much?” they asked. And like a rabbit in the headlights, I was frozen — calculating numbers in my head as if I was trying to solve a Rubik’s Cube blindfolded.
The Types of Projects
As a freelancer, the kind of project you might be tasked with could range from creating a simple landing page to building an entire cloud-based enterprise solution. It might be a four-page website, a dynamic eCommerce platform, or even an intricate machine learning model.
The Problem with Flat Fees
Many freelancers charge a flat fee based on the project type. For example, a four-page website might go for MK500,000, while a ten-plus-page website will cost MK1,500,000. Simple, right? Wrong! Unlike retail products, software isn’t static. It grows, changes, and occasionally throws tantrums.
Flat fees can lead to monumental frustrations. Imagine working your fingers to the bone, only to realize that your earnings are chump change compared to the hours you’ve logged. The sense of exploitation saps your morale faster than a double espresso shot.
Here’s what to do instead
Hourly rates! I know this term elicits either a knowing nod or an anxious eye-twitch from freelancers. But listen, Maestro, the hourly rate system I’m talking about here isn’t the one-size-fits-all straight jacket you might be used to. Nah, this is a bespoke suit tailored to the contours of your project—a system that considers the nuances, the highs and lows, the plot twists.
With this approach, we’re forced to break down the level of effort required for each stage of your project. Think of it as slicing your project into phases, then itemizing those slices based on how long you think each one will take. And for each of these project segments, you assign an hourly rate that captures not just your time, but also your skill, expertise, and the complexity of the task at hand.
But even before going there, we’re forced to ask all the necessary questions regarding the project impmentation. Because to come up with such a comprehensive breakdown, you should have gathered your requirements studiously.
Show me How
Enough talk. Let’s break this into a practical example. Here’s the task your client is looking for
A mobile application for a tech conference complete with a backend system to handle registrations, payments, schedule, and speaker profiles.
-
Step 1: Define Project Phases Start off by defining the main phases of your project. Think of it as the different chapters in a gripping novel. Typical phases include Planning, Backend Development, Frontend Development, Testing, and so on.
-
Step 2: Itemize Tasks Within each phase, list down the tasks you’ll be executing. Be detailed; no task is too small. It’s like listing ingredients; you don’t want to forget the salt in your stew.
-
Step 3: Estimate Time Next up, put on your future-seeing glasses. Estimate how many hours each task will take. But remember, optimism kills projects. If you think it’ll take an hour, add a safety buffer.
-
Step 4: Skill Level Multiplier Here’s where the spice comes in. For each task, assign a Skill Level Multiplier based on its complexity. This will be a factor that you’ll multiply with the hourly rate. The higher the complexity, the higher the multiplier.
-
Understand the Skill Categories First, let’s categorize skills into Basic, Intermediate, and Advanced. Basic skills are the day-one-on-the-job kinda stuff. Intermediate takes a bit more practice and experience. Advanced? Well, that’s where the Maestros like you really shine.
-
Create a Skill Level Matrix To avoid pulling numbers out of thin air, create a matrix to quantitatively assign multipliers to each skill category. For instance, Basic could have a multiplier of 1, Intermediate a 1.5, and Advanced a 2 or even higher.
-
Factor in Task Complexity But wait, it ain’t all about skill level! Take into account the complexity of the task itself. Does it require integrating multiple APIs? Is there complex data modeling involved? Add another layer to your matrix for these complexities.
-
Account for Unknowns and Risks Ah, the spicy chili flakes of project costing! Account for unknown factors and project risks. This could mean increasing your Skill Level Multiplier for tasks with higher levels of uncertainty.
-
Add an Industry Coefficient Last but definitely not least, take into account industry-specific requirements. If you’re developing for sectors like healthcare or finance, you’ve got extra regulations and security measures to think about. So go ahead, jack up that Skill Level Multiplier a notch for those industries.
-
-
Step 5: Before you go on multiplying anything, you gotta have a number to start with. So how do you get that number? Easy. Take what you think your yearly salary should be (honesty is key here), divide that by 52 weeks, and then divide that by 40 hours. Voilà, you got your base hourly rate! Oh, and calculate your tax burden and include this in your hourly rate. This could mean increasing your base rate by another 20-30%, depending on your tax laws.
-
Step 6: Calculate the Subtotal and Grand Total Last but not least, do the math! For each task, the subtotal will be Estimated Hours * (Hourly Rate * Skill Level Multiplier). Add up all these subtotals to arrive at the Grand Total.
Your Final Estimate (Quoatation)
Phase | Tasks | Estimated Hours | Skill Level Multiplier | Hourly Rate | Subtotal |
---|---|---|---|---|---|
Planning & Research | Requirement Gathering | 8 | 1 | $50 | $400 |
Market Research | 5 | 1 | $50 | $250 | |
Backend Development | User Registration | 20 | 1.5 | $50 | $1,500 |
Payment Integration | 15 | 2 | $50 | $1,500 | |
Speaker Profiles | 10 | 1 | $50 | $500 | |
Event Schedule | 12 | 1 | $50 | $600 | |
Registration CRUD | 10 | 1.5 | $50 | $750 | |
Authentication | 12 | 2 | $50 | $1,200 | |
Schedule CRUD | 8 | 1 | $50 | $400 | |
Speaker CRUD | 9 | 1.5 | $50 | $675 | |
Frontend Development | UI/UX Design | 20 | 1.5 | $50 | $1,500 |
Implementing Design to Code | 25 | 1 | $50 | $1,250 | |
Speaker Details Screen | 12 | 1 | $50 | $600 | |
Speaker Landing Screen | 10 | 1.5 | $50 | $750 | |
Registration Screen | 8 | 1 | $50 | $400 | |
Schedule Screen | 8 | 1.5 | $50 | $600 | |
Payment Screen | 8 | 1.5 | $50 | $600 | |
Testing | Unit Testing | 10 | 1 | $50 | $500 |
User Acceptance Testing | 8 | 1 | $50 | $400 | |
Project Management | Weekly Meetings | 10 | 1 | $40 | $400 |
Deployment | Server Setup | 5 | 2 | $60 | $600 |
Load Testing | 5 | 2 | $60 | $600 | |
CI/CD | Pipeline Configuration | 6 | 2 | $60 | $720 |
Automated Testing Setup | 4 | 2 | $60 | $480 | |
Miscellaneous Costs | Unexpected Hurdles | 10 | 1.5 | $50 | $750 |
Total | 281 | $20,755 |
The Benefits
This method doesn’t just calculate the monetary cost; it also spells out the time investment. Plus, it gives your client a crystal-clear breakdown of where their money’s going. And when (not if, when) they want to negotiate, you can easily point out which parts of the project could be trimmed, helping you reduce cost AND workload.
The Caveats
No system is foolproof. You’re bound to underestimate the level of effort for some tasks. However, this method provides both you and your client with maximum transparency.
Conclusion
This approach has minimized my project-related frustrations. I can confidently say that this method ensures that all costs are anticipated and covered.
Because let’s face it, the only surprise we want in freelancing is landing that dream client, not realizing halfway through a project that you’ve undersold yourself.
Hi 👋 I'm Jeremiah. I'm Mobile and #AI 🪄 Lead at @IremboGov by ☀️ and create https://t.co/sZ4UrAssGl by 🌙
— Chienda (@liwucodes) January 13, 2024
I love to #buildinpublic and share my failers and occasional wins on https://t.co/nAroIneVbE. Let’s #connect if interested in #softwareengineering #blockchain #startups
Stay up to date with my Posts
Get notified whenever I publish a new article concerning the latest in Software Engineering, a Youtube Video or just some thoughts about politics or Faith!
You may also be interested in
How I Accidentally became an AI Engineer
Imagine being an AI Engineer and not knowing it! In this post, I share my my experience building LLM-based applications, and how I got here in the first place.
Read More48 Hours of Pure Innovation - How Our First AI Hackathon Blew My Mind! 🚀
You know that feeling when you're about to launch something big, and your stomach is doing backflips? That was me before our first-ever AI hackathon at Irembo campus.
Read MoreFive Reasons why it's not too late to learn coding in 2021
I get a log of people asking me if it's too late to learn coding. The answer is always unequivocally no. Here are five reasons why.
Read More