Prison Breakage

During the last few weekends, my main personal productivity killer has been the show Prison Break. I checked it out because it had gotten general praise, and was quickly hooked – I’m now approaching the end of season 2, the beginning of season 3 is downloading.
It’s pure mind candy, and very similar to 24 in pacing & storytelling. There’s the same kind of continuing story line, the same use of cliffhangers at the end of almost every episode, and the same amount of utterly absurd plot twists (for the sake of plot twists). Thing is… it works, like 24 does, because the plot twists are part of this TV genre. You forgive the occasional silliness because of the sheer force of plot, because you’re swept away by the events. You are manipulated because you agree to be manipulated, because it’s good entertainment. The “I’ll just watch one more episode” effect.
What’s it about? A man is sent to prison and death row for a murder he didn’t commit, and his brother launches an (absurdly complicated) plot to spring him free. I won’t say anything more here to avoid spoilers, but the story is complex, the cast is strong, and generally: if you liked 24, you’ll probably like this.
…now just to figure out when to do all the stuff I should have been doing, instead of watching this thing.
Catching up

So… Christmas and New Year. We had a nice, peaceful and sort-of-traditional home Christmas, together with my dear cute wife (artist’s depiction on right, thanks to Girl Genius), Niksu, and the girl-who-lives-in-his-bedroom-at-times. “Traditional” due to us having metric tons of traditional Finnish Christmas food, with some stuff borrowed from the Russian kitchen, and “not quite traditional” due to the glow-in-the-dark demon & pentagram we had as Christmas window decorations – and also due to us listening to “A Very Scary Solstice” and “An Even Scarier Solstice” as holiday theme music.
Everyone (including the cats) got lots of goodies to eat, and presents are always fun. I got a two Imogen Heap albums (nice!), a copy of the classic Dr. Seuss “How the Grinch Stole Christmas”, (whee!) and a 100mm macro lens (wow!). I’d complain that it was way too much and too expensive, but of course Santa is above normal everyday economic concerns. Apparently Wife had tipped off Santa about what I’d like, since I got things I very much appreciated. Seems that Santa had been busy in other ways also, since everyone got lots of fun and appropriate packages. One does wonder how Santa knows what lurks in the heart of man. Is he actually The Shadow, the other 355 days?
During the inbetween days before New Year, I ran a VTES tournament with a “munch/cheese” theme, “Temptation of Greater Power I”. Went well, and a tournament report is now available.
Then it was suddenly New Year, which we spent at Jari’s. Lots of people (some just visiting Finland for a short while), lots of bubbly, lots of snacks, sauna… was a fun party. The weather was (still) dismal, but bubbly drinks cure that to a large extent.
So, now it’s 2008, first full year in our new home starting up. Lots of stuff to do, things to improve and fix… and that’s good. There’s no real rush with anything, and there’s the luxury of being able to plan for long term.
Unexpected 2
A “you have a package” note arrived today, so I drove by the post office after work to pick it up, expecting either Delta Green: Eyes Only or a package from Paizo. To my surprise, it was neither: it was a copy of Burning Empires, from Luke Crane, of which I already own a copy via preorder.
A note inside read:
“As you may or may not know, portions of the first printing of Burning Empires have problems with their bindings. The books don’t fall apart, but the pages do pull away, and the damned thing just looks ugly after a while.
Since you were very supportive of the Burning Empires project and preordered the book, Chris Moeller and I have decided to repay your kindness with a free second copy. This copy should be free from any annoying problems and we hope you’ll use it to stave off the Vaylen threat from your world.”
Wow. Thanks guys, that’s what I call customer support!
My (original) copy isn’t falling apart, but it does show some of the symptoms. It’s very nice to have a second copy, in case I want to try running the thing at some point. We tried it once (another guy running it) and it didn’t work too well for us, but since then I’ve thought some more about it and have some ideas; I might like to try again at some point, with different people. In any case, that was a very cool gesture from Luke and Chris, much appreciation.
Good programmers and other mythical beasts
Haven’t written here for a while… had a nice Christmas & New Years, there was an interesting VTES tournament, lots of stuff to write about.
… but as it happens, I’ll get to that later, due to a weird coincidence. During lunch at work yesterday I was thinking about good programmers, and why they seem to be so rare. Then last night I ran into an article (via Slashdot) on how to recognize a good programmer – and it was spot on, and pretty much mirrored my own thoughts on the subject.
Thing is, most IT companies want to recruit good programmers. Many of them think they have them. In actual fact, what they tend to have is what Daniel in the article calls “career programmers”: the people who do it just as a job. They don’t have any real interest in programming, it’s just something they know well enough to get hired (but often no better than that). These people will never spontaneously teach themselves new tech, most of the time they are blithely unaware of what the “new tech” even is at any given moment. They code with the “least effort required” style; if they can cut+paste existing code that’s always the preferred solution, regardless of suitability. If they are forced to write something from scratch, they will take forever to do it, and produce something that only works with some very loose definition of “works”. They never produce elegant code, in fact they are somewhat confused by the very concept.
There’s nothing wrong, as such, with doing programming as “just another job”, without any real interest in it. It pays the bills, and there’s enough demand for programmers that even mediocre ones tend to find jobs. Problem is, it’s also a trap of sorts: the actually competent people in the company will come to realize that a given person isn’t all that hot, and the management will also probably realize it at some point, just by looking at how much the person actually gets done. This usually results in the person being given the simple, repetitive jobs (routine maintenance, implementing a new slightly different version of something that already exists, that sort of thing). This is natural, since you simply can’t give anything actually complicated to these people; it will either never get done or will be implemented in a way that will need a total rewrite in order to work. So people like this end up painting themselves into a corner, where all they will ever get to do is boring, routine stuff. For some people this is fine, for some it isn’t (and they eventually move to something more suited for them).
Don’t take this as complaining about newbie programmers, it’s not. The critical difference is what’s #1 in the article, too: “passion”. Good programmers are fascinated by the tech they use, and constantly look for new and better ways of doing things. They teach themselves stuff constantly. A good beginning programmer is not a problem, since he’ll be constantly improving himself; you just need to point him in the right direction sometimes. These people ask questions, and ask the right kinds of questions. Career programmers can’t be bothered; if they don’t know something, they expect their employer to get them on a training course (which of course won’t do much to help).
Naturally, things aren’t this black and white. There are good programmers who as totally stuck in a rut, and see everything through a lens of a single technology. There are mediocre programmers who are slowly crawling towards being competent; they might not have the real drive, but they don’t feel like sitting still either. In addition, technical skill is just part of the equation – some good programmers are insufferable prima donnas, some have way too much of a “my way or the highway” attitude, some have a total lack of all social skills… nothing is ever totally cut and dry. I consider myself to be a good programmer, but I’ve been known to have some of those faults at times. I’ve gotten better. Mostly.
Anyway, the truth of the matter is that good programmers are very hard to recruit. They are rare, they tend to already have jobs they are happy with, and they tend to be picky about recruitment terms. They also tend to be somewhat tricky to keep, since they usually want to work on cool stuff. And let’s be honest here, 95% of all IT business is anything but. Every single company pretends they have revolutionary new ideas and highly valuable proprietary information, but in reality their “valuable IP” can usually be written on the back on a napkin, with large font. Sure, some companies actually are creating interesting new stuff, but most aren’t. So, it’s a challenge to find something that’s interesting enough to keep your good people… interested.
The classic “Mythical Man Month” remarked that good programmers can be multiple times more productive than mediocre ones. That’s still true… but it’s not quite that simple. Good programmers (and, I suppose, all real professionals) are very productive when they are doing something they find interesting and/or challenging. Give them routine work, and chances are they they won’t be all they productive – they’ll be bored out of their minds, and thinking about other stuff.
So… I guess it boils down to “good people are hard to find”. Nothing new there. It was just funny reading that article, having thought about the subject just previously. Another facet was reading Zed’s infamous rant some days ago; though it’s a bit of a stupid and misguided rant, the part which struck true was the complaint that some consulting companies provide people who are… not very good in reality, and charge a silly price for it. At worst, I’ve seen and heard of cases where the management refuses to provide decent workstations or software for their own people, and is stupidly tight with money in all respects… but then some crisis or another crops up, and suddenly it’s ok to hire a consulting company for huge amounts of cash. The saddest thing here is that more often than not, the consultants will totally fuck everything up. Mediocre people working for a project they have no real interest in, for a limited time – it would be a surprise to see anything actually good come out of that. At best, you get a pile of “more or less works” code that’s a nightmare to maintain. And who does the maintenance? That’s right, the in-house folks.
I could comment more here on Zed’s Rails rant, but I’ll mostly pass – this has turned out long enough as is. What I will say is that I agree with Daniel’s reaction. Rails is a smart framework, and lots of smart people like it. Lots of smart people also hate it, and lots of dim people also seem to like it, perhaps thinking it’s the Visual Basic of the web world and that it will let them design web apps without understanding the technology. It isn’t and it won’t.
In case you are wondering, this post isn’t aimed at any particular company or person. It’s just a commentary of what I’ve seen, over decades in the business.
I love programming and IT, still. I’m glad to be doing it, and getting paid to do it. But oh boy, the idiocy I’ve seen at times…