I get asked a lot by fellow programmers, who know I run a software business, about how much they should charge for a software project. The answer is mostly, it depends. There are several ways to determine how much to charge for a software project. There are pros and cons for each method and some methods are more suitable than others depending on what your clients need and the nature of the project.
Charge by time
The first and the most common way to charge for software projects is to charge by time. You set an hourly or day rate and the client buys your time. Personally, this is my least favorite way to charge. However, I still do charge using this method for some projects as those circumstances require it.
Let's say for a moment that you need to charge on a time basis. The question that gets asked often is how much should I charge per hour/day. What most people would do is they "look at the market rate" and charge based on their amount of experience? I dislike the idea of the market determining my rate. It is not to say that it's totally bad, but there are much better ways to determine your rate.
A question that you would be better asking is how much do you want to make. A simple example is, say you want to make $50,000 a year. You divide the number up by 12 months, 22 working days a month, and 8 hours a day, and you would come to an hourly rate of about $23/hour. Something that would require a bit more advanced calculation is to take into account the downtime when you do not have any projects, or are on vacation, but I won't get into that.
However, I dislike this way of charging for several reasons. Firstly, it ties the amount of money you can make with your time. You are not paid unless you are working and the amount you are able to make is capped by the amount of time you have. Besides that, it provides no incentive for you to work faster which is bad for both you and your client.
There are certain cases where this method is required. It is when you and your clients are not sure of the project requirements. Therefore, a flexible term such as this is required.
- Good for projects where the requirements are unclear or changing
- The money you make is tied to your time, your not earning if you are not working
- Earning is capped by your time
- No incentive to work faster
Charge by project
The next best method, I think, is to charge by the project. This method solves the downside of charging by time. In the end, you are selling the final outcome instead of your time. It solves the lack of incentive for you to work faster which is beneficial to you and your clients.
The way to determine the price of a project it by estimating the total time required for a project. This requires you to have some project experience to do. First, gather the exact requirements for a project. Then, break the task down in the days and determine the number of days you would require to deliver the project. Take your daily rate (same method of calculation as above) and multiply it by the number of days it takes to complete the project. You will get the total cost of the project.
The problem with this method is that the project requires very clear requirements from the beginning and has almost no room for changes in the middle. Besides that, the actual project time may exceed the estimated time and it provides you with no compensation for the extra work. Therefore, if requirements are not clear, you are better off with charging on a time basis.
- Provides incentive to work faster
- Requires clear requirements
- Not flexible
- Cost can be incorrectly estimated
Charge by value
This is the last and my absolute favorite way of charging. With this method, the amount you can make is no longer tied to how much you want to make. It is tied to how much value you can provide, or in other words how much you can help your clients make. The great thing about this method is that it can make you the most money and is the easiest to sell.
The first thing you do is ask a lot of questions and determine the value you are providing with the project.
- How much money will it make them?
- How much time/trouble/money will it save them?
The reason I say that this is the easiest to sell is that now you would be more focused on the value or ROI you are providing, rather than the time you are giving. Business value is a much better proposition to a customer than time and expertise.
This is the method used to determine price by many of the major consulting firms. They are able to charge a large amount is because they understand the value they are providing is far greater than the price that they are charging.
How to charge by value is a long subject and is better detailed on a post on its own. However, I'd assume that you get the idea and I would highly recommend you to use this method of charging for any of your future prospects.
- No earning cap
- Focused on value, easy to sell
- Not tied to time
- Requires a good understanding of the customer business