Matt Gemmell

My new book CHANGER is out now!

An action-thriller novel — book 1 in the KESTREL series.

★★★★★ — Amazon

Development freebie policy

Source 3 min read

I periodically struggle to define some kind of policy regarding doing free development. 
Try as I might, I can't bring myself to outlaw it completely, but equally you can't be 
<em>too</em> giving and still stay solvent.

Since I publish my iChat nickname on this site, I'm on cocoa-dev and such, and I've released 
my fair share of <a href="">source code</a>, there's a fairly constant trickle of "requests" for free development. 
I say "requests" since they're very rarely worded in such a way as to be direct requests. I've noticed 
the following trends:
  • Hypothetically...
    A significant percentage of such requests are phrased in the form "Do you think it would be possible to...?". Possible answers: Yes; good luck with it! / No, I don't think so; sorry. / Damned if I know!
  • Worthless coding
    Amongst freebie-seekers, there seems to be a universal wild undervaluing of development hours. I've often wondered if people somehow equate the cost of shareware with the cost of developing shareware; the misconception is certainly of that order. Folks, wake up: you should expect to pay $60-$100 per hour for software development on a consulting basis - and often significantly more.

    What's more, that fee does not include rush-jobs, nor does it include source code! My own basic rate for Cocoa work is $70/hour; I know people that charge more and less, but it generally seems to bottom-out at around $50-60. Exclaiming "But I could buy a copy of Photoshop for that!" does not improve my judgement of your intelligence.
  • Misunderstanding of where "free" stops
    In my experience, it's a very common belief that if you've released some source code, then you should be willing to enhance that code to-order at no charge whatsoever. Feature requests and suggestions are fine, and great - but all too often you get the kind of person who outright asks if you'll add some esoteric feature for them right now, then seems genuinely outraged when you propose setting up a contract! "But it's free, man!"
  • Uninvited apprentice
    "I really liked your app/code/whatever - can you help me with something entirely unrelated, including teaching me about several very basic concepts in great detail?" I can, yes - but I rarely have the time or inclination. I post a fair bit here on Irate Scotsman with my thoughts and reflections on software development, and I release as much source as possible within the time constraints of other priorities. I try to answer some questions on cocoa-dev. I reply to the vast bulk of the email I get about my source or random development matters. These things are my contributions, on my terms.

    I'm generally happy to help out, but when it gets to the point of directly inconveniencing me (often repeatedly), I have to draw the line. I am not your high-school teacher, sitting eagerly waiting on iChat for the next Learning Cocoa question.
  • Politeness excuses all
    "Sorry to bother you, but can I bother you a great deal to save me having to look up a piece of documentation?" "I don't mean to be rude, but allow me to make this major imposition upon your time... ". "I saw you were online, so I thought it would be easiest to ask you this first, just incase you have absolutely nothing better to do...". And more.
  • Payment in compliments
    "You did such a great job with Something, I figured you'd be just as good at making me something else for free!"
  • Zero research
    "Can you help me with toolbars?" The mind boggles.
And so on and so on.


I'm interested in what criteria others use in assessing whether or not to benevolently grant one of these quite cheeky requests. A few obvious 
ones spring to mind:
  1. Charitable/religious organisation.
  2. Friend, relative, or potential mate.
  3. Good portfolio piece.
  4. The work sounds really interesting.
  5. The person sounds so pathetic that you'd feel positively cruel if you didn't.
  6. "But this is high-profile! It'll be great for your company!"
Of those, I would never touch anything which remotely resembled 1 or 6 - you're just begging to be fucked. 2 is a good way to 
end up bankrupt. 3 is reasonable, if done in moderation. 4 is fine. 5 is strictly as time permits. 
You can also take the hard-nosed approach and insist on payment for absolutely everything; that's also fine. I was like that once, but 
I've never fully recovered from releasing my first piece of source code (whenever that might have been).


What I'm most interested in 
is any reasonably well-defined policy for this sort of thing, and how you arrived at it. It's something that continues to trouble me, 
usually alternating between extreme frustration at being pestered, and guilt at not being the Good Shepherd.

Guidance, please!