By Peter Bell

How Much Do You Want Your Clients to Care?

OK, this one goes out to anyone who develops fixed bid projects. In my experience, as I do more and more code generation, the biggest cost of developing most web applications becomes the amount of time you have to spend communicating with the clients. Because of that, it seems to me that the ideal clients are those that care about their web projects - but not too much . . .

Clients that don't care at all about their web application are seldom fun to work with. Often they won't develop content, don't think through decisions and we've found that clients without much of a commitment to their web project are those that are least likely to do the work needed to complete the project and get it live.

However, on fixed bid project we're increasingly finding that clients who care TOO much are a huge problem. We had one client recently on a project where we could have charged five times as much and still lost money. Building the application was actually quite profitable, but they kept on changing their mind, obsessing about the smallest details and sending repeated "top priority urgent" emails to follow up. I remember one email that was sent out at 6.30pm and then followed up on at 7.30am the next morning because we hadn't responded yet - it wasn't even something urgent, near to the launch date or relating to a live site. I also remember a series of emails covering all of the details of how notification emails displayed in various email clients which took a great deal of time up for an issue that usually takes very little time to handle.

The best way I've been able to view this is that most small to mid sized businesses follow the Pareto principle and care about maybe 20% of their app. They care about the cross sells but not about authentication or they care about the admin screens but not the checkout form. The 20% that each client cares about is different, but in practice you can only afford to build fixed bid sub $25k web apps if the client doesn't want to discuss every possible detail of every possible element of the project and we bid our projects on that basis.

This completely falls apart when you come across the occasional client who wants to spend all the time in the world to go through every element of the project in excruciating detail. I remember one project a while back (through a reseller so we couldn't just can them) where we had to spend over 80 hours agreeing the contracts for a project we'd estimates at about 80 man hours of effort. Obviously not one of our more profitable projects :-<

So my question to anyone who works on fixed bid projects is have you had this experience and how do you deal with it? Do you have any thoughts on pre-qualifying such clients? What questions could you ask a client to figure out upfront if they might be a pain to work with? Maybe we should add some Myers-Briggs questions to our original client intake questionnaire?

Any thoughts wildly appreciated!

Comments
"So my question to anyone who works on fixed bid projects is have you had this experience and how do you deal with it? Do you have any thoughts on pre-qualifying such clients? What questions could you ask a client to figure out upfront if they might be a pain to work with?"

I think this is one spot where agile development really shines (at least the iterative and incremental part of it).

I haven't found a way to pre-qualify clients, but the first time you show them the application will almost certainly reveal the "type" of client you're dealing with. If they can't be bothered to do iterative and incremental development, they are probably the "I care too little" type of client. So you can weed those out fairly quickly.

You want to develop a little bit, then show it to them, and discuss. The client you don't want to work with will be discussing almost entirely irrelevant details ("can we change the color, can this pixel be moved there?" On the other hand, the "good" clients will likely be discussing relevant details (perhaps some irrelevant ones too, but not overwhelmingly so). They see a little of what can be done and some things might change, some requirements might be removed, and some might be added.

Everyone will likely add things, but that's not the problem. Explaining to the client that they paid for 80 hours of work and that you are happy to accommodate changes PRIORITIZED by the client within that time frame will usually work wonders. If they can't be rational enough to see that, you probably don't want to be working with them.

You don't even need to wait a week to show them the first bit. When I was first learning about agile development my teacher told a story of a successful application he built for a client. The first demo was a window that opened up and did nothing but draw a circle. From that, requirements such as "is it measured in metric or English units? We'll need both" popped up, which were never discussed.
# Posted By Sammy Larbi | 10/10/07 9:47 AM
One thing I notice is that we often unintentionally set precedent. By that I mean we are nice and flexible on something int he beginning, which sets precedent that we will be flexible and allow changes from then on. Sometimes working with a client is like working with a dog or child. Consistency and clarity are key. If they do bad let them know right away and not get away with it. Set that precedent. :-)

Granted, it doesn't help all that much. Sometimes people live to be a pain to others.
# Posted By Joshua Cyr | 10/10/07 10:21 AM
Hi Sam,

RANT
The problem I have with Agile is selling it to small business owners. They don't care whether it takes you 50 or 500 hours - they want to know what it'll cost to build. If you say 80 hours, how do they know how good you are? How fast you are? What if you build a site that doesn't meet their needs - they're going to have to still pay for your time even though they didn't get value out of it?

We all know agile is "right", but if I had the choice between two designers - one of which would give me a fixed price for work and the other that would estimate, unless I had worked with the designers before, I'd be sorely tempted to take the fixed bid. There is a reason that even attorneys are moving towards fixed bids for some services - people want the service provider to take the risk.

Imagine I told you I'd build you a house for $250k. You pay me, then I start building and we'll see how much house you get depending on how many hours it takes us to build it. My best guess is you'll have 1-2 bathrooms. and the kitchen should be in but I'm not sure whether we'll have budget for white goods or not. And we MAY get to the in ground swimming pool, but I won't really know until we see how long it takes to pave the driveway.

All reasonable comments, but would you REALLY buy a house that way from someone you didn't know?!
END RANT
# Posted By Peter Bell | 10/10/07 10:24 AM
@Sam, Rant aside, I agree 1000% that Agile provides a better experience for clients and developers alike. I still have no idea how to sell it in a competitive, small business situation to someone who doesn't have sufficient experience of app design to "get" it . . .

@Joshua, That is a good point. The consistency issue is a big one. We always try to make EVERYTHING appear to be a big thing - sets expectations properly!
# Posted By Peter Bell | 10/10/07 10:27 AM
@Joshua and Sam, As you look back, when was the first time you knew a client was going to be a pain? What questions might have elicited that in the quote phase? Any thoughts?
# Posted By Peter Bell | 10/10/07 10:38 AM
A combination of them wanting lots of conference calls, committees, etc. and seemingly making their specs up on the fly when talking to you. That usually means that they will have meetings later to review the specs, and revise them, then the person who missed that meeting will ask to meet again for their input and specs will revise again. All of this AFTER you started working on the code. If I suspect they are not firm with anything I make sure they know the term change order, and what that means, and that once they send me specs / quote that they sign off on it. Getting that signature helps a lot.
# Posted By Joshua Cyr | 10/10/07 10:42 AM
Signature is a good idea. Also we require a single point person with authority for the site - dealing with more than one contact makes the project substantially bigger . . .
# Posted By Peter Bell | 10/10/07 11:28 AM
I find it pretty difficult to judge a client up front if you haven't worked with them before or have the ability to talk to service providers they've worked with in the past. Because of that, I try to spend some time with them pre-commitment to find out their goals, what features they would like, etc to try and get a better 'feel' on them. I would maybe suggest (if you don't already do it) to supplement the client intake form with sessions before hand to hear from them first hand what there goals, expectations, etc are. You might be able to pick up on subtleties that would elude to the type of client they will be. Also, I would be very upfront in telling them that you have a pricing structure around change and that anything not discussed before hand or is an obvious derivation from what was discuss, carries a cost. If you tell a client upfront that changing their mind has monetary consequences I find that they typically are less likely to give you the run around. (thats my 2 cents)
# Posted By Justin | 10/10/07 12:56 PM
@Justin, Yep, I think expectation management is a big piece of this and we defnitely speak with a client to elicit their requirements pre-quote. I'm just wondering very specifically what you might hear, see or experience that might cause you during such a meeting to say "this is probably going to be a diffictul client". What are the specific cues you might look for?
# Posted By Peter Bell | 10/10/07 1:30 PM
Peter,

The problem with fixed bids is that inevitably you have to plan for the unplanned and increase costs that way (or...) If you don't you are likely to be stuck with operating at a loss. However, I don't see why agile (more specifically iterative development) wouldn't allow that to work. You will complete the requested functionality in 80 hours (to keep our example numbers the same), but you refuse to abide by that obviously if the client wants to spend his 80 hours on something else (change his mind).

Not to mention that if they feel they have a good enough product after 40 hours, they're free to stop.

But even if you don't buy into that and how it might work for small projects (which, since they are small are easier to estimate in greater detail anyway), let me ask you about that house: what if after you agreed to build it I told you I wanted it built on top of a mountain, or in a swamp?

Would the price change, or would you just eat the loss?

I know too well the problems with fixed bid, low amount projects. I'm not saying the iterative nature of agile development is a panacea. But, it certainly helps me tell who the bad clients are going to be, and you can tell them one of three things when you find out:

1) you don't want to work with them because you will likely lose money
2) you'd love to work with them, but given your experience with clients who request similar changes, you are unlikely to complete it in 80 hours so they will have to pay for extra hours or they will have to change their ways
3) you'd love to work with them, even at a loss

I'd try number 2 first, and if they don't agree to be better clients or increase price (or decrease quality or scope), then go to number 1. I've been in situations where I've taken number 3 when times were slow, or for projects I personally cared about or had a stake in. But if I've don't absolutely NEED the work, I'd be loathe to pick up one of those projects again.

I don't know the source, but there's a triangle of quallity-scope-cost. The customer gets to control the two sides that are most important to them. You control the 3rd.
# Posted By Sammy Larbi | 10/10/07 3:31 PM
Sorry, it was resources-scope-schedule. Scott Ambler talks about it here:
http://www.ambysoft.com/essays/brokenTriangle.html...
# Posted By Sammy Larbi | 10/10/07 3:36 PM
Hi Sam,

I've read Scotts input on this and I don't disagree with either Scott or yourself. My question doesn't relate to the best approach or the best value which I agree 100% is the agile approach. It relates to the sales process. In my experience, if you're dealing with small businesses and websites, I've traditionally had a hard time coming up with a way of communicating agile that would be competitive against a pitch for a fixed bid project. Obviously you can sell the story (which is true) that with fixed price, fixed scope, the only variable left is quality, so you're going to be unhappy with what you get. I'm still not convinced that most clients would buy that - even though it happens to be true.
# Posted By Peter Bell | 10/10/07 4:13 PM
Well, you've already fixed the quality when you bid. Assuming you've bid an appropriate amount for the quality you plan to give them and it is decent, you shouldn't have any problems.

In your first demo (which should be quite small), if they turn out to be the type of client that looks to be troublesome, then you can bring out the triangle and explain to them how it works. After that discussion you examine your options.

As a side thought, executable specs should would be nice here. =)
# Posted By Sammy Larbi | 10/10/07 4:46 PM
Yeah - executable specs drives a lot of this. Just trying to get a handle on the cost of communications and the right way to position/market this.
# Posted By Peter Bell | 10/10/07 5:01 PM
The issue of course is that I want to determine what kind of client they are BEFORE I start to work. There have to be specific questions to ask - just trying to figure out what they are.
# Posted By Peter Bell | 10/10/07 5:02 PM
That's where the circle story comes in - you do a tiny amount of work - less than contract negotiation / requirements gathering. I'm talking miniscule - so small you may not even consider it work.
# Posted By Sammy Larbi | 10/10/07 5:39 PM
That may very well be it . . .
# Posted By Peter Bell | 10/10/07 5:58 PM
Others already said it: clients that spend copious amounts of time on things like "I want this in blue" or "that font HAS to be bigger", then change their minds later, and only seem to focus on that kind of cosmetic detail, are dangerous. They're the kind that will all of a sudden tell you they're not satisfied when the project is 90% done.
# Posted By Thomas Messier | 10/11/07 8:42 AM
@Thomas, I agree - although I think that is about setting boundaries and artfully controlling the conversation. I always direct the conversation with clients as they know their business, but I know how t help them to turn their vision into code - it's what they're paying me for.
# Posted By Peter Bell | 10/11/07 8:57 AM
BlogCFC was created by Raymond Camden. This blog is running version 5.005.