Things I’ve learned from being a consultant
Working from the government pays the bills, consulting on the side pays for toys :).
I’m the only working on this project, so you’d think you can organize it any way I’d want, right? No. At any time the client can ask for anything, including the full code and it is my belief if they’ve paid for it then they should get it. The code is mine, but was developed for them so they can have it. Maintaining code isn’t very much fun so I don’t worry too much about putting myself out of a job.
Clients want things with a quick turnaround. Sometimes this means doing things at lunch time or spending time after work. When its my own time and means less tv or vacation time, it gets spent wisely. Also, see Organization. Being organized saves me and the client time. The time taken to organize things is probably equivalent to billing for time spend search for things.
Rarely does a client ask for what they end up with the first time around, unless its repeat such and such for me. This means working with clients to flesh out questions. If you get it wrong, then you waste time and that time gets billed to the client. People generally don’t like paying for work that wasn’t what they requested. Especially, since I’m sure what they said was clear in their mind. Communication isn’t only listening to what a person says, its hearing what they want and sometimes that isn’t said.
Different Tool Sets
If a client uses SPSS, SAS, or R, then that’s what you’re working with on this project. It’s good to know at least the basics in a few languages and how to look up things in those languages as well.
If I can generate the results on time, on budget that’s great. If those results are copy and paste insert into the manuscript/PDF/powerpoint presentation that’s 10 times better. I’ll admit some of the designs would never had occurred to me, but come from clients requests. However, seeing something once I can learn and adapt that design to other uses.