Wednesday, July 09, 2008

Malcolm Gladwell on the Challenge of Hiring in the Modern World

I'd be the first to admit that I'm a Malcolm Gladwell fanboy. Gladwell is a writer for the New Yorker and the author of The Tipping Point, Blink, and the upcoming Outliers. I don't always agree with what he says, or how he says it, but that makes him even more valuable to my mind.

In this twenty-minute or so video from the 2008 New Yorker Conference, Gladwell talks about one of my favorite topics, measurement dysfunction (although he never uses that term) , as applied to choosing who to hire. Like everything he says or writes, it's fascinating. He talks about the the total lack of correlation between the pre-hiring evaluation and post-hiring performance of professional hockey and football players, school teachers, and lawyers. He has lots more examples that didn't fit in the time allotted for his talk.

I'm sure that my various co-workers are tired of hearing me talk about how freelancing and contracting is the inevitable future employment model, and that the only thing that is holding it back now is job lock because of the lack of universal health care in the United States. There are two reasons why this is our future.

  1. Competitive pressures are increasingly making it difficult for organizations to keep talented (and hence expensive) employees on the payroll without keeping them working on projects that directly lead to revenue generation in the short term. This is not good in the long term for either the organization or the employee in an information economy. It's a form of eating your seed corn and it can only be successful in the long term if your employees are an easily replaceable fungible commodity. (Hint: they're not. Regardless of the state of the economy, there is always a competitive marketplace for the really good people.)

  2. It's impossible to know who to hire. There is no test that tells you who the great employees will be. Past performance is no predictor of future performance. There is no way to tell ahead of time which job candidate will be a good match for your organizational culture and for the task at hand. The only way to know for sure is to hire them and try them out. This is the crux of Gladwell's talk. That's why I think the wave of the future is hiring contractors, and then keep hiring the good ones. And not hiring them as regular employees (see point #1). (Yes, I realize there's an IRS issue here. That needs to be addressed along with the health care issue.)

Gladwell's talk is worth your time if you have any input into hiring in your organization. And even if you don't.

Tuesday, July 08, 2008

Thinking About Software with Gödel and Cantor

Most people that work with me are surprised to learn that I test at the far end of the introversion scale on the Myers-Briggs Type Indicator personality test (I'm an INTJ). Since I have a reputation as a very hands-on engineer, they might also be surprised by the fact that I enjoyed taking a lot of computer science theory classes when I was in graduate school: formal languages, computability, algorithms, etc. I insist on finding practical applications for this stuff all the time. And occasionally I entertain myself by thinking about things like Gödel Numbers.

In 1931, philosopher, logician, and mathematician Kurt Gödel showed how you could take any formal language and represent it as a mathematical function by encoding the symbols of the language numerically and representing the productions of the language as a function that operates on the resulting numbers. Whenever you have formal systems A and B, showing that one can be converted into the other is always a win, because it's a form of code reuse: proving something about A now also applies to B. It didn't take long to show that a Gödel number could be represented as a string that could be operated on by a Turing Machine, adding yet another formal system to the party.

You can trivially apply this to any piece of software as well. Just take a core dump of your program's initial state in memory. You can think of this result as a hexadecimal representation of its Gödel number. Now take another dump of your program after every instruction executes. You end up with a series of Gödel numbers. Now write a single mathematical formula that generates this series of numbers. You have just converted your program into a abstract function amenable to all sorts of formal analysis. True, it's so large and ugly that such analysis may be intractable, but it's at least theoretically possible.

Remember those intelligence tests you took in grade school where you had to choose the next number in a sequence? I am sorry to inform you that any number can be the correct answer. It is trivially easy to write a mathematical function to generate any arbitrary sequence of numbers. As Mrs. Overclock (a.k.a Dr. Overclock, Medicine Woman) frequently points out, the fact that she and I both did well in school has more to do with the fact that we are good at taking standardized tests, not that we're necessarily smart. Of course, knowing what answer is expected is itself a useful life skill. But I digress...

Theoretical computer scientists are fond of talking about Turing Machines with infinitely long tapes. They do this mostly so that the are not constrained by physical limitations. What they really mean is "the tape is just as long as it needs to be". The fact that there are algorithms that ultimately try to march along to the end of an infinite tape is part of the fun. This is a form of the Halting Problem.

We can do this with our abstract mathematical function too. We just assume we always have enough bits to represent any possible Gödel number we want to compute. An infinite number of bits should be about right. But what kind of infinity?

It turns out that there are different orders of infinity. Around 1874, set theorist Georg Cantor showed that indeed while the number of integer numbers (or the cardinality of the set of integer numbers to be more precise) was infinite, and the numbers of real numbers (ditto) was infinite, there had to be more real numbers than integer numbers. That's because we could form a one-to-one correspondence between the set of integer numbers

(... -1, 0, 1, 2, 3, ...)

and the set of real-numbers

(... -1.0, 0.0, 1.0, 2.0, 3.0, ...)

but in between each of those real numbers was another infinite series of entries in the set of real numbers

(... -1.0, ... 0.0, 0.001, ... 0.01, ... 0.1, ... 0.2, ... 1.0, ... 2.0, ... 3.0, ...) .

Cantor called the transfinite number that was the cardinality of the set of all integers 0 ("aleph null") and the transfinite (but larger) number that was the cardinality of the set of all real numbers 1 ("aleph one").

What is the relationship between 0 and 1? You might expect that since there is an infinite number of entries in the set of real numbers in between each entry that corresponds to an entry in the infinite set of integer numbers, that 1 would equal 02, or maybe 00. Not so fast...

Since we can make a one-to-one correspondence, or enumerate, each bit in our hexadecimal Gödel number with an integer number, the number of bits in our infinitely large Gödel number is 0. So how many unique Gödel numbers can we form from 0 bits? That's easy for any software developer: 20.

Here's where it gets interesting (no, really). What order of infinity is 20? It turns out, according to Cantor's continuum hypothesis, that this value is 1, the cardinality of the set of all real numbers.

Coincidence? You decide.

Daily Organization

The nature of the work I do frequently involves custom hardware and a lot of expensive diagnostic instruments. That typically precludes working from home. (Besides, when you're as lucky as I have been to work with such great people, why would you want to?) In Red, Yellow, Green Blue I described my dirt simple way of keeping stuff organized in the briefcase I schlepp around to customer sites. Now I'll describe how I keep organized while I'm working at the customer site.

I spent years in academia, more years at a national laboratory rooted in academia, and years again at Bell Labs and two of its spin-offs with a long tradition in research and development. The lab notebook was a fixture at all of these places. Yet its utility wasn't apparent to me until I began freelancing. Go figure. Now I wonder how I ever lived without it. It's a tool for organization, an indispensable part of my billing process, a cache memory, and an archival storage mechanism, all rolled into a handy item that fits in a briefcase or a file cabinet.

John Dickinson Blank n' Red Notebook The lab notebook is traditionally a hardbound notebook with blank ruled pages, and there are still plenty of folks that use those, especially if the company is paying for them. But it can also be nothing more than the spiral bound notebook like you may have used in college. I use something in between. John Dickinson is a British company that makes a series of spiral-bound Black n' Red notebooks with plastic covers. I use them exclusively as my lab notebooks. They are sturdy and handle the occasional beverage spill. The fact that they are in my two favorite colors is just icing on the cake. Each client has their own notebook, and I label the front with the client's name and a sequential number. I typically go through a notebook every two months, more or less, on a project. Although they come in ISO standard sizes (i.e. not 8.5" x 11") they still fit in a standard file cabinet. The elastic strap riveted to the back cover keeps all my ancillary crap from falling out.

Black n' Red Lab Notebook with TUL Gel Pen I'm always collecting odd scraps of paper, notes, and odds and ends that fit nicely in the pocket at the front of the notebook. I use TUL-brand gel pens almost exclusively, which I buy in boxes of a dozen at OfficeMax. Their ink can't be easily erased, they are reliable, and (most importantly) they fit inside the spiral binding of the notebook.

Black n' Red Lab Notebook In Action I make a note of the date at the start of every working day, and make a note of at least my start and stop times. I can usually reconstruct what I worked on that day, and approximately for how long, just by perusing my notes. (You may notice that the dates on these pages are over four months apart. Some projects work that way.) Symbols in the margins give me further guidance: stars are actions items and must be checked off; asterisks mark information that I am likely to need later; question marks are things I need to find out; arrows point me forwards or backwards to related information.

Note that my lab notebooks are the intellectual property of my company, Digital Aggregates, not of the customer. I have never had a customer question this, but sometimes it pays to be clear. If a customer calls or e-mails me with a question, the notebook comes out of my briefcase or file cabinet. Given the occasional senior moment, I've been known to refer to my archived notebooks to remember how to do things like a Linux kernel build.

Time Card I keep my own weekly time cards that I use for invoicing. Data from this paper form gets entered into a QuickBooks time card, which I use to generate monthly invoices. This paper time card also gets covered with notes like customer project numbers and billing codes. I keep a PDF version of the time card form on the web so I can always print a blank one at a customer site. I've never had a client that required me to get a signature on my time cards, but several of them do require me to use their own web-based time card system, which is very reasonable. I make sure that the customer time card and my time card agree. Accountants Payable departments don't like surprises, even if it means being invoiced for less than amount indicated in their own system. (I learned this the hard way. Never round down. In fact, never round at all. A fifteen minute discrepancy in the client's favor nearly meant a month delay in getting paid.)

In A Future Without Keyboards I mentioned that I also use a Palm T|X PDA to help stay organized. It keeps my calendar, my contact database, and a lot of notes, and I keep it synced to my ThinkPad X61 laptop. When I travel light, I carry a Nokia N810 internet tablet to keep up with email and web cruising.

But I have also learned not to depend too much on anything that requires electricity. (For example, I wear a self-winding mechanical wristwatch.) Hence, the lab notebook and the paper time card, both of which have served me well.

Update (March 2010): I recently replaced my Palm PDA, ThinkPad, and Nokia with a Blackberry 9630 Tour and an Apple MacBook Air. The Tour supports both CDMA and GSM standards, so it pretty much works anywhere in the world (or at least in my experience, everywhere I've gone in the U.S., Canada, and the U.K.). Plus, it serves as not only a phone, but a GPS receiver, MP3 player, digital camera, address book, date book, alarm clock, web browser, email client, and what have you. The MacBook Air is so light and thin that I have no qualms schlepping it through airports. I still use the Nokia for motorcycle trips, though.

Update (December 2012): Some years ago I replaced my Tour with a Blackberry Bold, and just recently the Bold with an iPhone 5. I still have the Air, but when I travel I typically take an iPad unless I know I'm going to have to do a lot of content generation. I chose the iPad model with a cellular modem partly because the cellular chip set includes true GPS support. Now that I have the iPhone, my next iPad may just be the WiFi model.

Update (2016-07-26):  Lots of changes over the past four years: I still have my iPhone 5, but my laptop is a 13" MacBook Pro, and I'm on my second iPad. One of the most useful upgrades I did was to my daily writing implements. One morning I picked up a gel pen on my desk and it had dried up -- a persistent problem with gel pens, regardless of the brand, in my experience. I picked up another: the same. Another. And another. Finally I got on and ordered a batch of Fisher Space Pens. They make many different models, all refillable with the same refills. Plus, they make refills compatible with Cross ball point pens, so you can use that nice gold pen you got as a gift. That's exactly what I've done. Below is a photograph of three different pens I had immediately at hand: the Cross pen I keep in my shirt pocket, the Fisher metal-body tactical pen I keep in my current project notebook, and a Fisher Space-Tec plastic-body pen I keep in a small notebook in my briefcase. The pens and refills are rock solid reliable, they write smoothly, and the refills last nearly forever. If it works for the astronauts, it'll work for you.

Fisher Space Pens and Cross-Compatible Refills