June 20, 2008

Smart and Can Be Trusted

Posted in development at 1:59 pm by lugnuthorsefly

There’s a venerable article on hiring by Joel called Smart, and Gets Things Done.

More recently, Steve Yegge has written an piece, called Done, and Gets Things Smart

All of which are part of the tiresome and long-running rock-star programmer debate, but it did give me pause for thought about the kinds of programmers I’ve worked with over the years and the categories I’ve started to (no doubt unfairly) group them into.

DISCLAIMER: If you’re a former or current colleague of mine the rest of the article is not about you. It’s about other people. You are a unique sunbeam that cannot be so cavalierly stereotyped.

The Categories:

1) The Truly Useless

These are the people that cannot be trusted to do anything right. They have somehow graduated without learning to program at all. They need constant guidance and handholding and generate negative productivity by sucking time from other people.

They seem to survive by either

a) Finding a company with poor hiring practices that lacks the nerve to fire them, or

b) Endlessly taking 3-month contracts (which are never renewed).

Sometimes these folks are just in the wrong job. In one case a former programmer eventually let go went on to thrive as a testing and QA specialist.

These people are why you need a decent programming test as part of the interview process. A programming test won’t distinguish the great from the good but it will filter out the Truly Useless.

2) The Toilers

These are the people that can get stuff done and do it well within their areas of expertise but will generally have trouble with

  • Doing significant design work.
  • Finding a solution to a problem that involves doing something architecturally different (realising that replacing a slow RDBMS solution with a persistent in-memory hash table might be a good idea for example).
  • Learning something new (like a scripting language).
  • Taking initiative to suggest and implement significant changes.

There seem to be a couple of different kinds of toiler.

  • The JobsWorth: Some people just want their job to be as easy as possible. They don’t want the hassle of doing anything extra or agitating for change. They just want to put in their hours and get paid. I think some people are afraid of responsibility, too.
  • The Struggler: They can do it, but it’s hard work. The code gets done but they spend days baffled by mysterious bugs. Everyone’s a struggler at some point, I certainly was. As I get older I’ve realised I’m not necessarily smarter than a new graduate, I just get more done because I can fix that bug they spent 2 days on in five minutes because I’ve seen it before (3 years ago, in fact, when I spent 3 days fixing it).

3) The Go-To Programmer

This is Joel’s Smart and Gets Things Done programmer. My definition is: this is the person you can trust to solve a hard problem; the programmer with the smarts, experience and imagination to get around most of the problems encountered in a software project without handholding. This programmer will, for example:

  • Trace a bug into another subsystem in an unfamiliar language to fix it rather than saying “that’s the Java programmer’s problem”
  • Realise that there’s a big ‘ol lump of work between “code complete” and “software is released” that need to be planned for.
  • Be proactive about overcoming roadblocks rather than halting and waiting for guidance.
  • Not act like the team leader is the only person allowed to do design.
  • Come up with the complex load-balancing architecture that saves your website.

Ideally, your whole team (and you) is this sort of programmer. Go-To programmers are like gold to a PM or team leader because you can trust them to get things done and not bollocks them up.

4) The Rock Star

Some stuff is just really really hard. Like making streaming work on a 1x CD-ROM, or making leading-edge 3D engines and that fact is that the vast majority of us wouldn’t be able to solve these problems at all in any amount of time.

But do your projects have problems like this? I’m guessing not.

June 19, 2008

Quote of the Day

Posted in Uncategorized at 11:52 pm by lugnuthorsefly

“If I go down under, does my ass automatically become an arse or do I have to fill out some paperwork?”

(from http://www.reddit.com/info/6nz1k/comments/c04ehte)

April 22, 2008

We shall remember them…

Posted in Uncategorized at 10:13 am by lugnuthorsefly

The company I work for has just started asking people to work on Anzac Day to meet a delivery date for a client (a large British Company).

Since Anzac Day commemorates (in part) the sacrifice of Australian soldiers commanded by incompetent British generals I find this quite ironic.

February 22, 2008

Recent Code Smells

Posted in Uncategorized at 11:18 am by lugnuthorsefly

  • A variable called data_hash2
  • A variable called stuff
  • A class called SingletonFactory

February 4, 2008

Drawing a Circle in GIMP

Posted in Uncategorized at 3:31 am by lugnuthorsefly

I don’t know about you but IMHO an image editing program in which I can’t easily find out how to draw a circle has failed the usability test. A sane program would have a toolbar button with a circle on it.

In GIMP you have to do this (from http://www.rru.com/~meo/gimp/faq-user.html#circle):

How can I draw a circle with the GIMP?

Use the elliptical select tool, hold down CTRL key to constrain as circle, fill the selected area with new color, right click on selected area, choose SELECT, SHRINK, shrink selection by whatever number of pixels you want your circle width to be, right click again in selected area, choose EDIT, CUT. Voila, one beautifully antialased circle.

Oh, and extra lose points for making me look that up on Google, rather than putting it in the online help.

November 18, 2007

The Plague

Posted in Uncategorized at 4:51 am by lugnuthorsefly


When I first saw this I thought the roof of our office building was getting rusty. It turned out to be thousands and thousands of Bogong moths. I wonder why they cluster at the edges of the roof tiles?

For The Person Who Has Everything…

Posted in Uncategorized at 4:51 am by lugnuthorsefly

…the ideal Xmas present.


April 5, 2007

Prediction Markets are Fun

Posted in Uncategorized at 7:31 am by lugnuthorsefly

Australian Federal Election: http://home.inklingmarkets.com/market/show/4095

Cricket World Cup: http://home.inklingmarkets.com/market/show/2698

March 14, 2007

Geek Fusion

Posted in Uncategorized at 11:06 am by lugnuthorsefly

Transformer robots that turn into the Millennium Falcon. What’s not to like.


March 13, 2007

Getting some #$!@’ing work done

Posted in Uncategorized at 1:37 am by lugnuthorsefly

I find that adding the following to my /etc/hosts helps a bit 🙂 http://www.joelonsoftware.com discuss.joelonsoftware.com my.reddit.com reddit.com http://www.bloglines.com http://www.smh.com.au digg.com

Next page