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.

Possible Duplicate:
How should I charge for programming things which take two minutes to fix?

On some systems I created, every now and then I get tiny change requests from clients that are very easy for me to do, but the client can not do it themselves.

For example:

  • Hey, we made a new logo, could you please upload it to our website?
  • Can you check how many users we had this month?

Most of them basically just requires me to log on to the FTP server and upload a file which takes 2 minutes max. Sometimes even answering the email or writing the bill takes longer!

How do I charge the client for these changes? I could easily do it for free, because at the moment I don't get them frequently at all, maybe once per month. If the initial cost of the system is big it would seem like a nice gesture to the client to give and take a bit. What I'm afraid of is that they will become more and more frequent and then the client will get used to getting these changes for free. Also where do I draw the line for what to give away, 2 minutes? 5 minutes? 15 minutes? I want to be consistent in the pricing so it doesn't seem like I charge whatever I feel for at the moment.

Some ideas:

  • Charge per started hour/half hour/quarter, that is, 1 minute counts as 1 hour, 61 minutes as 2 hours (at least for the first hour).
  • Accumulate small changes into a pool of time. Instead of sending out bills for 2 minutes each they add up to a sum at the end of every 3 months or something.
  • Only charge if they want the fix NOW. Otherwise say they'll get it once I have time, within the next weeks.
  • Be an ass and pretend it's a big fix.
share|improve this question

marked as duplicate by Jarrod Roberson, gnat, ChrisF Apr 26 '12 at 19:47

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

1  
Start charging when it takes an hour/hour an a half of your time. There is no point in charging them something that takes 15 minutes; takes you more time than that just to write out the bill. –  Rook Aug 27 '11 at 11:47
4  
Classic question. Whichever model you choose, just be sure you're not working for free. If they don't pay, they won't appreciate your hard work. –  Scott Wilson Aug 27 '11 at 12:56
1  
Just work on a yearly support/maintenance charges and lay out what work will come under that. –  Pankaj Upadhyay Aug 27 '11 at 18:24
1  
this isn't specific to programming –  Jarrod Roberson Apr 26 '12 at 16:17
add comment

10 Answers

Neogitiate a maintenance/support contract or make them buy time-contingents. It's as simple as that.

Have statistics on the average amount of time you spend per month and then hand them a simple maintenance contract. That's fair.

If they don't want a contract or don't want to buy time-contingents, then charge them every once in a while for a minor task when some time has been accumluated.

However, I also agree with giving them some freebies if you have been paid generously for development. I also give our customers a small freebie every now and then to improve the relationship.

share|improve this answer
1  
I too prefer the support agreement approach to nickel and dime invoices. –  Scott Wilson Aug 27 '11 at 12:54
    
+1 this is a must. After support should always be part of the overall contract. I've usually seen clients that have opted out, come running back once the projects have been delivered wanting to "opt in" –  Darknight Aug 27 '11 at 13:51
add comment

Two things:

  1. Every application should have a section for super users who can manage it. This section is usually called management or admin, and users with enough privilege can log into it and upload the new logo or see the online users or anything of this sort. Your application probably doesn't have this section. You can make a contract to build this section, or:
  2. You can add up all these minutes till the sum gets big enough to become chargeable (for example, 2 hours).

But please, don't work for free, not because what you earn from an hour of work is a noticeable amount, but because this behavior causes customers to think that providing free support service is just a must in development field.

share|improve this answer
    
I agree with Saeed. Charge them every once in a while for a minor task, when some time has been accumulated. –  Falcon Aug 27 '11 at 12:03
    
I like the idea of generalizing the request so the task can be automated from the clients side and charge a bit more for it that one time. But these are the kind of things that are hard to predict. The client orders a system that should do X and X only, not a complete CMS. My two examples are kind of obvious to place in an admin-panel but no matter how advanced this panel is, sooner or later you are going to get small requests that step outside of what your admin panel can do anyway. –  Moomoo Aug 27 '11 at 13:10
    
In principle yes, in reality I never actually seen it work. We have had clients in the past, that didn't even know that self management functionality existed. This was simply because they never used! (I'm not going to down vote, as I agree with some points) –  Darknight Aug 27 '11 at 13:46
add comment

There's no one right answer for this. However, you have to make it clear that these things take your time and so have to be paid for in some way. Where the cut off between something that's trivial for you to do and something that will take a significant amount of time is only something that you can really decide.

However, taking your examples as a starting point it might be better for you to build admin functions into your websites so that users can do these things for themselves. This means that they won't have to bother you and you can concentrate on creating new sites and new functionality.

It could be argued that the first (uploading a new logo) should have been in the site in the first place - but that's splitting hairs - tell them that you are going add this functionality at some point but it will cost them a small one-off amount. Otherwise you'll have to charge them each time they want these things doing.

Adding functionality for the second (analytics) sounds like it's a change in requirements so should be charged as a new development - or again you you'll have to charge for each request.

If you've done these things for free in the past then you'll need to tread more carefully, but if you introduce the idea that your time cost money they should understand. Also if you bring in a couple of changes at the same time (e.g. the ability to upload a new logo) then they should see the benefit of this approach.

share|improve this answer
add comment

My girlfriend has a hair dresser who insists that she comes back for free 5 minute bang trims whenever her bangs grow too long (much more often than a full hair cut). She loves her hair dresser, recommends him to friends, and tips him well whenever she needs her bangs trimmed.

Perhaps you can exploit this model.

share|improve this answer
1  
Nice, however note that in your example, the initiative comes from the hairdresser - in the OP's question, it's the other way around. Applied to the OP, it would be the OP sending an e-mail with an update on stats or offering a small tweak to the product every once in a while - or even just asking how things are going, if they're still content. The latter is actually a very pleasant thing to do, both from the customer's and one's own point of view. Who knows, from such an e-mail, a new project could just arise. –  Cthulhu Aug 27 '11 at 18:20
    
The demand model isn't the same. Hair keeps on growing at a predictable rate. The need for software support can be sporadic. –  Rog182 yesterday
add comment

The trouble with "5 minute" jobs is there is really no such thing.

By the time you get the request, open it, read it, think about it, log in, do stuff, check it.... doing ANYTHING in 5 minutes is really not going to happen.

15 minutes, perhaps.

The there is the effect on you of context switch time - the down time caused to get your mental gears changed over.

And then there is opportunity cost - the $ you are not earning by doing this stuff for free.

Put that all together, and this is costing you money. Each "5 minute" job request is probably worth around 15 to 30 minutes of real genuine chargeable time, in thinking about it, actually doing it, and the time taken off other more useful (and probably better paying) jobs.

So - charge 1/2 hour for every task as a minimum, and probably go in 15 minute increments from there.

A support agreement is a good thing to have but you still need a means of judging how to cost that agreement. The above should be a suitable basis whether you invoice each task, or you debit the outstanding amount of "support time" for a client. Do less, and you are being less than honest with yourself.

share|improve this answer
add comment

Price is defined roughly by

  • What your customer will pay for a thing or service
  • Who can provide that service at a given price

So, charge what it's worth to the customer. If you gouge them, then you risk that they may take future business elsewhere at contract renegotiation time, but you have a strong advantage of being the current service provider / incumbent. Don't underestimate how strong this is- finding a new supplier is usually a complicated process that most businesses avoid if they can. They can't switch companies as easy, so they'll be willing to pay more. Don't think for a second that if they could get the same service you provide for less money with a seamless transition that they wouldn't drop you!

The point is: just because something takes you 5 minutes does not mean it's worth a pittance. That's called profit (and sole-valuation based on hours worked is called communism).

In your particular case I'd charge monthly for metrics (want a metric? pay for a month of service that gets you X many of Y kind of reports either on demand or on a schedule). For the site upgrade/logo swap I'd charge that as a discrete activity since a smart company isn't going to change its brand logo very often.

share|improve this answer
add comment

These "5 minute changes" often involve more work than one would think. OK, changing a logo is easy, but are you sure there aren't more versions of that logo lurking around the application? What if the size they give you isn't right? What if they change their mind 4 hours later? All this stuff adds up. It can come back and bite you hard no matter how well you know your application.

If they need a change, clients should be willing to pay for it. By giving it out for free or for a very low cost, it could encourage these clients to not value your time as much as they should. Future RFQ's might get sloppy if they think that they they can just hit you up for nickel and dime changes as needed. In the end it hurts everyone involved.

Another way to think about is that the time you actually spending making a change is worth something. However, so is the ability to make it at a moment's notice at the whim of the client. I can't imagine even the most trivial change being worth less than 1-2 hours of your time. If something is so trivial it is not worth "pocket change" from a company's point of view, it probably isn't worth doing anyway (and yes, "pocket change" is a few hundred bucks).

share|improve this answer
add comment

Always remember that while it might take you 5 minutes, it took a long time for you to learn to do it in 5 minutes.

If you're doing a load of them maybe accumulate them and send an itemised invoice when it amounts to more than a couple of hours.

share|improve this answer
add comment

A lot has to do with how much of an interuption this is and what is their expectation for the timing of this change. Any level of urgency on their part or increased frequency needs to be settled.

Be upfront about charging. If they can't wait for the new logo because they want to show the site to an investor in half an hour, they should pay. If not, what is the point in picking up the phone when they call? If they don't expect you to have other clients, they need to pay you to be on call full time.

Also, try to make the billing simple on yourself. Ask them to buy a block of 5 or 10 requests. Offer a discount for them to pay up front. You don't want to keep tracking every single bill and payment for this little stuff.

This can also be a part of negotiating a large contract.

share|improve this answer
add comment

I would do occasional tiny changes for free, but make it very clear that the free maintenance is only because the changes they are asking for are tiny and infrequent, and that if they need bigger or more frequent changes then you will have to start charging a maintenance fee.

share|improve this answer
add comment

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