For the record, I am all about giving back. I’ve been a long term supporter of open source development. There is also a lot in terms of free code and information on this site. Yet when I’m working a project for a client I like to get paid for all the work I’m doing. Yet sometimes I catch myself doing unpaid development, why does this happen and what can we do about it?

  1. Valuing your time: The first step is valuing the precious commodity of time. We only have so many hours on this earth. We are going to spend a certain amount of it doing the work we need to do survive, but we should also maximize the amount of time we spend having fun and doing the things we care about. Once we understand how little time we do have, we can start to appreciate the importance of getting paid for it.
  2. Being honest: Instead of focusing on the scarcity of our time we end up focusing on the scarcity of the money in the projects budget. If a project looks like too big to fit into a particular budget, it is our jobs as professionals to be honest about it and make everyone aware. At that point more money can be allocated to pay for our development or the project can be scaled back appropriately. Better to ask for permission than to ask yourself for forgiveness at 10pm at night when you are doing unpaid development.
  3. Recording time: Make sure the time spent is well documented. I typically log my hours everyday in my notebook and then weekly in a time tracking application. This serves two purposes, one for showing were I spent my time and two it can be a big help for estimating the next project.
  4. Volunteering: Volunteer to help your boss and clients with things unrelated to your job. Get that good feeling inside of helping those who keep food on the table not by spending extra hours developing, but by doing things you both care about. This can be little things like taking out the trash or bigger things like adopting a highway. It establishes a stronger relationship while not depreciating the value of what you are getting paid to do.
  5. Speaking up: Lastly, if a particular part of a project isn’t going as planned, speak up about it. If you were able to develop the rest of the parts without trouble, chances are you an expert in your field. There are things we all struggle with from time to time no matter how good we are at development. Let your clients or bosses know when things are taking a bit longer. They may be able to provide other resources, give you more paid time, or decide to drop that part altogether. All better options than stressing out and not getting paid.