Just because I charge by the hour, that doesn’t mean you should be wasting my time…

This morning, in the wee hours of the morning (time differences can keep you up at night, as can young children), I spent more than an hour and a half doing makework. Most of that work, probably all of it, could have been avoided if I’d been given a working setup rather than a huge chunk of source code and a recipe to make it work. Granted, the recipe did work, but it was still a huge waste of time.

I usually don’t use this site as a forum to vent steam, but writing up a bill of several hundreds of dollars for something my client could have done for a fraction of the cost, simply because the client in question chose to have me do the legwork in stead is a bit too much. I will, however, attempt to give this decidedly ranty post a positive spin.

So, in order to use my time wisely, not rack up a bill for legwork (which I don’t charge any less for than the thing you really hired me for), here’s a few things you need to take into account:

  1. You are probably far better set up to build your software than I am, even if it’s “just” Windows software
  2. if you do want me to compile parts of the code, provide binaries for at least the parts that I don’t need to compile (objects, debug info, executables, etc.) – especially if the project is large. A working project tree that’s already been compiled so I just have to press F7 after changing something and voila it works illico presto can save a lot of time (even if I don’t charge for waiting for the computer)
  3. describe the problem you want me to solve, and be specific: unless it simple doesn’t work at all, there’s probably some goal you want me to attain. Not knowing your software (but knowing mine very well) it’s better I focus on my software rather than yours.
  4. Make sure your code works: if I’m working for a bug report within a support plan, but the bug turns out to be in your code, you will be charged separately (none of Vlinder Software’s support plans include me debugging your code).

If you take these points into account, what I get is a clear and concise description of a problem in a software that, other than the described problem, works at least well enough to work with. I also get binaries for everything I don’t need to compile or (better still) those binaries in a context (e.g. a VM) where they work and a recipe to apply any changes I may have to make. I also get access to your source code so I can examine the details on how my code is being called. I short, I get everything I need to get my job done as quickly as possible. That way, I’m happy and your bill is a lot more agreeable to your accountant’s eyes as well.