I’ve been rereading Joel Spolsky’s “Smart and Gets Things Done”. His writing style is entertaining. I’m not always in 100% agreement with the guy, but who ever agrees 100% with anyone right? However, Joel has a ton of things that are smart, well thought out, and when one pays heed can really help out during the course of a software project. Since I’ve been writing on this topic lately, I figured it would be a great idea to give this a read and maybe even add my two cents to a few of his passages.
I didn’t get very far and I had already found one bit that I wanted to elaborate on. This part was in remark to hiring college interns and the fact that the best college students are often already good programmers.
“The good news about our field is that the really great programmers often started programming when they were ten years old. And while everyone else their age was running around playing “soccer” (this is a game many kids who can’t program computers play that involves kicking a spherical object called a “ball” with their feet (I know, it sounds weird)), they were in their dad’s home office trying to get the Linux Kernal to compile. Instead of chasing girls in the playground, they were getting into flamewards on Usenet about the utter depravity of programming languages that don’t implement Haskell-style stype inference. Instead of starting a band in their garage, they were implementing a cool hack so that when their neighbor stole bandwidth over their open-access Wi-Fi point, all the images on the web appeared upside-down. BWA HA HA HA HA!”
This got me thinking. I’d like to find programmers who have started a band, chased the girls, played soccer, flipped the images, argued the Haskell points, compiled a Linux Kernal (or two or three), and more. I don’t want the all exclusive nerd only programmer, because today they’re often not that useful on software projects.
When I’m looking for other developers to hire and work with I want a number of things. The technical bits are of course important, very much so, but I want to work with developers who know about all sorts of things. I want programmers that know why financial application development pays well and non-profit work doesn’t, I want them to know about the successes and losses of business endeavors within the software industry. Most importantly, I want them to be personable, approachable, and interested in life beyond just hacking lines of code 24/7. Nothing wrong with the later, but that is only helpful for about 20-40% of the time on a project.
Warren Buffet looks for the criteria of “integrity, intelligence, and energy”. I’m curious, readers out there in reader land, when you’re looking to work with a team or hire a team member what do you look for? What are some key indicators besides the white board coding questions and technical bits?