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.

A 'friend' of mine asked me to write a complete CRUD system with AJAX for him for free. What should I do? Technically, its bread and butter for me. However, I am wondering if I should get paid for it. I mean it's a commercial project.

On the other hand, I was thinking that I do not care if he pays me. Do what ever you want with my code. If it makes you more intelligent and helps you write better code, then I will sense a feeling of accomplishment...

So can anyone help me decide?

share|improve this question

closed as off-topic by gnat, Kilian Foth, GlenH7, MichaelT, jmo21 Oct 14 '13 at 10:37

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." – Kilian Foth, MichaelT, jmo21
If this question can be reworded to fit the rules in the help center, please edit the question.

18  
If your friend earns from your work, certainly you deserve a part of earning. –  Tech Jerk Apr 11 '11 at 6:30
4  
send him a link to an ORM. –  Steve Evers Apr 11 '11 at 13:26
2  
A friend would at least deal you in some equity in leiu of the fact they cannot pay you right now. Whether you'd ever see a return is a different question. –  jmo21 Apr 11 '11 at 15:34
    
Primarily opinion based... –  Andres F. Oct 8 '13 at 19:21
    
"If you're good at something, never do it for free." - The Joker –  Bernard Oct 8 '13 at 19:24

9 Answers 9

up vote 18 down vote accepted

I think it would be another way of learning and as that I would embrace the opportunity. Most of the time friends will will give you something back when you do them a favour like this. And if they don't it is still a learning experience.

What I would do is:

  • Ask him to put your name (or link to your blog or linkedIn page) in the credits with a nice descriptive title: Lead Programmer or something in the credits.
  • Be very clear about the support you are willing to give afterwords. Most of the times when you do friends a favour like this they will expect full support like if you are a company. In many/most cases you will not be able to provide this level of support, so make sure expectation about support are very clear from the beginning.

Hope this helps.

share|improve this answer
    
ya, i can do this. It would be my code running on his server. If he needs support, he would look for me. Thanks –  mahen23 Apr 11 '11 at 7:16
    
The trade-off here is that there's little to learn on a "bread and butter" project. Writing CRUD code isn't that challenging. You might have an opportunity to test some new framework, but that's about it. –  MSalters Apr 11 '11 at 7:57
9  
I second the be VERY CLEAR about support... this type of thing can quickly turn from a quick little exercise to a project from hell once you are expected to support it, when you start getting the "lets tweak it here, that can't take long" requests rolling in –  bunglestink Apr 11 '11 at 15:29

Usually the answer for the question "Should I work for free?" is NO.

Here is an awesome flowchart that helps in cases like this. It's humorous but true.

http://shouldiworkforfree.com/

hey there!

Who's ready to stop working for free? Hopefully you are! If you have any doubts, consult this handy chart below. Start in the middle and work your way to your answer!

share|improve this answer
5  
Whomever made that flowchart, has obviously never seen a flowchart before. That thing is nearly incomprehensible. –  Steve Evers Apr 11 '11 at 13:29
2  
I don't want to see any of that guy's code. –  Michael K Apr 11 '11 at 14:00
    
@Michael That guy probably writes a mixture of OO and functional assembly. –  The Communist Duck Jul 20 '11 at 20:06
    
dl.dropbox.com/u/3514540/workforfree.jpg <-- better –  Prof. Falken Jun 13 '12 at 12:49

A friend of mine is a contractor in construction, but I would not tell him "Hey, this stuff is easy for you, why don't you renovate my bathroom this weekend?" This is even more true in a commercial situation. Charging for your projects builds mutual respect and an understanding of expectations. Time is money and when someone asks you for your time and skills they might as well be asking for money. Its fine to give money away, but you might think of it differently if they were to ask you directly for the 1000 dollars, or whatever you might normally charge in cash.

share|improve this answer
1  
ah, but coding is different so some folks will tell you... work at night on open source, give back to the community... phooey!! –  jmo21 Apr 11 '11 at 15:33
1  
@james: There's a difference between working on F/OSS, and working on software for somebody else's commercial benefit. I like the idea of benefiting everybody more than benefiting my cousin's business. –  David Thornley Apr 11 '11 at 20:55
    
@David - I'm well aware of that, if you or the OP want to do stuff for free (whether OSS or not) in your spare time good luck to you. –  jmo21 Apr 12 '11 at 14:52

It depends on your relationship with the person. If you are good friends, then you are just doing that person a favor. I wouldn't charge a good friend to help him move, nor would I charge him for my code, even if he will make money on it. I would trust I would reap the benefits from the relationship.

But if it isn't a good friend, then you should charge him. Your time is money and if they want you to work commercially, then you deserve to be paid.

share|improve this answer

Will you be held responsible for errors in your code?

If yes, you need a contract which in turn implies money which is bad for friendships.

share|improve this answer
1  
I don't think formalities will be bad for friendship as long as both parties know and understand that work is just work and nothing personal. –  Joset Apr 11 '11 at 7:36
    
Keeping the money part of your relationship formal is GOOD for friendships. Everyone knows what to expect, what the agreement is, nobody ends up feeling burned. Just approach it like two grown-ups and it's the best thing. –  Dan Ray Apr 11 '11 at 12:38
1  
@Dan Ray, general experience show that you should be very careful with mixing money and friendship, because disagreement can cost you one or both. –  user1249 Apr 11 '11 at 15:11
    
@Ravn - It depends on the situation that involves the money. Lending money is bad, performing a service is fine, a contract can be good even if there is no money involved. –  Ramhound Apr 11 '11 at 15:40
    
The danger is that you run into a fuzzy part of the contract where you forgot to specify something clearly and then the two of you each interpret it differently, leading to an unpleasant argument and one or both of you feeling cheated. –  jprete Apr 11 '11 at 18:32

Does the friend in quotes mean it is not really a good friend. If not ask money or a favor in return. If it is a really good friend you could consider it, however if he makes money from it you should too. Remember money can do some very strange things to people.

In the past I have written software for friends and sold licenses of that software to the their employers. Some other things I have written for friends (e.g a Device driver for a htpc) I have made open source so no money could be made from them.

share|improve this answer

I'd take one of two approaches.

I could write it, and ask for something in return (money or equity).

I could write it, and make it Open Source software. I dislike working for free to support a specific commercial enterprise.

In either case, it's best to get the requirements down, including a change process for the requirements and whatever support commitments you're willing to make, in writing. Deals like this have the potential to destroy a perfectly good friendship, and it's real easy for two people to remember verbal contracts differently. Have it down in black and white what you are willing to do, and do it.

share|improve this answer

If you think your obligations to your friend will end with 20 lines of CRUD code, you are probably fooling yourself. Unless you want to enter into a potentially disruptive business relationship with your friend, potentially losing or estranging him in the process, I would think again.

In general, it is a very bad idea to replace social norms with market norms. You can't go back. This also why f.e. you shouldn't lend money to friends.

You'd be better off referring him to someone else.

share|improve this answer

You should not. Your friend is trying to take advantage of you, and therefore he's not your friend, and therefore he's just some guy trying to get you to do something for free.

On the other hand, he's done you a favor: he has shown his true colors and you can unfriend him.

share|improve this answer

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