Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Well, let me explain :

This has really been an issue for me, for such a long time. And what is worse - since coding is something I simply ADORE (I would definitely do it, even if there was no payment involved whatsoever..) - is that I always end up feeling somewhat awkward... Anyway...

So, here's the deal : You start working on a project, you may have something in your mind, and even if you're lucky enough and the client needs no "cost estimates" beforehand, sooner or later you'll face the ultimate dilemma of pricing your own work.


So, how do YOU do it?

  • By estimating the time you put into it? (obviously, this is not exact, 'coz perhaps a more capable coder will need much less time for the very same thing than a not-so-competent coder + even the very same coder may not "perform" equally at all times)
  • By the Lines of code you've written? (obviously, this is not a measure either : a 10-line script that does exactly the same with a 1000-line script is, at least for me, "better")
  • By taking into account the level of complexity of the project and, perhaps, how specialised the subject is?
  • By taking into account other factors? (e.g. the value of the project for your customer)
share|improve this question
1  
I'm really curious to see why this question has been downvoted... Please, if there is anything you want to say on the above, or disagree, or whatever, you could also add a comment and make this discussion a constructive thing... that's the concept... :-) –  Dr.Kameleon Mar 24 '12 at 10:08
1  
-1 see this programmers.stackexchange.com/questions/112377/… –  user774411 Mar 24 '12 at 11:14
6  
@FlagForFun Well, I'm not talking about software prices here... What I'm talking about is what factors one considers before pricing his (freelancing?) work for a specific client. Quite different things, don't you think? :-) –  Dr.Kameleon Mar 24 '12 at 11:33
3  
Remember two things: If your price is too high, they won't be able to afford you. And if your price is lower than what they think it's worth, they'll want you back for the next project, assuming you do good work. So ask for enough to make it worth your time and effort, but don't get greedy. It'll pay off in the long run. –  Mason Wheeler Apr 8 '12 at 4:16
1  

9 Answers 9

This is an intriguing question that I am sure will merit some decent responses. As a freelance developer I too am faced with this same scenario from time to time; I don't enjoy it.

When I decided that I have to become a Freelance "Professional" I made the decision to never work on a project without full communication from both myself and the client about what all the proposed system/project would be capable and responsible for.

Recently, I read an Article - http://www.smashingmagazine.com/2012/02/17/stop-writing-project-proposals/ that described to purpose of Project Evaluations and how they could help me save time and gain infrastructure in my Company by using this approach. I started writing my own Evaluations recently and I feel they have helped more than I could ever have imagined.

My Billing Approach

I have a checklist of questions that I ask potential clients which allow me to quickly assess the clients needs. From there this allows me to get information on their project that help me determine things like:

  • Will this project require me to Sub-Contract a Designer or an additional Developer?
  • Will I be in charge of their Copy and Website Content?
  • Which Platform/Software will they be using?
  • What is their Budget?
  • Do they have all of their information and ideas together in a way I can use them quickly without roadblocks throughout the project?
  • When the Project is done and I am Paid-in-full, will I be required to stay on as some sort of technical transition liaison.
  • ...

Hopefully, if the client is prepared for this stage of planning I can start working on an Evaluation immediately. While evaluating any project I often ask myself what my strong points as a developer are for this project and where my weaknesses will slow me down - this allows me to get a closer assessment to the amount of time and effort that is put into the Project.

I personally don't believe in an hourly approach by the standards of the "typical" 9-5'er who has a set amount of time he/she is responsible for working each week. Sometimes I am on fire, and other times I am sitting in front of my screen trying to keep my RSS Feeds closed.

Since using Project Evaluations, on average (for a custom WordPress site) I find myself charging between $2,500 and $3,000. This may not be as high as some of my proposals had reached in the past, however I find that I have a far higher conversion rate. I also find that my clients have become more comfortable with me as their Vendor. Either because they trust me more or they feel I took the time to explain to them what their ideas could actually represent costing them in the long run.

Great question! I look forward to some of the other responses out there.

share|improve this answer
    
Interesting points! And, btw, I don't believe in an hourly approach either... –  Dr.Kameleon Mar 24 '12 at 7:43
1  
+1 especially for the linked article –  k3b Apr 18 '12 at 5:04
1  
@David Do you charge for the evaluation? If so, how much? –  scarfridge Apr 19 '12 at 6:55
1  
@scarfridge I do, and it again depends on the scale of the project. Some Evaluations I've charged as little as $150.00 for. A few I have charged in the $750.00 to $1000.00 range. This is for a full project evaluation, many pages -- almost like a Workflow Chart. Cheers! –  David Apr 19 '12 at 15:14

The correct answer is "as much as you can get". We are after all living in a free market capitalist based economy (I am assuming that you do not live in North Korea or France :-} ) and this is how it works.

There are two pricing models for free lance work.

  1. Time and Materials. The client pays for your time and any other expenses, you deliver the work. In this model all the risk is carried by the client -- if the project takes longer the client pays more. However the work can be much more loosely specified and acceptance criteria is generally less strict.
  2. Fixed Price. Here a price is agreed for the piece of work. The client pays a fixed price usually (often in stages when various milestones are achieved). In this model the freelancer carries all the risk -- if the project takes longer you don't get paid any more. The work needs to be specified very precisely to ensure the freelancer delivers what the client wants and that the client cannot demand additional bells and whistles for no extra charge.

In either case you need to be aware of the market rates for your sort of work, and, you need to ensure the rent is paid and your expenses covered before you sign up. For time and materials type contracts there is usually a pretty set market rate in your location.

For fixed price contracts you should estimate how long it will take and work out how much you would earn if this were a time and materials job, then multiply by at least three, let the client negotiate you down by no more than a third. The rule of thumb here is if you are not embarrassed by the asking price you will probably end up making a loss. Agree to a fixed price contract only if the work can be very tightly specified with all functional and non functional requirements set out in the contract.

share|improve this answer
1  
+1 for "if you are not embarrassed by the asking price you will probably end up making a loss –  underdark Apr 21 '12 at 11:35
    
Yes, I think that being embarrassed about the price is a good way to go if you can bring yourself to go for it - I usually find that my "fair" assessment of a price is nowhere near as much as it ends up costing me in time. Realistically, every client needs to pay you enough to cover the fact that you're taking all the risk. –  Ewan Heming Apr 29 '12 at 19:17

A project evaluation is vital anytime that you cannot determine exactly how you are going to solve a particular problem in advance. Billing hourly is an option, but it really isn't a good option since it can lead to major cost over runs for the client, stalled projects and possibly non-paying clients on a portion of the contract. The alternative is a flat fee for functionality, but you can be left making very little or being liable for damages if you find yourself neck deep in what you thought was a puddle.

One benefit of a comprehensive project evaluation is that it can help you identify packaged solutions (hopefully open source) that help you fix the problem elegantly. The benefit that is a WAY larger concern is the idea of line-item or per-project pricing with uncertainty as to project scope.

The devil is often in the details on large projects that span different user types especially if you are creating complex reporting functionality. A single small expectation from the customer on delivered functionality could have you developing for an API you didn't think you'd need or completely screwed if you have environment constraints.

I recommend charging for evaluations, give them a full project spec in return. This is the workflow I follow for evaluations:

  1. Identify if the desired application is content driven or data/process driven. If it is content driven, generally start with a blue sky session or if it is data/process driven, start with interviews and process mapping.
  2. Blue sky with parties involved or interviews and process mapping.
  3. Iterate BlueSky/Process map into general spec. Get feedback.
  4. Now do the process mapping for content driven project or do bluesky for data/process driven app.
  5. Compose final spec, at this stage it should have UI reqs, user types, security profiles, schema/db needs, platform etc...
  6. Price options for customizing existing software including licensing and also a price for ground up development. See Below for details.
  7. Profit.

Pricing guidelines:

So you NEED a real interview process before you can offer a price unless it is hourly (which really doesn't happen very much on really large projects except as a service agreement tail on a project contract). One benefit of fixed pricing is that you can often make much more than your desired hourly rate if you plan right. Your agreement should be extremely strict regarding changes to functionality before project completion, any off spec should be hourly with a minimum of 2-4 hours and should be at a premium rate, payable week of. This will solve more problems for you than you know.

There are two distinctly different schools of thought on pricing work. One is from a standpoint of value to you as the developer, the other is from the standpoint of them as an organization.

Most of the time you will be determining price based upon what work is worth to you. In this case, you need a highly detailed spec and you need to be as generous as you can be with how long each individual piece of functionality will take to code. If you don't know, take a little time and research the components. This will prevent a stupid assumption from ruining a week/fortnight/eon on a problem you didn't see. Take your total hours and figure out what it is worth to you to take it on. Don't forget to consider opportunity cost (stuff you can't do) when you're pricing.

This is also your chance to avert stupid ideas from the client. Line item price stupid functions according to what it is worth for you deal with them. Either they will cut them from the project or pay you what it is worth to deal with. Or you don't have a shitty client. Win/Win/Win.

In the other paradigm of pricing, client value, it requires some degree of exclusivity. Either it is your app, or you have specialized knowledge that is rare, or otherwise the client really needs YOU. Sometimes this will happen with freelance jobs, but often these will progress from specialization and the accumulation of tools or resources. In this case, you should analyze the cost-benefit for the client and price accordingly. Some people are able to charge upwards of 200% annual realized benefit on projects, which could be a huge sum of money. You'll have to judge for yourself.

Benefit analysis can be good to land ANY deal, but it is absolutely imperative if you are pricing based upon benefit. Get metrics for time spent on task during the interview process to calculate labor based savings on projects. Use interviews to gather any information that correlates with saved time/saved expense/lost opportunity and use it to develop the benefit analysis. Obviously it can be sensitive to ask someone what they make, but questions like, 'What would you say you could generate in income for the company on average with one hour of work on your highest value task?' You have to temper the kind of numbers you get because it is a rather optimistic way to look at benefit analysis, but it helps clients understand benefits they might not otherwise expect.

Quite a lot in here about identifying the details of the project to talk a little about ways to charge, but really it is ALL about identifying the details first, unless you're getting hired to put out a fire or do something super easy.

Note on workflow:

I work differently on process/data centric apps than content driven because of stereotypical differences in emphasis. No two projects are the same, but it's a decent guideline.

Source: 10 years experience selling, designing and implementing software solutions for clients as a consultant. Probably a bit more sales focused than an average developer and a little more tech focused than an average salesmen.

P.S.

OFF SPEC WORK IS BILLABLE HOURLY AT A PREMIUM RATE WITH MINIMUM HOURS. Seriously. Save yourself a lot of pain. Have happier customers. Never end up in a clock tower with a red stapler and 400 yard scope.

Also remember when you cut a deal, if you have to short cut work, you could end up with less money AND a pissed off customer. Often times the highest paying clients are the happiest.

share|improve this answer

A basic formula for a freelancer is:

Start With : (reasonable wage for services * 1.5) + (ALL EXPENSES)
Divide By  : (reasonable billable hours per year)
=======================================================
Equals     : (reasonable cost per hour)

Thinking that you can sustain > 30 billable hours per week is a stretch. Ignoring the fact that your office is in your living room of your apartment is not a good idea. Figuring that you have a car "anyway" and not accounting for the cost of using it is also not a good idea. Another bad idea is overlooking the fact that your healthcare is provided from your spouse's job. All these things can work to your advantage, but do not ignore the actual cost.

The way a business works (in my experience) is to take whatever they are paying an employee (X) and bill (X*3) for their time. That way, X goes to the employee, X goes to the government and health care and computers and expenses, and X goes to the company (hopefully, profit).

It's not much different when freelancing. The main advantage is that you can charge less because your increase in expense is less. However, it is at best, a facade. The reason is as you grow in expeirence and clients, you will need to start having other costs, like accountants, attorneys, maybe a real office, another coder, health insurance.

Many freelancers start out and think that they can charge $25/hour, and think it is great money. Well, if you were making $15, then it is. BUT, when you need a new $3,000 computer that your last job provided, and your car breaks because you are visiting clients, then the $25 starts to look small.

As you grow in experience, you will deliver better solutions faster. But most importantly, you will be solving the problems that your clients have, and they will be happy to pay for that. (Most of them, get rid of the others).

--

The answer is not to charge as much as you can get away with. Be fair and reasonable, and you can expect to be treated the same way.

share|improve this answer

All theses are valid measurements from a technical side, end of the day what is valid is the worth of the product you create.

Say that you have did some coding to create a product.I think of the below questions that a business owner may ask to evaluate your work.

  1. How useful is the product?
  2. Did the product solved the customer problems it was supposed to solve?
  3. Did it made users life easy or hell?
  4. Can you justify the money spent on the product development?

When the business answers these questions that will decide the original utility of the cost of a software.

share|improve this answer
    
Good points! But let me ask by giving an example : let's say your making a product, that you KNOW : 1) your client is totally dependent on you (you're the only one working on that particular product from the ground-up), 2) your client will be making a 4-digit income per MONTH, at least. Would you have to price the end-product as a fraction of what will most likely make? –  Dr.Kameleon Mar 24 '12 at 7:46
    
pricing from a technical view and a business view are different. I have answered how the business will price it. Now If you want to price it you will think how many days it will take to build the software and then multiply with the daily amount. –  ManuPK Mar 26 '12 at 10:38

This is an area of our profession that bothers me more than any other. Computers and software have made several industries possible. Companies would have to hire and monitor exponentially more employees to do the same volume of work produced by our labor.

We need to financially stand up for our profession. Have you ever heard a sales person say they love talking on the phone and would do it for free? No. Because they know it would be counter-productive to asking for more compensation.

Like crabs in a bucket, we pull each other down if we don't go beyond the 40 hr work week. A carpenter may like to make wooden toys for his grandchildren is no excuse to limit his salary. You want professionalism that rivals doctors and lawyers, pay up.

It's not all about the money. It's about respect and not being taken advantage of. After a long day of work when I'm heading to a bar, you can't pay me enough to turn around and fix a bug that can wait until tomorrow. Oh, I'll think about it all night and lose some sleep over it, but doesn't excuse any expecation of heroics.

In the financial industry they charge by how much money in assets does the software manage. Cost of coding, hours, etc. does not matter. Large companies pay more to have a logo created because it is worth more (Yes, there is an expecation of more time and expertise.).

It will take some time to find your rate. When you get too many requests, start charging more.

share|improve this answer

I personally either charge a flat hourly rate that includes me doing anything for the client (thinking about his problem while at home gets billed) or I bill by the project. For that, though, I have to have complete autonomy of the implementation. I take my estimate, then double it. If they don't like it, they can go elsewhere.

share|improve this answer

There's no Black and White answer, as it has to do what the market will bear, but here's my 2 cents...

Cent 1) Start with the maximum theoretical amount that you could be entitled. This is the value the client gets without paying you anything, minus the value with cost included of the next most efficient person for the job. For example: If they get $100K of value, and the next best person gives $90K of value, and costs $50K (net $40K) then you can charge up to $60K. Note that even in the best world, these are just approximations.

Cent 2) From there it's a negotiation, but be willing to sacrifice for any positive externalities. For example: Close to home, learning a new technology, easy to work with, good reference, etc. Please note that some of these will go to your competition, so they could be driving their costs down too.

A couple things to note (2 more cents?):

1) You want to avoid pricing by the hour, but if forced you can do the above calculation and back into a rate.

2) Always remember the opportunity cost, which does require you to have an hourly rate in mind.

Good luck! If you love your job, and it's in a tough field, the money will follow.

share|improve this answer
1  
+1 Interesting approach! :-) (p.s. it's not about the "money" itself, it's about feeling OK with the whole thing) –  Dr.Kameleon Apr 26 '12 at 8:58
    
Sometimes people will male you feel guilty about not going cost plus. You shouldn't though. –  MathAttack May 14 '12 at 10:29

1. Set Hourly Rate

Think of a high number you think is fair then triple it.

2. Guesstimate number of hours

Lets say I think I'm going to take on average about 2 hours per requirement/task. I have 50 requirements/tasks. 50 x 2 = 100 hours

3. Add contingency

About 25%, more if you have no idea what you're doing, less if you've done it before.

Hourly Rate * Estimated Hours * (1+Contingency) = Estimated Cost. Simple!

The hard part comes in when dealing with issues, negotiating, change requests, discounts, deadlines, delays, etc. etc.... :/

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.