Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I'm leaving my current employer in two weeks, but have an excellent relationship with them and am somewhat emotionally attached to a project that I have developed over the last couple of years.

They've asked me if I'd be willing to contract with them to continue supporting that project.

I was thinking of proposing a monthly retainer that would assure them 5-10 hours of support, including answering support E-mails, fixing any bugs, and small stability enhancements and feature tweaks.

I haven't ever seen any mention of software developers contracting under retainer; is this done? If not, is there something that makes it is a bad idea?

share|improve this question

closed as off-topic by gnat, Snowman, MichaelT, Kilian Foth, durron597 Jul 16 at 13:55

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, Snowman, MichaelT, Kilian Foth, durron597
If this question can be reworded to fit the rules in the help center, please edit the question.

9 Answers 9

up vote 9 down vote accepted

I used to work for a small company that was on retainer for a few clients.

The way they worked it out was:

  1. There was a set number of hours per month of work.
  2. Anything besides uptime related work (i.e.- if the server went down, that was my company's cost, not the clients) was part of the allotted number of hours.
  3. If the client wanted something done that was above and beyond what would fit inside the retained hours window, that was negotiated separately.

I'll reiterate what sdg said, try to remove you emotional attachment so that they don't take advantage of you intentionally or inadvertently.

Don't guarantee a number of hours that is not workable if you get very busy with your new job.

share|improve this answer
+1 for a good, fair agreement for all parties. –  Dan Ray Feb 14 '11 at 16:49
I've agreed these contracts from the other side - pay £X for a development project and then a retainer for support/bugfix/minor tweaks/stability/compatibility with new browser releases, with a maximum number of hours / days per month covered under the retainer. Beyond that, revert to the day-rate, or renegotiate (but, critically, you're not guaranteed more than the retained hours/days of availability). –  Richard Gadsden Feb 14 '11 at 20:50

While IANAL and YMMV, I would suggest two things.

First, get over the emotional attachment as quickly as you can (yes, easy for me to say), as that may cloud your judgment going forward.

Second, would be to avoid a specific retainer type contract, and to go with a simple time-and-materials contract for work done.

What if you get a new job that entails some travel, and in a given month you are unable to fulfill your secondary commitment? (etc...)

Far better and simpler is for them to call you when they need you, and for you to have no specific contractual obligation for hours-per-month, but to just bill them as you go.

Good Luck

share|improve this answer
This would be the best approach. We have on going projects here where the previous developer is unable to assist due to being on a separate 9 month contract, leaving him only about 5 days to assist in that time. If they want you to answer emails, or fix bugs do it on time and materials! –  JonWillis Feb 14 '11 at 16:04
Make sure to set a cap, though. Don't let "time-and-materials" turn into a "second 40 hour job". –  MattC Feb 14 '11 at 16:55
Without some sort of contract you have no real protection over non payment –  Gratzy Feb 14 '11 at 17:14
@Gratzy - certainly have a business understanding; not sure you need a contract. I do a few hours, I bill you, you pay me. If the bill gets too high, I stop future work until the bill is paid. That said, the company likely would/should want a contract to enforce that they own the work products under said payment. –  sdg Feb 14 '11 at 17:55
@MattC - I guess that's up to the OP @Jay to determine how much is acceptable. :-) –  sdg Feb 14 '11 at 17:56

I don't see why you couldn't suggest this.

A few things to look out for:

  1. Make sure you log your time so that you know exactly how may hours you've used each month.
  2. Make sure there's an agreement with what to do when a) there's less than the allotted hours of work in a month and b) more than the allotted hours.

I suspect that problems with item 2. are the main reason why you don't see more of these.

share|improve this answer

I did the same thing when I left a previous employer. We defined an initial set of items that I would do and estimated how long it would take. I committed to working X# of hours a week for X# of weeks. Once the tasks were complete or the time frame was up we renegotiated the amount of time and tasks to be completed. I kept detailed records of how much time that I spent working on each item and gave him regular updates as to where I was at with things.

The main thing to keep in mind is that you want to set up the arrangement so that you are never committed to more than one month of hours at a time. This is mainly because things will come up and over time you will have less time to commit to the employer.

The main task that I performed after I left was to train my replacement in the system that I was maintaining for them. This worked out great. I did this for about 6 months until my new job took over and I no longer had any additional time to work for them.

share|improve this answer

The closest I have in practise to a retainer is a rolling invoice arrangement. I work on the client's project when there's work to do and time to do that work in, and every time I clock up 10 hours I bill for them. That's a bit more flexible on both sides than a retainer.

share|improve this answer

Retainers help give you consistent income and consistent work. Help you manage your workload better.

What are the benefits to the client: You are available to work when they need you because they have made a financial commitment you. You can give them a discount for time bought every month. 15-20% off. You (the consultant) can also look at is as a premium charged for clients that show up once a year for a few hours of work because they don't get the discount. You can give them the same discounted rate for additional hours bought that month. You can carry over time to another month but no refunds. They have to use the time. If you feel you need to give a refund, re-bill the time used in the past at the full rate and reduce the refund by the difference.

If a client is not on retainer, keep reminding them of the discount and the other services you provide that would help them.

You want to stay engaged with the client. Helping their business run smoothly and grow.

share|improve this answer

For a solo programmer, I would be concerned being full-time with another client and not believe available. But them most of my work was months at a time rather than small short jobs.

share|improve this answer

The closest thing I've done in the past is sell certain clients, that I did a lot of support work for, bundles of hours.

For instance I would sell them 100 hours of work that expired in say 6 months. They could then use those 100 hours anyway they so chose, sticking within the realm of work I do for them, anytime before they expired. They would pay for these hours upfront.

It worked well for me as opposed to having to keep creating new contracts for many small projects, and worked well for them as it gave them a fixed cost for a period of time. Not all clients like this idea, but for a few it really worked well for both of us.

share|improve this answer

I was speaking to a developer of a software company that worked with a development credit system - like bundled time. They found the approach very successful.

I have worked on a retainer several times and it seems the common client concern is not having enough work. Workloads can fluctuate. But as a freelancer, I want a positive cash-flow. I like the idea of selling bundled time.

I always use contracts. Resources like the Freelancer's Union Contractor Creator helps with some of the legal jargon but not the terms. What sort of terms/conditions do you use for the contract structure?

share|improve this answer

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