Thursday, December 29, 2011

The Cost of Expertise

What is an expert?
They are someone who knows their subject front to back, is very experienced, therefore knows the history behind it, and is quick.  What about just from programming? An expert knows the syntax 99%.  They know the little tricks, they know the base language, they can recall functions from memory, etc.

Base language?
A real jQuery expert is also a Javascript expert.  A lot of people now a days are jumping right to jQuery without ever learning Javascript first. That's a tough choice.  When you choose to learn only a library first, you are basically ignoring the way it works under the hood.  And that is OK for libraries that expose nearly all the features you're going to need, or change the language. Like PHP does from C++. You now write PHP code instead of C++ code. However, jQuery is not like that. It is a utility library to Javascript.  It doesn't have it's own syntax, or it's own operands.  It still uses the dot operator, the square brackets, the curly braces, even the same built in Javascript options.

So why does an expert cost so much more money?  You can go find a freelancer for $15 or $20 an hour, sure.   And they might be an "up and coming" expert, or an "expert to be".  But right now, they aren't an expert.  So what do you get with a "non expert"?  You get your results slower, your code my be convoluted, it may not abide by standards, it may not hold up the test of time.  All of the things normally learned through experience.

So when you pay $100 or $200 an hour for an expert, you are paying for all of these things, BUT you're paying for one other VERY IMPORTANT thing that experts have.  When an expert is compensated well, money is no longer a concern. Obviously right?

The funny thing about experts, is that money is NOT the most important thing - The work is.  So by filling the pot with more than enough water (money) the pasta (expert) can boil freely.  (Sorry my metaphor is terrible).  Basically, when money is no longer on the mind of the person doing the work, they are now free to do amazing work.

With your $20 an hour guy, he's gonna stretch his 1.5 hours to 2 hours, he's gonna work while thinking about the time - "is this project really worth it?", "I can't go back and optimize it, it wasn't in the budget".

Experts can do their jobs without any of those concerns, because they are already being paid enough, so you allow them to do what they do best, and nothing else.  People generally do not work their best when they are concerned about money (or time), or if they don't feel the time spent is worth it.

In the past, before I was an "expert", I would charge $30 an hour.  And I would be doing work that others would pay $100 an hour for.  I always kind of felt that, even if I did good work, I should be charging more.  I felt like my time wasn't well spent and it kept me from really going wild on the code, from being really creative.  Later, now that I'm much better compensated, I don't even think about the money. I charge enough now, that if I want to spend 3 hours re writing some method or some function to make it way better, I can.  I can slow down on some parts because I'm not worried about spending time I shouldn't be spending.  Time is no longer a concern, because money is no longer a concern.

This is a similar point to being paid on salary vs hourly.