Wednesday, October 24, 2012

Should compensation be based on performance or experience?


I often see the following situation: two employees, one fresh out of college and one who has been in the industry for 15+ years.  The younger one does a great job... producing 2 to 3 times more than the older one.  Yet their salary is 2 to 3 times LESS than the experienced employee.  Why?  Because often our salaries are determined by where we've worked and how long we've been in the industry.  This performance/salary mismatch has been bothering me so I've been trying to think of alternative systems...

What if everyone receives a base salary which is equivalent to what an entry level employee would make.  That amount would be guaranteed as long as you are employed.  In addition to that amount, you would be bumped to higher levels based on your performance.  The levels might look something like this (arbitrary amounts):

(Base) Level 1: $40,000 / year
Level 2: $65,000 / year
Level 3: $90,000 / year
Level 4: $125,000 / year
(Rock Star) Level 5: $150,000 / year

Each review period your performance would be evaluated and your salary adjusted up or down accordingly.
So if the brand new college kid wants to go crazy (and has the skills), he can make "rock star" level immediately.  If someone else is coasting... their salary will reflect it.

I imagine this system being harder to budget for.  Potentially... every employee could make "rock star" and you would be paying out a lot.  However, it would also mean that your organization should be doing AWESOME!
Also, should this apply to all positions within an organization or should each role be given its own set of "levels" that are appropriate?
The performance based model also has the drawback of less compassion for employees who have a personal crisis that impacts their performance.

Any experiences with this kind of a model?  Potential drawbacks?

Saturday, October 20, 2012

Keeping Your Knowledge Current

Lately I've been part of several discussions about keeping our tech skills up to date.  This post discusses my techniques for staying current.
  • Commit to spending time EVERY workday (and often non-workdays) keeping up with things. Everyone feels pressure to complete current projects on time... but we can't let that get in the way of maintaining our competency.  I personally spend one to two hours every day scanning various communities and investigating new things.  As a worker in the tech industry you can coast for awhile on your current knowledge, but soon you'll be wasting your time and the resources of your employer using old methods and technologies.
  • There are new libraries and technologies released daily.  Here is how I evaluate whether one is worth my time or not.
    • The easiest way is to watch how frequently it is mentioned.  If it's mentioned only once and not heard about again... don't waste your time.  If you hear about it over and over from multiple sources, especially over an extended period of time, you better check it out.
    • If you decide to investigate it, search for the "main" page about it.  Usually this is the product or project home page.  That should give you a quick idea of what it is about.  In your mind compare it to other similar products.  If it looks like something that may take off, read through the sites tutorials if they exist.  Also check for other blogs/sites with tutorials or discussions on it.  I usually put a product into one of three categories at this point.
      • This is cool! - I need to try out some actual code in the next couple days.
      • Interesting - Ok... I learned what it is.  I have that frame of reference.  Now I will wait to see if it catches on or not.  If so, I'll invest more time at that point.  
      • Redundant or not useful - Don't waste any more time on it.
  • I encourage you to find your own sources of the latest news and trends.  I have three main sources:
    • Hacker News - I subscribe to their RSS feed so I see every post, but if you are short on time just check their home page a couple times a day.  The most useful articles will float to the top.  Some people instead prefer reddit
    • Twitter - I was a latecomer to Twitter.  I still don't tweet much, but I have found it invaluable as a tool to follow some of the influential people in the industry.  (FYI... if someone consistently tweets irrelevant things that pollute my stream, they're gone.  Even if they occasionally post something great, I can't waste my time reading what they had for breakfast.)  This is who I follow.  I particularly recommend:
    • RSS feeds - I use Google Reader.  Here are the tech feeds I follow (probably too much for some).
Some people go to tech conferences as a way to stay current.  In my thinking you are WAY too slow if you are doing most of your learning at conferences.  That means someone else already investigated it, learned about it, prepared/submitted a talk on it, got accepted, and is now giving a talk on it.  That's often a six month or more lag. Ouch.

Employees in our industry are in high demand and we are usually paid well and have employment opportunities across the country.  Staying current is a small investment that justifies that luxury.

What are your tips for staying current?

Monday, October 1, 2012

Color Cam

Last week I had another idea for a crazy webcam oriented experiment.  I imagined a site that played music and showed the video from the webcam.  A technique to determine movement would be used, similar to what WebcamSwiper does.  The movement would be shown as random colors splashes with the intensity/brightness varying based on the volume of the music.  It seemed like it would be kinda psychedelic, but cool.
Well, I finished it.  Here.  It's not bad... but didn't turn out as cool as I thought.  Oh well, moving on.