Imagine yourself in this situation: you are exhausted after work, laying at you cosy couch and reading a book (of course about programming!). Suddenly, you receive a message from someone you know (might be a colleague, someone from the family, whatever).
“Hi John, am I right that you are making mobile apps? I am asking because I might have met a person who is interested
in doing one.”
In the blink of an eye you are full of energy. “
Yes, finally side project has found me!” You are turning on the computer, opening your IDE and… wait.
What exactly should I do? What are clients requirements? What is the specification? How much will I get for
this? How much money do I want?
This is what happened to me twice. This is also the reason why I am writing this article — I hope someone will
read this and won’t repeat my mistakes.
My first side-project
I was writing with a designer asking for UI/UX tips so I can make the designs for my app. Suddenly, he asked
me what am I doing in life and do I want to take a side project. I answered that I am a mobile app developer
and might want to talk about this project. After sending the email, I was behaving exactly the same as described
above. Full of energy, happy, ready to work. One thing I wasn’t thinking about was the money. When the client
asked how much I would want, I wasn’t thinking at all. Just said: “3000PLN” (less than 1000$). I was happy.
I had a side project and someone was paying me the money. Sounds great?
Not necessary. After I got the designs, I noticed that there around 15 pages to make. Ok, not that much. But
none of them was having standard component. Each was having custom controls, the slider was very custom one,
everything was custom…
It took almost 3 months of after-hours work.
Let’s count that: I’ve spent on this project ~192h (
4[months] * 4 [weeks] * 16 [hours — 10h in weekend & 6h during the week]). 3000/192 = 11PLN/1h (like
~3$). Not saying if it is much or not. What I can say, is that if I were thinking while signing the contract
I would never agree for this kind of money.
After that project, I received another message from another person. Same thing: he knows someone who would
want to make an app. He asked if I can do it and how much money would I like.
“Ha! Not this time” — I thought. I started Googling how to do a proper estimation and thinking what went
wrong in the previous side-project. I came to this list:
* I wasn’t aware of what exactly the client wants,
* I didn’t have a chance to look at the designs,
* I was taking money for a whole project, not an hour spent!
So having this in mind I’ve started answering.
“I don’t want to make it with a fixed price. Let’s do it in an AGILE way with an hourly rate.” Later, I explained
the pros of AGILE (they can change everything when they want, we can make demo’s etc.)
Also, I asked if that person has the designs so I can check them. Later, in the same message, based on the
previous mail, I estimated the whole work (creating the project, creating base classes, developing the views,
viewmodels, models, API calls etc.).
At this point, please remember to estimate everything and add additional time (for being stuck in the development,
client changing the requirements etc. — for your own sake involve everything related to the project). In this
project, I had just added additional 20% of the estimated time. In this case, the project was estimated for
only 40h. Now, after some time I can see that I’ve overestimated it. I can tell it by looking at “
Add push notifications” task. I estimated it for 12h. 12h for 2 platforms! Knowing the Firebase or OneSignal,
and how they can cause problems it looks like nearly impossible to do it in 6h per platform.
Later in this project, I added a table for a client asking him/them to fill it. It looked like this. It helps
a client to visualize the things he wants and helps me to estimate the work that needs to be done.
After that, I took the estimated hours, multiplied them by my hourly rate (you should think of yours in this
case) and wrote the
TOTAL ESTIMATED PRICE
. I also wrote the disclaimer that
this is not the price for a whole project, but only the attempt to estimate it. This price might be
bigger or smaller — this is up to the client.
Being honest, I didn’t get this project. I didn’t because it occurred that the Client didn’t have money for both
mobile app and backend (required in this case). In many cases people think that making an app isn’t that expensive.
Answering the question in the title
Personally, I believe that well-estimated project is worth effort. There is one more thing. You might need
to lower your rate because you cannot compete with bigger companies, which have many developers and do it on
a daily basis. At the same time, you need to make the rate higher than the one you have at work because you
are going to do it (the project) in your spare time. Your life would be affected by this. Probably you won’t
be able to go for a beer with you Friends on Saturday’s evening because you will have to work on Sunday. You
won’t be able to go to the cinema because you have to work on your side-project. You won’t be able to do many
other things because you have to work on your side-project.
There is a difference between project for yourself that you are doing in your spare time and a project for a
someone who is paying you (or willing to pay). The difference lays in motives. In the first case you are doing
it to improve your skills, make something useful for you and your self, to prove yourself that you can do something.
In the second some the motive behind is the money. Think how many projects did you manage to finish for yourself?
In a situation when someone is paying you to finish, there is no option that you will tell him “You know what,
I am quite bored with this project. Let’s finish it”. No way. Also, one more thing that people are forgetting
when talking about side-projects. They also have deadlines and sometimes require after-hours work. Think about
Ask yourself a question: do I really want this side project? Why do I want it? What motivates me? If you can
convince yourself than take it!
About the money
I found it hard to decide what my side-project hourly rate should be. I was sure that it should be higher than
my “normal rate”. “How much higher?” — that was the question. If you are in the same position, I’d suggest:
* Ask your managers how much money does your company take for an hour — be careful about this one. Many managers
don’t want to talk about the money they are getting for your work.
Clutch.co and find companies which are doing similar projects. Check how much money do they take for an
hour — of course, take less! You can’t compete with companies with Scrum masters, testers, many developers
and loads of other people!
google.com and google “estimate mobile app” — you should find nice calculators — this is not precisest
approach but it can give you the general view of the market. I was using this
one and this