Posted on July 2, 2011 by

Keeping Freelance Programmers Happy

I have been getting a extreme amount of work accomplished over the past few months, and apparently real work and blog posts are inversely related. So I wanted to try to share at least a small something. I have been working with many freelancers, and have been acting as a freelancer, for a little while now. I’ve noticed that freelancers tend to leave projects unless a few specific things are happening. I want to continue to monitor this list, and conduct some real scientific method to see if my anecdotal evidence holds up.

Have Well Defined Iterations
Every single project I have been on has a constant stream of bugs/fixes/changes being passed on to the programmers. If this stream isn’t controlled then you never meet a goal, you never get a feeling of accomplishment, all you get is an endless supply of busy work. The worst case scenario is the developer leaves in the middle of structural changes and you can’t proceed. The progress just slows to a crawl. Best case scenario is the person simply leaves, and you have to go through the entire learning curve with a new developer.

Don’t Be Too Complex Too Early
I’m very a much a believer of doing things the easy way. When starting a project, management tends to have these huge grand visions of where they want to go. I’ve noticed that most good programmers break these things down into small parts that they can get working. This isn’t a TDD plug. Its just noticing that small things are easier to debug then large things. Fast programmers are either really good at breaking down large problems, or are bad at programming. Let the developers break down the problems! Goodness I have tried to walk through a complex system with people who never say anything that doesn’t start with “Don’t forget about “. It makes developers not want to work with you. Let them code.

Be Respectful
Freelancers tend to be good coders and they truly enjoy what they do. Otherwise I doubt they would ever engage in this crazy way of doing business. They are entrepreneurial. They have seen many different types of projects/management styles/team make-ups and may not know what will work, but they have seen how typical problems develop. Personally, and from some other stories, if a freelancer sees a doomed project, they have the talent and experience to walk away and find another job. I think this is important for managers to watch, and a great source of experience to take advantage of. I have seen freelancers(well full time devs too) be treated like line item costs. They leave because there is work elsewhere. Developers are smart and you should take advantage of that, not look at their ideas as another problem to manage.

This is coming off as very rant-ish. I don’t mean it to be, I’m just not a good writer. After some more observation maybe I’ll have a better idea of what works and what doesn’t.