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.

Frequently, I have been finding myself overloaded with contracts.

Most of the time, I find myself juggling with at least 2 projects, in addition to the numerous websites I have to upkeep and perform maintenance on.

Unfortunately, many of my clients will expect updates constantly - are constantly adding more to the to-do list than any one programmer could keep up with, and freaking out because the deadline was already overdue when I started on a project.

I constantly run into the fact most clients do not really understand the amount of work that can be involved behind the scenes, especially if it is non-visually-impacting.

Does anyone know of good ways to handle these situations I might be overlooking?

share|improve this question
2  
Do you get paid for the maintenance? It sounds like the dreaded "now the site is complete, we expect you to do maintenance for free and forever" syndrome. –  Piskvor Sep 20 '10 at 11:28
    
I think ! I should have change my proffession –  Chris May 30 '11 at 9:51

7 Answers 7

At the risk of stating the obvious, the way I'd handle this is by just not taking on more contracts than I can deal with in the first place.

share|improve this answer

Charge more. Learn to say no. Get some help.

They're freaking out because they don't know what they are doing and are trying to motivate you. Every feature 'must' be included. They're all #1 priority. And they were due yesterday. Basically their boss is on their case.

Take control of the project and bring some sanity to the situation. Start with a small piece of the project. Make a plan. Set a time-frame for your development and for their part (reviews, testing, approval, etc.). When they want to change the plan, just ask them, "What other part should I remove or how far should I backup the due date?" Remind them that this is what you agreed on and you don't mind making changes, but something has to give. This should help create a history of what they should expect from you in the future.

So far, you haven't mentioned that anyone is trying to dump you. You must be doing something right or you found clients no on else wants. Maybe you could dump the clients and stick it to your competition ;)

Edit: The art of saying no is in your mind you're saying no, but don't actually use the word. Features, Time, and resources are a constant compromise. It is important to let the client know the problems and don't just assume they will expect the form to take longer to load when you add 50 more fields.

share|improve this answer
1  
And the band played "A little bit of Agile..." –  Jonathan Day Sep 20 '10 at 3:47
    
@Jonathan Day - pretty much. I would even do this with a water-fall approach; the time-frames would be a little different. –  JeffO Sep 20 '10 at 14:32

What kind of time frame (SLA) are you committing to for the updates (which are what probably hurt your productivity the most)?

If you know you have 48 hours, or maybe 2 business days, to get all the small changes done once the request is made, you can group them by client or type of request. Just knowing you have the 'wiggle room' can take off a lot of the pressure.

If they need it sooner, maybe there's an extra charge - to make them work harder to plan ahead.

You might be thinking that they wouldn't stand for it - but they do the same thing (or should) for their business... whatever the reasonable lead time is.

share|improve this answer
  • Don't take on too many jobs at once.
  • Clearly define your responsibilities from the outset.
  • Any spec additions or complications cost money.
  • Make your contract in a way that you have a hold on them.
    • take a deposit
    • you have the right to terminate if they don't respond in a timely manner
    • define their responsibilities
share|improve this answer
    
Not sure I agree with spec changes costing money especially if the client asks to remove features (OK, it could happen.). –  JeffO Sep 20 '10 at 14:43
    
I didn't mean removing features. That's fine. –  Moshe Sep 21 '10 at 0:02

In addition to the other advice offered, it's important to establish clear expectations. Preempt their concerns and questions. Educate your clients from the beginning about time and cost. Don't let them bully you into something that can't be done in a certain time frame. What's more, put it in writing in the form of a contract so that both of you can sign it. Make it clear that if a client increases scope, the cost of the project in terms of both cost and time will increase.

share|improve this answer

By fulfiling their demand. I am sorry but if you are in a service based industry then you have to do for them.

But I still agree with "Jeff O", learn to say no.

share|improve this answer
1  
Actually, I think it's more subtle than that. You need to solve their problems. This is not necessarily the same as doing exactly as they ask/demand. –  Stephen Darlington Sep 20 '10 at 11:02
    
I'll update my definition of saying no. –  JeffO Sep 20 '10 at 14:33

In addition to Jeff O's very good advice, I'd add this:

Track the client's performance as closely as they are tracking your own and incorporate it into your project planning. If it takes them 72 hours to respond to a query, push your schedule. Let them know you're doing this, and why. Don't be a jerk about it, but keep this information in front of them.

This works in two cases:

It works on clients that are playing power-tripping dominance games with you because it is the language they speak. It alerts them to the fact that you can play this game too. Unless they're very sophisticated (and not many people who play power-tripping dominance games are sophisticated, or they'd be doing something more effective), they'll see in this a fight they can't win and back off. This makes them easier to work with. I can't count the times in my career a client realized early on in a project that scapegoating me would fail and became downright cooperative. (I come by this perspective honestly; I've worked on large government IT projects where participants are often actively hostile towards one another.)

It works on clients who are genuinely interested in getting the work done quickly because it tells them exactly what they should be doing to facilitate that. These clients appreciate the fact that you're letting them be of service to the goals of the project. This makes them easier to work with.

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.