NOTE: I’m getting a lot of hits to this page from Google asking for “Linux consulting rates” or “GNU/Linux Consulting Rates”. My advice is: you get what you pay for. That “$25 an hour guy” may not seem like much of a deal if he can’t get the job done in a timely fashion. Average rates from fellow Linux consultants with more than 5 years of experience seem to be in the $65-$100 an hour range. I charge $85 an hour for short jobs, but give significant discounts for longer-term jobs paid in advance. The lowest I generally go, for 80 hours paid in advance, is about $65/hour. My resume may be a good comparison point for you to figure out whether to charge more or less. Erm, or, if you’re a customer, well, hire me already 🙂
So I got a call today from a complete stranger, whom I’ll call “Ken”. Ken found my reference for Bugzilla on the bugzilla.org web site. I wrote the documentation for Bugzilla, a pretty herculean year-long effort; since then, it’s been updated a lot by many other people, and my individual copyright no longer appears on the “about” pages. Guess I should have made my copyright notice an “invariant text” in the GNU Free Documentation License. Live and learn.
Anyway, he asked me how long it would take to get Bugzilla running on his system. I told him that if the system already had all the required libraries on it, and I had root access, I could have it running in about two hours at my standard consulting rate of $85/hour (note: Uncle Sam grabs a huge chunk of that). If there were a lot of libraries missing that I had to grab in order to make it run, that figure would run up to four to six hours at the standard consulting rate. He said that was within his budget, and after a few small kinks in ssh access firewall rules, I was root on the box on which they wanted me to install Bugzilla.
Now, here’s the ethical dilemma: at this moment, the box is “building” required packages, since he wanted an “isolated install” running under an individual user account. This is a process that depends on the speed of their machine, and since it’s a fairly speedy box, it will probably take about two to three hours to complete. Pretty much, while it’s doing this, I’m just glancing at my screen periodically to make sure the build is still running, occasionally typing in a command or note on what I’m doing, and going about other business.
So does one charge the customer for that “watching the compiler messages scroll past” time? Or does one chalk the hours up to “downtime” and not bill them for time when, really, their computer is just taking its time doing the job and yours is nothing more than monitoring to make sure it does it properly?
After writing this out, I think my choice is clear. I don’t think I can bill for hours where, although I’m tangentially involved with the customer’s process, I’m not actually doing anything personally to move their process along. It means I’ll eat some time that I can’t bill, but I’ll feel better about myself.
Interesting how times change, though. I guess my sense of ethics has evolved over the years. Back when I worked at a screwdriver shop in Las Vegas, I didn’t care if I was just talking to the customer or waiting on an install, I billed by the minute for my employer for anything and everything I possibly could. I made about $13 an hour, and was eager to “prove myself” with lots of billable hours.
These days, I guess out of a sense of self-preservation and maintaining business relationships as a self-employed professional, I guess keeping my reputation with my clients is more important to me than sucking every last dollar out of every gig that I can.
Funny how people change over the years, huh?
Hmmm
I’d have to disagree in that my view is that the $85 you charge is for two things:
1) Performing the install 2) Knowing how to perform the install
He could have installed it himself, but he’d have taken 5 times as long to bring himself up to speed. He’s paying you to do the work, plus reimbursing you for the time you spent learning how to do it 5 times quicker than him.
I understand the guilt from doing nothing more than babysitting an install, but I’ve also spent a lot of time troubleshooting to get to the point where my installs are nothing but babysitting. I’m not out to cheat somebody, but I view it as billing my expertise as well as my labor.
Maybe I’m a greedy capitalist, but I don’t think so. I’ve done too many freebies to qualify 🙂
I have to agree…
I can understand where you are coming from Matt. On the flip side of things, I think you are incorrect in not charging for your time. I was told at one point when i was freelancing as a roadie, that the worst thing you want to do to yourself is to sell your self cheap. I can understand your dilema with charging for time that you are only watching the PC do work. An option for you might be to charge a pro-rated rate if you are having “down time” during the install.
At the end of the day you have to be happy with yourself. As long as you do what you feel is right and fair, then you really can’t go wrong. Just don’t sell yourself short. You have worked hard and studied to know the things that you know. It is worth something.
Take care.
~Jon
Billing et al
Well, at the end of it all, I worked six and a half hours, and I billed six and a half hours. I wrote up this blog entry and then went to pick up some stuff at Wal-Mart 🙂 Neatly solved my moral conundrum; when I got back, all that was left was about two hours of loose ends.
And, interestingly, “Ken” visited my blog and we spoke briefly about it on the phone. He thanked me for my rice pudding recipe 🙂 I’m finding myself wondering now if having a blog is an asset or a liability when it comes to landing consulting jobs!
—
Matthew P. Barnson
Honesty
Asset.. you had moral reasoning, and a real desire not to rip someone off (although I agree, it woouldn’t be ripping someone off.) The point is, you want to be sure to be honest.. and that comes thru.
BTW: An idea.. charge a flat fee based on how long YOU think it will take.. it takes longer, tough for you.. it takes shorter, bad for him.. but you are charging for the job, not by the hour.
“If we are going to be damned, let us be damned for who we really are” -Jean Luc Picard
When you consult that way…
When you consult on a flat-fee basis for a task, though, you have to have iron-clad agreements in place up front, which often involve lawyers. If you don’t have an exact requirements doc, with bullet points you can point to and say “done, done, done”, then as a consultant you can be strung on forever.
Likewise, as one who’s hired consultants, when you pay based on project milestones, you need complete feature lists up-front so you can be sure the consultant won’t walk off with the job half-finished. You also need penalties in place if they miss the deadlines.
I decided to do most of my work based on estimated hours for that very reason: it seems fairest for both parties. It’s much simpler: they give me a reasonable feature set they want, I give them a length of time and rate and a guesstimate on what features I can accomplish within that time frame (although the agreement is always on time, never on features). I refrain from giving time estimates if I’m not familiar enough with the problem domain to know exactly how long it will take me — in those cases, I state my rates, and just keep in very close contact every day with my customer to make sure they know when enough is enough.
All that said, it’s nice to work on a “pay for feature” basis from time to time. When you can deliver a product that does a specific thing, they hand you a wad of cash. It’s sometimes tough making sure the customer doesn’t try to get you to keep working for free indefinitely though.
—
Matthew P. Barnson
Auto repair…
Auto mechanics have a pretty cool system. There’s a book (I forget what its called) that shows estimated repair time’s for just about every conceivable repair for every year, make, and model of car. So, you look up the repair to be performed and charge a low flat rate (the shop rate) for that repair, say $25/hr. In addition you charge another low rate (usually the portion that pays the mechanic who does the actual work) in the range of $10/hr for actual hours spent working on the job not to exceed the estimated number of hours from the book. In estimating you would estimate $35/hr times estimated hours from the book.
It’s called
It’s called “The Book of Time”. My father owns a repair shop. 🙂
Charge him
This is not about making extra money or anything its just smart business. Charge him for all of your time. Don’t sell your time short and don’t sell your services short. You charge by the hour. If what you did took 3 hours to complete, so be it. You were available to his project the entire time. If there had been an error with a build you would have been there to fix it. And while you may bill only for hours, that is not what the customer is buying. You gave him his money’s worth and he’ll be happy to pay it. You should value your own worth enough to charge reasonably for it. I would charge him the full rate and never feel bad about it.
Charge him
This is not about making extra money or anything its just smart business. Charge him for all of your time. Don’t sell your time short and don’t sell your services short. You charge by the hour. If what you did took 3 hours to complete, so be it. You were available to his project the entire time. If there had been an error with a build you would have been there to fix it. And while you may bill only for hours, that is not what the customer is buying. You gave him his money’s worth and he’ll be happy to pay it. You should value your own worth enough to charge reasonably for it. I would charge him the full rate and never feel bad about it.
Rates
I was recently asked to consult out side my area for a complex system. I found this page while looking to see what the prevailing rate was in this area. A choice was made to just multiply the parking fines in that area by what my typical rate is over the parking tickets in my area. So if the parking ticket is 25 and my rate is 100 then the destination work would be 4 times the parking ticket rate. This has the aid of measuring the local economy but the fall back of having to cap the amount, as a 60 parking ticket could cause some trouble 🙂
Interesting philosophy!
Interesting philosophy!
So if I followed that in Salt Lake, I’d be charging right around $100 per hour (standard parking violation: $25.00). Maybe I’ll switch to that fee schedule!
—
Matthew P. Barnson