In my field, there are many clients (or even fellow web developers/programmers) who believe that programmers should be paid by hours. There are certain skills (like programming) where it just doesn’t work that way. I can talk a lot to explain this.
OR, I can share this story first:
————————- Story Starts ————————-
A giant ship engine failed. The ship’s owners tried one expert after another, but none of them could figure out how to fix the engine.
Then they brought in an old man who had been fixing ships since he was young. He carried a large bag of tools with him, and when he arrived, he immediately went to work. He inspected the engine very carefully, top to bottom.
Two of the ship’s owners were there, watching this man, hoping he would know what to do. After looking things over, the old man reached into his bag and pulled out a small hammer. He gently tapped something. Instantly, the engine lurched into life. He carefully put his hammer away. The engine was fixed!
A week later, the owners received a bill from the old man for ten thousand dollars.
“What?!” the owners exclaimed. “He hardly did anything!”
So they wrote the old man a note saying, “Please send us an itemized bill.”
The man sent a bill that read:
Tapping with a hammer………………….. $ 2.00
Knowing where to tap…………………….. $ 9,998.00
*Effort is important, but knowing where to make an effort makes all the difference!*
————————- Story Ends ————————-
In case, you haven’t get the point already, programming is also like that. Knowing “where to tap” comes after years of experience and hard knocks and failures.
So, a typical job (for example Migrating a site from one server to another) might take a newbie 1 week to do (I was a newbie before). And NOW it will take me 6 hours to do. If we go pay-per-hour, it doesn’t make sense for me to take that job. And if you put a gun to my head that I must take this job, then I’m better off acting like a newbie and drag my feet for 1 week deliberately on the project and charge you for a whole week’s work. Which will then won’t make sense or even be fair to you, the client.
So, we all have to drop this pay-per-hr mindset and go into pay-per-objective mindset where the scope-of-work/time/cost is defined/agreed between all parties before work start.
This is not just me talking as a service provider, but as a client as well. If I need someone to paint my house, would I pay more to someone who takes more days to do the job? It just doesn’t make sense.
That’s my rambling for today, because I just had a talk with my client today who insist that pay-per-hr IS the best and fairest way.