Feature creep; never do work for friends?
November 24, 2008 5:20 PM   Subscribe

How do I escape from my friend's Web design project from hell?

For a lump sum, I made the mistake of offering my Web design services to a physician friend, thinking it would be a casual project lasting a few weeks, for which he would be grateful, no matter what I came up with. It has taken over half a year and I can't seem to quit it.

Because he was my friend, I didn't have him sign a contract, or set any limits on how much work I was going to do. I know, big mistake. But in the past, other friends had trusted my judgment and liked whatever I whipped up. But this guy turned out to be like TV's Monk, obsessing over every tiny little step in the process ("what if we made the buttons orange? No, I liked the red ones...what if you made that gray gradient bright blue?"), and demanding all these extra bells and whistles that you would never normally find on a blog. When I told him that Movable Type doesn't do X or Y, but that famous bloggers get away with doing it like Q and R, he would be extremely stubborn and said, "Well, I want to do it like X and Y, that's how I do things."

I tried to make him happy, regardless of the fact that I was breaking all these Web standards and just asking for trouble. At first it was a fun challenge, but later I realized I had created something out of a Charlie Kaufman movie, a growing mess of custom scripts, a Rube Goldberg device where every new mode needs bug-fixing and inspires new feature requests.

At some point you run into the fact that you have programmed something totally stupid and unworkable and incompatible with itself. The style sheet makes me want to run screaming, because he refused to accept a normal 2-column blog layout, and I granted some of his whims.

The site is perpetually in a state of being 90% done. It looks fine I guess, but he keeps asking for new features, and when I protest that they would be more work, he will interrupt: "What's so hard about that, it's just like that other thing you programmed."

It's not that he isn't a nice guy, but I don't really like how he talks to me, and I'm not sure how I let myself slip into this role where I'm feeling both guilty (at the remaining glitches in this beast) and exploited (as this guy has tried to turn every inch into a mile).

Have any of you ever found yourself in a situation like this, and what did you do to remove yourself from it?
posted by anonymous to Human Relations (34 answers total) 11 users marked this as a favorite
"Oh man, that new movable type upgrade breaks all my custom code. Guess we'll have to roll back to the default codebase! Whoops, project done, bye!"

He isn't a nice guy because he has the empathy of a lungfish. Friends don't guilt friends into never ending contract work. Declare it done, then hand him the number of somebody who works for an hourly rate, and will be glad to accommodate his ever-changing whims.
posted by benzenedream at 5:33 PM on November 24, 2008 [1 favorite]

Just say no. It's not longer profitable for you to be working on this and you're running a business, not a charity.

In the future, be careful working for doctors, lawyers or real estate agents. They all be crazy.
posted by Brandon Blatcher at 5:37 PM on November 24, 2008 [9 favorites]

The site is perpetually in a state of being 90% done. It looks fine I guess, but he keeps asking for new features, and when I protest that they would be more work, he will interrupt: "What's so hard about that, it's just like that other thing you programmed."

I'd keep it factual yet slightly informal. Note that, in essence, he has a Web site, with content, that will achieve the goals he has for such a Web site (to relay information about him, or whatever) and that you have done a lot of customization on that Web site. That much should be easy to agree on.

Then, just be straight. Say that you've spent a lot of time on it, and if he wants you to do more work on it, you will need to charge. As a physician he would not see the same patient over and over on a single fee. Likewise, you have used all of the time allotted for this project.

I would not feel guilty about the work. We have all done work from time to time that we are not proud of because we've either a) had to, or b) not been in a position to stand up for our principles. I don't think pursuing the "I'm an expert. You need to trust me, as your patients trust you as an expert." line will work here (it can with some clients) - instead you need to extricate yourself directly and in a matter-of-fact fashion. Your time is not boundless.
posted by wackybrit at 5:37 PM on November 24, 2008 [2 favorites]

Estimate how many hours you've spent on the project, and divide the lump sum you gave him by that.

Tell him that rate (I mean, it will probably work out to some piddly amount per hour to make him understand the bargain he's actually received from you), and explain that, as much as you have enjoyed working on this challenging project, you have other projects needing attention now, and need to bring this to a close.

Offer one or two very specific tasks you're willing to do to finish the project, insofar as it is finishable, and tell him that any further things he is asking for are really more in the line of hiring x professional or specialist -- not a friend who offered some general web design services for a lump sum -- and refer him to someone appropriate to work on all the bells and whistles he's after, if that's what he really wants.

He really needs to understand the value of the work you've put in, and the rate that would normally be paid for this stuff, and not keep milking you for ever more. But as long as you keep feeling guilty and avoid giving him very specific terms that will signal completion of the project, he will keep taking from you.
posted by peggynature at 5:37 PM on November 24, 2008 [13 favorites]

I bill at xx dollars per hour. From here onward, I'll give you an estimate so that you can approve work in advance.

Once he's on the clock, he'll stop.
posted by 26.2 at 5:38 PM on November 24, 2008

How much money are we talking about? Can you afford to give it back? Given that this is a friend, and depending on how much you want to keep the friend, tell him something along these lines:

"Hey, I think this project is beyond my abilities. I know a great firm (x) that does great work, or at least better than I can. It has been fun working on this project, but I've had other commitments and opportunities to attend to, that better suit my abilities. Of course I will be returning $x, I do apologize this didn't work out. I'm very busy the next couple of weeks, but let's do lunch or dinner sometime after the holidays and make sure we touch base. Thanks!"

I'm guessing a 2 week project that turned into over a year is not going to be about money, so return it. I'm also going out a limb, and I bet this guy thinks you're in on his hobby, and you're finding it fun. That's what geeks like you do, right? This is the sort of thing you think is fun. Well no, it isn't. Look if you spent over a year on this AND returned the money, that's not looking to bad to anyone, and he knows it. My guess is he doesn't know you're looking at this as a job, and more as a fun side project, and he doesn't realize how taxing this on you. Just be assertive, you'll be fine, I promise.
posted by geoff. at 5:41 PM on November 24, 2008 [1 favorite]

peggynature, pegged it.

Or name an astronomical sum to continue working. I did this on a project I hated once, and had them say "yes." When that was up, I repeated the process, and was getting way too much money for something I hated doing. Eventually I quit, because I believed that money wasn't everything, but in the short term it can make you hate things less.
posted by cjorgensen at 5:42 PM on November 24, 2008

"I love you man, but I don't have TIME to work on this any longer". Docs understand time. Time is money.
posted by rotifer at 5:46 PM on November 24, 2008

It's a shitty situation, one that I've been in but not to the same extent (with a friend of a friend, rather than a close friend). I didn't have a contract either.

I told this person that the amount of work I was doing was excessive for the given payment, and that what he realised he actually wanted was more involved than what either of us expected at the outset. I said he was free to have everything I had done so far, but if he wanted to expand it into the bigger project he now wanted he would be best hiring another designer with more experience.

As you recognise, not having a contract was a bad idea, but we're here now. Not having a contract means that there were no "limits on how much work I was going to do", but it doesn't mean you are obliged to do an unlimited amount of work, just like it wouldn't excuse you from doing no work at all. The only thing binding the two of you is the money, so without a contract and given that this is a negotation between friends (that is, I have no idea of the law in this situation) you should only be obliged to do what is reasonable. Write down a list of what you have done including timeframe, and ask him to shop that around for a quote from another professional designer. Reassure him that you're not after any extra money, rather you feel that doing any more work on the project risks making you resent him as a boss when you want to keep him as a friend.
posted by teem at 5:49 PM on November 24, 2008

I completely agree with Brandon B., and I also have to say :

Don't offer to do more work on it to finish out the non-existent contract. Trust me, he will never stop coming at you with line item lists of "tweaks" and "small fixes" that need to be done.

And don't bother trying to set up something where you bill him for future and ongoing maintenance - he'll nickel and dime you to death on that, too.
posted by HopperFan at 5:58 PM on November 24, 2008 [2 favorites]

Short of your Rube Goldberg contraption turning into either a time machine or a mind-control ray, you won't be able to exit this gracefully, ethically, and without any hard feelings on anyone's part.

You can do the painful straight talk: "Here are the ways I've violated the accessbility guidelines, which mean nothing to you, but I take as seriously in my craft as you do yours." And you look at what he does for a living and come up with what is assured to be a tenuous metaphor wherein (and let's suppose he's a plastic surgeon) you imagine yourself as this client who keeps asking for various dermabrasions, Botoxes, eyelid lifts, etc., all for free, and how hard can it be, right? And you when you get the "how hard can that be?" you can point to the chair and say, "Not very. You try."

If you're non-confrontational and comfortable lying, you could suddenly have a paying gig of utmost importance, but "here's this gal's number — she's great with blogs." Ethically, you also have to sacrifice someone.

Most risky, but somewhat entertaining is to become a complete prima donna — document every little change; have meetings to discuss colors and hold them up as swatches against other things; have him sit with you while you manually round off the corners on some icons while you say "I don't know, it looks so ... soft. Perhaps something more ... sprightly!" Bonus points for using terms from wine reviews as you do this. Be more of a pain in the hiney than he is. Pricing yourself out of range goes well with this approach, like turkey with gewurztraminer.

I've done all approaches; the last is most satisfying; the second can get you caught out but is in some respects the nicest way to do it; the first is probably the honest but most unpleasant, as Very Important People loathe having their worldview altered. You're going to have to do something you don't like in one fashion or another.
posted by adipocere at 6:01 PM on November 24, 2008 [3 favorites]

Woah, I feel for you. My father is the exact same way. He is completely computer illiterate, yet he is an extreme perfectionist. Not only when it comes to web design, but anything else, including the way he wants me to type up his emails and songs that he creates. It got so bad that he started offering me money, and I STILL refused to do any service, and I'm the type would to almost anything for money.

Currently, I just plead ignorance whenever he makes off the wall requests, and I encourage him to find other people to do computer work for him, that may have more experience than I do. It seems to be working, for now.
posted by sixcolors at 6:30 PM on November 24, 2008

Here is how two web designers handled similar problems:
Designer 1 told her client/friend that, due to pressing commitments, she could only do one more round of changes, and had the client/friend submit the proposed changes in a final email.
Designer 2 told his client/friend that he would continue to make additional changes, but would have to charge a discounted fee ($10 to several hundred, depending upon complexity) for each tweak.
Your friend is a doctor. What if a patient paid him for a procedure, then requested unlimited free follow-up exams for the next six months?
posted by terranova at 6:51 PM on November 24, 2008

Take him to a bar, get drunk and ask him if he can get your teen-aged friends free scripts for drugs. Then ask him for a loan that you need to pay your internet bill and bar tab. Puke in his Porsche on the way home (don't all doctors drive Porches?).

Seriousness aside, itemize your time. Make a "mock" invoice/bill. Show it to him.
posted by peewinkle at 6:53 PM on November 24, 2008

No need to be confrontational. Just always have more pressing things to do and never get around to giving his site any attention. He'll either get the message and stop kvetching, or not get the message and give up kvetching. Either way will work.
posted by squalor at 7:01 PM on November 24, 2008 [1 favorite]

"How about we save that for phase 2? Let me work on this for a little while without any more input from you, or I'll never finish it".

If you need to "hide" it from him for a while, you can point the domain name to an incorrect nameserver address, but set the domain name / IP correctly in your hosts file -- so that the domain name will show the site to you, but not to him nor anyone else. You should probably warn him that you're going to hide the site for a little while, while you finish it, but that it should be back up in X weeks. Then, just make it work somehow. Use a basic template, start over, finish up with the current code, whatever you need to do.

And: tell him to make a file full of requests for phase 2. Get him to write them down, clearly, for future reference. If you want, make it clear to him, also, that you might not be able to work on "phase 2" immediately, but he can always hire someone else, and he should keep his options open.

Then, once something is working, maybe he won't want to mess with it again. If he does, you can recommend someone else.
posted by amtho at 7:09 PM on November 24, 2008 [1 favorite]

But this guy turned out to be like TV's Monk, obsessing over every tiny little step in the process ("what if we made the buttons orange? No, I liked the red ones...what if you made that gray gradient bright blue?")... he would be extremely stubborn and said, "Well, I want to do it like X and Y, that's how I do things."

Aha. I see you're working for a doctor.

I have doctor friends. They spent their entire college career being told over and over again that they were the best and the brightest, the smartest of the smart. The ones who actually believed it turned into insufferable fools. Nobody ever seems to tell them "you are not an expert in everything, just medicine."

They've been the worst clients in my experience, too. I can think of FIVE examples that match the personality you describe. So I think this is more than a "don't work for friends" thing, though there is something to that, too.

You need to cut this hard. Just suggest he find someone else, because you can't work like this after all, even though you tried hard. Find some way to say it that he feels smart ("Wow, you know, I think you need someone MUCH MORE ADVANCED than me after all, sorry.") and he'll go for it.
posted by rokusan at 8:32 PM on November 24, 2008 [2 favorites]

I also have had clients in a different sort of product who are doctors.

They are, indeed, the worst clients, for all of the reasons rokusan mentions.

Extract yourself as cleanly as possible from this. Your sanity and time are worth more.
posted by Thistledown at 9:28 PM on November 24, 2008 [2 favorites]

I thought you explained it pretty well in your question. Any friend worth having should be able to understand it.

You could say, "A blog/website isn't just the sum of it's parts. Adding new components in a piecemeal fashion is increasing the complexity by a factor of n. If it's ever going to be finished you have to stop now and allow me to iron out the existing functionality."

Unfortunately, even if you finish it, I don't see how he's going to be able to maintain it without running to you all the time for help and if he gets somebody else to take it over, I'll bet that person is going to make a point of inflating their expertise by slagging the work you've done so far.
posted by bonobothegreat at 10:02 PM on November 24, 2008

The problem is really simple. You made the business decision based on the idea that he's a friend. He isn't. He's an acquaintance, who you're doing business with.

Ask him out for lunch or just schedule a meeting at his earliest open appointment - possibly lunch tomorrow..

Repeat this: "I didn't think when I offered to do this, that it was going to be much more than a couple of hours (or day) commitment. That's why you got a lump sum. I made the mistake of approaching this as if we both knew it was a low expenditure juncture.

Totally my fault; I just didn't expect endless revisions; it's not common in my field; It's sorta understood that we charge for an initial build, one set of changes; further changes cost money.

I totally respect your time, if you don't feel like that's what you want, I understand; We'll do one set of changes and then I'll move you to a per change cost."

In other words: Fire your friend or your customer.
posted by filmgeek at 10:17 PM on November 24, 2008 [1 favorite]

Not exactly your situation, but since you asked for ways to extricate yourself, this might be useful.

My guy was working (for free) on a collaborative project with some people in his industry. It was lots of fun for all involved - until they started asking him for way more than what his role dictated and the time indicated (mostly lots and lots of programming, weekend and midnight crunches, etc.) Once it started conflicting with his work, sleep and personal projects, he realized he had to bow out. He did it with a polite letter explaining what I outlined above, and saying that if they needed his help in the future, he would love to work with them again.

In your case, I would get your friends' page working, at least - can he post a blog entry? Perfect - and tell him that this beast has been lumbering along for X number of months and needs to wrap up, as you have some personal and professional commitments that will mean you can't continue working on it any longer. He might try to request some last-minute-before-you-go features, and that's up to your discretion. But he is probably just as ready to have done with it as you are. Just be professional and you should be fine.
posted by lhall at 11:24 PM on November 24, 2008

Learn to say no.
posted by dhartung at 11:39 PM on November 24, 2008

OK, this is what I call a 'zombie project'. No matter what you do it keeps plodding on, there's no escape.
In my experience, here's how you shoot it in the head:

- Draw up a sensible to-do list that'll wrap up the project so it's working and looks OK, but omit any non-essential "what if..." features.
- Work out a realistic schedule for you to do this work.
- Put all this into a document along with a list of work already done.
- Explain to the client that you need to get the project finished, for both their sake and yours, and supply the document you've created as your plan to do this. Be positive and don't blame them for it all dragging on, just emphasise moving it forward efficiently.
- State that anything more than this will be chargeable. Be polite about this but firm; any reasonable person understands you can't keep working for free forever.
- Also explain that although you'll fix any bugs in what you've produced within the first 3 months of launch, any fixes/changes/maintenance after that will also be chargeable. This is a reasonable warranty period and if you don't set a limit it'll hang over.

If they refuse to accept your plan then it'll be awkward, but in that case it was always going to get awkward at some point. You have to set fixed goals to break the cycle.
posted by malevolent at 11:50 PM on November 24, 2008 [2 favorites]

"That will cost an extra $W,XYZ.99."

"What? Why?! It's just like that other thing you made!"

"Yes but this is no longer profitable for me and what you're asking will take more time. If you want more of my time you'll have to pay for it."

End of story.

Be firm.
posted by MaxK at 1:11 AM on November 25, 2008 [3 favorites]

Ha! I started a website for my mother as a gift. It was a big mistake! I finally just fired her. I told her that should probably feel happier if she was getting real value for her money, and that she was devaluing my work because it was free. She was pretty good about it, surprisingly. But sometimes you just need to have the tough conversations.
posted by miss tea at 4:14 AM on November 25, 2008

I've been in a similar situation with some doctors I work with (pc support). After initial work they felt they were entitled to life time tech advice. I took a cue from them. When a patient calls, you can talk for 5 min, after that they say "Lets set up a consultation". Next series of questions I gave them some basic answers and then said "This is a bit out of the scope of our previous arrangement, if you'd like to proceed lets set up a consultation". Then I just ramped up my hourly rate until it was too high or enough that I didn't care about the working conditions.
posted by syntheticfaith at 4:15 AM on November 25, 2008 [2 favorites]

For a lump sum

Yeah -- the situation you're in is exactly why I always urge people to bill by the hour, not by the project. With a flat fee, all that constant dithering about colors and nitpicking about layout is free, from the client's point of view, so they have no reason to stop doing it until you force them to (at which point you end up looking like a jerk, because all they can see is that last trivial change you're refusing to do, instead of the whole list of changes leading up to your refusal.) When you bill by the hour, it's self-regulating, because they know every time they change their minds it costs them money.

There's not going to be a graceful way out of this, because you made all the classic mistakes up front: a flat fee with no clear spec on what's included. Everybody does this once, and now you have, and now you know never to do it again. So it's a win!

he keeps asking for new features, and when I protest that they would be more work, he will interrupt: "What's so hard about that, it's just like that other thing you programmed."

Your response: "The problem is not that it's hard, the problem is that it's not what I agreed to build for you for $lump_sum. If you want additional features, it's going to cost $more."

If you have trouble being confrontational, draw up a list of the things you agreed to do for that fee. Draw up the (much longer) list of things you've already done. Present them both to the client, tell them you're willing to conclude on the features already on that list but have to draw a line there.
posted by ook at 8:07 AM on November 25, 2008

If cutting him off entirely is too harsh you could suggest a feature freeze. Have him name all the stuff that needs to be fixed, but once that's fixed you're done.
posted by valadil at 8:15 AM on November 25, 2008

Some ways to say No:
"This project has gotten way bigger than I anticipated, and I no longer have the time for it. "
"I've gone so far beyond the original scope that I've lost my perspective,. I just can't continue working on it."
"Nah, I'm really done with this project."
"No, I really won't be able to implement that."
"In this economy, I really need to be focusing on paid work"
"Let's just go have a beer instead."
posted by theora55 at 8:24 AM on November 25, 2008 [1 favorite]

Have any of you ever found yourself in a situation like this, and what did you do to remove yourself from it?

Boy have I, and it's exactly what made me jump ship on freelancing. If not done right, these kind of projects can turn into total nightmares.

So what to do now? Hit the brakes. First, decide how you want this situation to end. Do you want him to pay you more for the work you're doing above and beyond what you originally talked about, or do you want out altogether while your sanity is still intact?

If you want more money, you'll need to tell him point blank. Something like "I understand that these new features are very important to you, but this project has gone beyond the amount of work we initially agreed to. I am willing to do this extra work, but it will take X hours and cost $Y per hour." If he gives you a hard time about the money because you did something like it before, point out that you're charging for your skill set and the time involved to make the new feature. Don't back down. He's basically learned at this point that you're a pushover, and that a little extra griping will get him what he wants for free.

If you want out altogether (which would be my choice), you should probably brace yourself for some backlash. The problem with doing work for friends is that they think they deserve special treatment and exceptions to the rules because they're your friend. I would try to keep it as professional and non-personal as possible. "I've put in X hours on your website to date. At this point I have devoted the maximum amount of time I can to this project and I need to move on to other projects. (Optional addition: If you'd like to add new features, we can discuss them in the future when my time has freed up.)"
posted by geeky at 9:26 AM on November 25, 2008

I would say that you need to say "I can only devote another day's work or two to your project, as I'm really getting short on cash now. What final steps would you like me to work on between now and tomorrow?"

That way, you can tie up everything you need to in the event he can't/won't pay for your services. It also puts the ball in your court - you're not asking him for money. You're assuming he doesn't have it. If you don't like that approach, do what Geeky suggests and say "it'll take X hours and cost $Y per hour".

Do this sooner than later, it probably will not get any better.
posted by damnjezebel at 3:01 AM on November 26, 2008

I am a latecomer to this question, but I was in a very similar situation, only it was a family member's business site. The last straw came when they demanded some changes in the midst of grad school finals week and were upset when I didn't complete them in a timely fashion. I said look, I've been glad to help you out thus far, but I am busy with things that affect my future, and this has to be dropped lower on my priority list. In order to move this higher on my priority list, I need to charge a rate of $x per hour, because that is what my time is worth. You pay all of your other contractors, and it's only fair that you pay me for the extra hours I've put into this.

They gave me a $200 gift certificate, handed the project to someone else, and we called it even.
posted by desjardins at 5:58 PM on December 1, 2008

if he's a physician, call him up at 3am worried that bits of you mysteriously hurt and you're very anxious all the time, etc... ask for weekly checkups and generally pester his skills out of him until he starts trying to avoid you.
posted by gonzo_ID at 1:42 PM on December 26, 2008

Hey thanks for helping me fire this guy. Life is much better now.
posted by Kirklander at 3:12 PM on March 12, 2009 [3 favorites]

« Older DIY Dentistry: always a bad idea?   |   Voice Dailing Service for Blind/Disabled (US) Newer »
This thread is closed to new comments.