Thursday, February 28, 2013


The Coding Job Gap

My nine year-old son and I enjoy listening to Bird Note on KPLU, our local NPR affiliate. He and I sit patiently in the school parking lot waiting for 8:58 AM when we hear the announcement "and now time for Bird Note" signaling the start of the show. I think he loves hearing the bird sounds most of all. I love spending a few minutes together listening and laughing sometimes at the strange bird noises. The school bell usually rings right at the end of Bird Note and he opens the door, saying a quick goodbye, and runs off to class.

This morning as we sat there watching the rain fall on the wind shield, waiting for Bird Note, a story about came on. You can listen to the story here. I'd read about on a couple of days ago. The NPR story got me thinking. Would my kids ever really have the opportunity to learn programming the way I did when I was their age?

Most kids of my generation were exposed to computers for the first time in middle school or maybe high school. My high school had about a dozen Apple IIe's and a few Apple IIc's in the computer programming class. I took quite a few classes in high school learning to program in Basic on an Apple IIe. I was also fortunate because my parents indulged my seemingly endless interest in computers by purchasing a Commodore 128, the successor to the wildly popular Commodore 64. I spent many an afternoon in the basement typing in code I found in the latest BYTE magazine or some other computer hobbyist publication. We didn't have the Internet back then so we had to go to the bookstore and find a magazine with code examples to try out. Eventually I learned enough to write my own code. I remember writing my first database application. I used it to track the number of miles I ran each day. I was also into running 10K races with my dad at the time. It's funny to think now, but the program saved data to a 5 1/4 inch floppy disk. Every time I entered a new record to the database I could see the disk drive light flash and hear the mechanisms inside spin up. There was a very clear and definite connection between all these parts of the machine. Most importantly, I felt incredibly empowered by my ability to command this machine to do what I programmed.

In the early days of personal computing every computer came with some flavor of Basic installed. In fact, it was all but assumed that you would use the computer to do some level of programming. When you turned the machine on you were presented with a little flashing box or line. You could type a command, such as "load" or you could start programming right there, immediately.
At some point, I would guess around the time of the Windows 1.0 graphical user interface, computers stopped being shipped with this very "basic" assumption. The machine became a tool to accomplish work and the idea that you would use it for programming began to fade. Of course you could purchase Basic or some other programming language such as Delphi or heaven forbid C or C++, but they weren't bundled with the machine. I think that's a shame.

My kids know how to use a computer proficiently. I would say they know their way around Windows and OS X. But using a computer is not the same as programming one. And it's no simple task getting the computer setup to program. I think attempts to solve this problem. There's a very simple interface on the website for entering code and seeing the result immediately. It gets very close to those early days of the blinking command prompt. This is a good start. It's a way to engage kids in learning that the computer can do more than play games or videos.

Why does this matter? Do we need more kids learning to program? Yes! Absolutely!

According to data at there will be 1.4 million new jobs requiring coding experience by 2020. The value of these jobs in terms of salary is over $500 billion ($500,000,000,000). That's a lot of zeros. It's half a trillion dollars in potential personal income that we as a country need. We need these jobs to stay here in the US. These are good quality high paying jobs. Interesting jobs.

There's more at stake than the 1.4 million computer jobs. The skills required to program are skills that we as compensation professionals can leverage in our everyday work. What's important is that our future generations understand that they have the power to harness the computer to accomplish cool and amazing, not to mention useful things.

To illustrate my point, let me explain a couple of key programming concepts: conditional statements and iteration.

A conditional statement checks the value of a data element and performs an action based on the data value.

Here's an example:

A = 34,000
B = 35,000

If A is less than B then
  Do one thing
  Do another thing

Very simple. It's just seeing if A is less than B and doing something based on that.

Why would we need to know how to do this in compensation analysis?

The screen snippet below shows a small sample analysis checking to determine if an employee's actual salary is below the range minimum.

The formula in cell C2 compares the values in A2 and B2. If the salary is less than the minimum then it shows the amount below minimum, otherwise it just shows a blank cell. At a very fundamental level, this formula is a form of programming! And of course we can make much more elaborate formulas that begin to really look like programming code.

Iteration is the process of repeating a bit of code until some condition is met. For example, here's some programming code to determine how many years it will take for an employee's salary to reach midpoint.

StartingSalary = 35,000
Midpoint = 40,000
MeritIncreasePercent = 3.5%
RangeIncreasePercent = 2.0%
NewSalary = StartingSalary
CountOfYears = 0

Do While NewSalary is less than Midpoint
  NewSalary = NewSalary plus MeritIncreasePercent
  Midpoint = Midpoint plus RangeIncreasePercent
  CountOfYears = CountOfYears + 1

Print CountOfYears

The CountOfYears is increased by 1 each time the NewSalary is less than the Midpoint. This little bit of incrementing will continue until the NewSalary is greater than the Midpoint. But we can do the same exact thing in Excel and it's a bit easier to see and understand.

Here's a simple example of iteration in an Excel analysis of compensation. This is another type of programming (click image to enlarge).

So here's the bottom line. It's not important if the kids today learn to program in some specific language or on some specific device. What's important is that the kids of today learn the concepts of programming. That they feel empowered to use their minds and their creativity to solve problems. It's within their reach. The technology we have today is amazing and it continues to become even more amazing. We need our future generations to harness this amazing technology to keep us competitive as a nation in the new world economy.

Tuesday, February 12, 2013



Are you ever called upon to write a communication piece for distribution to all employees?  Do you end up writing a document that is full of compensation jargon?  Do you find it difficult to write a piece that uses common language?  I know I do!  Well, I found a great little web tool that will help in this endeavor. It's called "The Up-Goer Five Text Editor".

Here's how the website describes itself:


Okay, Ten Hundred? Really? Why not just use the word thousand? Why you ask? Because the word "thousand" is not one of the thousand most used words in the english language. Ha! Who knew!

I tried writing a piece that explains base pay and incentives and bonuses and here's what I came up with:

"Pay is what people get for doing their work day to day. Some people get added pay for doing more work. The added pay could be planned or maybe the added pay is a surprise. It's all about how you want to get people excited about their work. People want to feel that they are making a mark on the world."

This is a little too simplified I think. But it does provide a starting point for writing a document that is much more understandable.  Here's a revised piece:

"Base pay is what people get for doing their work day to day. Some people get added pay for doing more work. The added pay could be planned or maybe the added pay is a surprise. Added pay that is planned is called an incentive. Added pay that is a surprise is called a bonus. It's all about how you want to get people excited about their work. People want to feel that they are making a mark in the world. Incentives are used more than bonuses to get people engaged in feeling they are making a difference."

Here's a screenshot of the second piece on "The Up-Goer Five Text Editor" showing all my non-permitted words. Click to enlarge.


Future Of Compensation Technology Response

The latest issue of the WorldatWork "Focus On Compensation" article discusses several points related to the "Future of Compensation Technology".  I eagerly clicked through from the e-mail link to the article thinking that I would be in for a treat, hoping for some grand predictions on where we're headed as compensation professionals.  What I read instead is that the future of compensation technology is all about analytics and access to greater amounts of data. While I agree that this is certainly the trend and that having a greater ability to analyze the vast amounts of data generated by compensation and human resources in general is desirable, I was left feeling a bit let down.

Here's the rub for me. I feel like technology hasn't changed all the much in the past 10 years for the vast majority of practitioners. Yes, absolutely, Excel has garnered new features that make working with spreadsheets easier (I'm thinking of the Remove Duplicates button for instance) and systems such as  NextComp make aspects of compensation easier and more automated.

But for the majority of people, the function as it relates to technology is about the same. We're working with spreadsheets, sometimes Access databases, we're pulling data from many disparate sources, all of which have their own formats and their own idiosyncrasies, and we're struggling to leverage all this information in a way that makes sense from a business standpoint.  Sure, the use of paper has dramatically dropped. I don't remember the last time I had to work with a paper survey, but the PDF file has usurped paper. It's no easier to use the data in the PDF file than the paper copy.

I should clarify. I'm focused on market pricing and compensation analysis. I'm deeply involved in this work on a daily basis. In 2000 when I started thinking about an automated salary survey system I kept asking myself the same question; "Is there a better way?". My answer to the question was NextComp. And I believe NextComp is a great answer to this question for many people that need an automated system, something that is a step up from working in those "monster" Excel files we've all experienced.

I'm just not sure what the next ten years will hold. Clearly mobile is a huge sea change in how we use technology. We have the computing power in our pocket that used to take up half our desk. We have always on, always connected devices that can make our work actually fun to complete. Our laptops weigh only a few pounds and have screens that look like glossy magazine pages. But we're still faced with the same fundamental issues of getting access to good reliable sources of data and making that data accessible in a format that is usable and meaningful.

And that is not something that any one company or platform can fully solve. It would take the coming together of many organizations agreeing to a common language and a common format.  Does anyone remember or know about HR-XML?  When I started NextComp I thought HR-XML would solve all of our problems. All of the survey providers would join up and agree on a common interchange language and common field naming conventions and by 2010 we would have automated data interchange with NextComp as a hub for all that data.  But alas, as with many visions of the future, it was a bit optimistic to think this would come to pass. There are just too many vested interests and too many people involved to make this a reality any time soon.  So NextComp, or our customers loading data themselves, does the work of consolidating that survey data into a common format. And it's the same story for all the other salary survey system providers. Part of our services are to take all this data and make some sense of it.

Ultimately though, I believe that there will come a time when we'll have a truly automated systematic way of consolidating this data and using it.  It's what the the customer of the data wants and so I'm hopeful that the providers of the data will find it to their best interest to provide that service themselves.