I like to build stuff in my free time, and I have coded several websites for stuff I am part of. I've build a family webzone where my family can log in, and I've build the webportal of my current hobby, the 501st legion. All are custom created webapps, and I've learned a lot building this stuff. When I look at them now, it's all crappy and not enterprisy of course, but oh well, who cares :)..
From time to time friends relatives and acquaintances see these websites, and since they don't know anyone who can do these kind of things, they ask me to build a website for their newly fangled business plan as well. Normally they expect me to do it for free, or a few euros, or some beer.
I've done some websites in the past, but it almost always backfired. They expect it to be done in several days, which is quite hard because I work a full time job. Since their (core) business depends on it, people start getting annoyed that you take so long to create a custom webapp for them. Finally when the project gets finished, they expect me to maintain it until the end of days, even calling me at work to say if and when the webapp does not work.
When I try to get out of it, I can't, because I do not know anyone who would support my custom crappy webapp. So they will have to invest in some third party to build it all over again, which in the end usually fails because of budget or them having no clue what to do.
It's usually pretty ungrateful, and adds up to much irritations on both ends, usually ending in broken friendships. Which is really a shame.
So my question is...
How do I politely say 'no' to building requests from friends, relatives and acquaintances without hurting their feelings?
PS: If this is not a question for SO, then I apologize beforehand! :)
First of all, thank you all for taking your time to answer, and give your point of view on my question. I guess its a problem many of us have to deal with. It's also a pretty difficult problem, as I see it, because we like to tinker with code in our free time, so people might mistake that for that we would like to work on their projects. Also, these people are people you care about, and that makes it difficult.
Although the question got closed twice now, I've learned from your answers and I am glad I've asked it. Since we are all programmers we like to think in extremes, so I have extracted two entire opposites from your answers, and I think these will help anyone struggling with this.
1# Do it right: The first option is doing it right. Let them pay you for a mates fare, make up good estimates, and do the whole thing according to the book. Plus: You gain a nice assignment, and get payed like you should, and your friend gets a nice product. Negative: When the project fails, you put your friendship on the line, and is it really worth those few hunderd bucks?
Should you do it for free? Probably not, because you would not only not receive the plus of this option, but most likely will experience the negatives.
Is it rude to ask money of relatives? It probably is, but you have to make people see that it is a lot of work you are doing for them. One way to make this clear is to ask money. Another thing is to make them do something for you, or teach them to do it themselves. Either way, they will see that it's a lot of work, and I think that is one of the main issues at hand.
2# Don't do it at all: The second option is not doing it at all. Make no exceptions between friends, family or anyone, and don't do these kind of requests. Without pissing them off, tell them you cannot find the time or that you had bad experiences in the past with these kind of request. Tell them your relationship with these person is worth more than money or that you rather play Dragon Age because Dragon Age 2 is coming out pretty soon. The plus is that you do not have to put hours in to make this project, and you won't experience the negatives as in option one. The downside is, that if you do not explain it right, people might still be pissed off.
Hard to understand.. these human emotions ;)
Things you should not do, is lie to your friends and keep them on a leash. That is pretty rude, at least where I come from ;)
In my case, I will go for option 2 and I will accept the answer with the most upvotes :)
I don't say no. I tell them I can do it, and that I will even charge a lower fee because it's for them (e.g. $40/hour instead of $70). After a little chat I usually make a rough guestimate about how many hours it would take to build their website.
The figure is usually high enough that 99 out of 100 say "no thanks" and decide to pester your 15 year old nephew who just learned Frontpage at school.
Most people have no clue how much time and money it takes to build a good website. It's best to teach them that and let them draw their own conclusions.
Edit: To answer Arcturus' question: If they say yes, you have yourself a nice little project. But now you get paid a decent rate, so you can justify spending more time on it and build a proper web app instead of the crummy app you'd write if you did it for free. Just treat them like you would any other paying client because that's what they are now: a paying client.
And with that come all the rights and responsibilities of paying clients. So, you need to draw up a proper contract, discuss an advance fee, come up with a schedule and design document, tell them about making changes after the design has been agreed on, billing, etcetera, etcetera. Don't skip on any of these just because they are relatives or friends. You are already doing them a favour by asking a lower hourly rate.
After all, your question was how to get out of building and supporting crummy web apps for free against unrealistic expectations and possible backfire. Not how to get out of building web apps all together. If you don't want to build web apps period, just learn to say no.
Explain to them like you did in the post.
Just imagine they are asking:
Hey Acturus, could you please cut the grass of my 10K square meters garden ?
And politely decline to cut their grass.
But here is an alternative answer:
I appreciate you think of me for that task! It's a lot of work. Between my current job and family it will be difficult for me to find the appropriate time. I can propose you the following: while you cut the grass of my 10K square meters garden, I work on your website. You will be able to clean my house and the car if I'm not done yet on your website.
Or better (taken from the link Hydrogen published in the answer's comments, see above):
Can you hook me up with a copy of Photoshop ? I know how clever you are with there things.
You answer:
Sure thing. Can you steal some raisins from the grocery store for me? I know how clever you are with there things.
http://theoatmeal.com/comics/computers
Often happens to me. I just say that
Well, I don't have enough time for this right now, maybe 3-4 months later (you know, work with overtimes e.t.c), but I can suggest you some guys who can do this properly now. Also, If you want to try to do it youself, I can suggest few guides.
Works like a charm :-)
I understand the approach of telling them you'll give them a discount off your regular rates because they're a friend/relative/illicit lover/whatever, but I wouldn't do this for two reasons.
One, if they came expecting you to do something for free as a friend, to start quoting a price and turning it into a business deal just seems rude. If I'm at a friends house and say, "Hey, can I have a drink?" and he answered, "Sorry, I don't have anything", or "Oh, I'd love to, but my wife was saving these for a party tomorrow," I'd say okay and think nothing of it. But if he seriously said, "Sure, that will be $1.50", well, I'd think that pretty obnoxious.
Two, if he agreed to it, we're now not just friends but also business associates. I prefer not to do business with friends, because I've had a few times when I've done this and one or the other of us have been dissatisfied, and now our friendship is strained over a business deal, and usually a petty one. I have too few friends to risk losing one over a couple of hundred bucks.
I've had a few times when I've built web sites for non-profit organizations for free, and the experience has almost always gone badly. One just recently they told me they wanted me to make the site "more modern". "Okay," I replied, "What do you mean by that? What do you want me to change?" They're only response was basically, "Well, you know, like, more modern." If someone had said "Change the menu to look like this" or "Add an interactive database where users enter X and get back Y" or whatever, I would have gladly done it. But what am I to do with such vague instructions? I had no idea what they wanted, and I'm guessing they didn't either. So I added some different graphics that I thought might amuse them, but apparently that wasn't it. A few months later they sent me a polite email saying they understood that I didn't have the time to work on this and they'd gotten someone else to do it and would I turn over the passwords etc to him. Which frankly was fine with me -- I'm not going to cry because I was fired from a boring non-paying job. Interestingly enough, his version of the website had the exact same content as mine as far as I could see, but it used different fonts and color schemes and added some photos of smiling people at the top of the screen (no one associated with the organization -- I guess they were just stock photos he'd gotten somewhere). So that's what they wanted? Okay, I could have done that easily enough. But as I say, I'm just as happy to not have to do it anymore.
Anyway, my point is that when you're doing something for free, it can easily get frustrating if the person requesting it gets demanding or otherwise difficult to work with. It can be frustrating if they're paying for it, I suppose, but at least then you have a sense that you're getting some compensation for your frustration.
I find it that many of the solutions friends and family needs - even when it's for their business can be built with some kind of "website builder" or "ecommerce webshop". Those solutions are usually free or part of a hosting setup.
Sit down with them, outside in the sun with a beer or cup of coffee and discuss their needs. Help them write up something they can use, help them prioritize, keep it good enough.
So, since they need their site hosted somewhere, help them find a good (and cheap) hosting company offering some kind of standart system to help create this website.
Again sit down with them, by the computer and explore this system - but let them see what is going on, let them do as much work by the computer as possible. Help them do it the right way - or atleast a good enough way. If you really lack time, tell them up front so they know, but be sure to book time to do this together with them.
So far you've spend a lot of time with them - I hope you had a good time since they are friends or family - they should recognize that you spend a lot of time helping them. This is actually a quite visible fact.
The key is to envolve them, make them put efford into it as well. Eventually you will be done with atleast a version 1 of the system which can go live.
--
Hope this helps
I've approached this in a similar way to Sander Marechal [1] in the past.
To cut a long story short people do not view this in the same way that they view a trade. Very few people would ask a professional mechanic to fix a car for free and ignore the mountain of paid work they have to please them, yet they're more than happy to pester people to fix computers as we tend to enjoy being around computers.
To rectify this problem I ask them how much they think someone gets paid to build professional-grade websites, including Graphic Design, testing, etc. I then estimate how long the job will take by a few more hours, give them what sounds like a huge discount and say that's how much it'll cost to pry me away from paying customers, and show them a good-quality website as an example of what their website could look like.
They soon change their tune. I've been known to give them some pre-made templates with an hour or two of work on them and offer them for a cut-down price before, or to lead them off to a website where they can obtain pre-made open-source designs to base their own from for their 12 year old nephew with a pirate copy of Dreamweaver to glue some Flash movies to...
[1] http://stackoverflow.com/questions/3624875/how-do-i-politely-decline-building-stuff-for-relatives-friends/3624933#3624933With all these answers I'm really surprised I didn't see anyone who would actually try to help.
Most people have some capability to do web sites themselves--be it through a WYSIWYG design tool or even hand-coding HTML.
I'd be willing to sit with them and guide theme through the process, just like I'd sit down with someone doing 12th grade math and give them help and advice without answering any problems.
I'd probably refer them here and teach them to search before asking, find them tools appropriate to their skills and their "needs". Teach them that it's always good in the computer realm to do things twice.
If they are not willing to put in the effort, then they don't want it bad enough. If they want it bad enough they WILL make it work and they will know every inch of the solution (I've seen non-programmers create successful products simply because they wanted the product bad enough--to use for themselves).
Also barter! I'll spend time helping you do computer stuff if you spend time with me helping with landscaping & home maintenance (Things I'm terrible at), both of us will profit.
This is no more than any of us do on this board every day.
It is unfortunate that web development is often thought of as a no more than a hobby by a lot of people outside the industry - I guess as a consequence of the fact it can be done out of a bedroom, and the fact we often have a lot of fun doing it.
I try to limit the help I give to friends to advice or directions to good tutorials/books ect; a half hour chat or a quick email here and there, even reading the odd bit of code, is closer to the kind of effort you would expect to make when helping out a friend (compare to reading through a letter or cv for a friend, for example).
From this position, it's common that my friends might ask if I 'fancy having a go at it' for them, but normally they will understand that I don't have the time, but will be happy to point them in the right direction.
It's depressing how many people want it done for free or a pittance. I never mention to people (especially at parties!) that I do websites. If they find out anyway I point them at some of the free auto-generate websites such as weebly
Ah the burden of our skills. In some ways it is a privilege, to be considered and to be relied upon by close family members, but as you have already correctly identified, there is a certain level of risk attached to it that can just make things plain awkward if things go wrong.
I think this affects more than just software developers though; family lawyers, plumbers, mechanics, electricians all probably have a similar level of expectation placed upon them to perform services gratis.
I think there are situations where you can get away with making something for someone, but think of it as the ultimate lesson of managing expectations. You need to say straight up what the deal is and what your terms are going to be.
This assertiveness can actually lead to the situation where you don't need to decline, and will probably lead to a more successful outcome if you do end up making something for someone.
This is one of the few chances you will have as a developer to truly set the terms yourself! After all, you're only getting paid in beer.
[Update]:
Also extremely relevant reading :D [1]
[1] http://theoatmeal.com/comics/computersThe company I work at makes websites, so I can direct them to ourselves. This costs more, but the advantages are that they don't rely on just one person (me), and they can get a fairly simple, decent website for little money, because we offer that. Besides, they're nearly guaranteed that we'll have the time for it, and they can call anytime they want, being customer and all.
Perhaps you can do something similar. If you get many requests like this from friends, family and whatnot, there might be a market for your employer to dig into.
I get asked to build websites/apps all the time too and with close family/friends more often than not when mentioning the time/costs involved there is the promise of being well paid once the business takes off and they can afford to pay.
I tend to make a deal, that I will own the domain, files, all copyrights etc on the site until such a time they can afford to buy them off me.
I always charge for hosting no matter what as this is something I have to pay someone else (people are normally ok with that)
As for saying no to a project, just be honest, tell them the truth (you dont have time, its a stupid idea, someone else has done it, etc...)
I also try to point them in the direction of someone else that may be able to help them, or to some tutorials where they can learn how to do things themselves.
Unless you have a very special relationship with said person, I have to agree with Sander Marechal [1]. What he says parallels my own experiences. The people that really want that web site and such will take time/costs seriously and perhaps take you up on the offer (those will likely be very few and far between). The others will cull themselves.
[1] http://stackoverflow.com/users/103202/sander-marechalI once had a professor who brought up this very subject and suggested a good way to handle these situations. He was a very accomplished attorney, one of the best in his field, and though he was speaking in the context of law his advice can be used within multiple contexts.
In a nutshell it goes like this.
When you sit down for that first meeting to discuss the project give them the worst case scenario first and make them believe it's the probable outcome. Here is an example:
Hi Aunt Tilly. This project seems like a great idea but you need to know a few things. It will probably take about 6 months to complete, will end up costing you a bundle hosting/stock images/maintenance/etc, and the project will more than likely fail before it even starts. But, I'd be more than willing to help you as long as you are willing to accept these facts.
In this case, you are offering your help but by being extremely negative, you will make them truly consider the worst case scenario which often times is overlooked.
I have a full time job building business applications for a corporate headquarters, it keeps me more than busy. When someones asks me about websites, I direct them to a good friend whos independent contractor business is setup just for that. This works out perfectly, sometimes these people actually do pursue a website contract, my friend gets some work and the people are happy.
If I want out of doing work for people looking for freebies/mates rates (family, clubs etc) I tell them "My contract stipulates that while employed I cannot do any web design or development related work for clients within an N mile radius of the offices and that I should refer those looking for the services to my employer." I'll then soften the blow by saying I'd love to do it for them but can't risk my job.
Start your own business if you have that much potential work. If you have your own business people won't be as apt to assume it's free because everybody understands overhead costs.
Part of me wonders if there is a cultural difference that comes into play here. Are you from a culture in which ingrained respect for elders or family is preventing you from saying no?
it's a nasty one and you have to be blunt sometimes, i'd judge it as this:
if they're asking for a simple 1-2 page site built and are willing to throw in a couple of favours (dinner, cinema, etc.) plus if you can use it to learn something new then go for it.
if they're asking you build them a web app or something evilishly complex then it's proper money.
...however with all these things you've really got to go on your gut feeling, are they going to be really involved in it and wanting to help you out whenever or are they just going to give you it and see you when it's done, it's not fun when they're out enjoying themselves and you're stuck at home figuring out why x won't ever equal y (seriously uncool).
...whatever then thing get them to plan it out with you, wireframe everything then get them to sign-off on it, at least that way you and them can have an acheivable goal post.
but always you've got to go on your gut feeling