Saturday, June 4, 2011

Programming as Soulcraft

I'm always looking for "proxies for greatness" in potential new members of the Verilab team. It can take some time to find out if someone is good, because in the end "good" in this context means something like "consistently delivering desired results", and you can only see that over time. But there are clues early on that a person may be, or may become, good. Those are the P'sforG.

One is mentioned by philosopher-turned-mechanic, Matthew Crawford in his "Shop Class as Soulcraft". In chapter eight, "The Further Education of a Gearhead: From Amateur to Professional" he tells the story "Of Madness, a Magna, and Metaphysics" in which he takes on the task of bringing back to life an old and neglected-by-underuse 1983 Honda Magna V45. A key part of the repair was fixing the clutch hydraulics.

As he burrows in through the layers of grease and grime, he encounters a suspicious oil seal that he suspects is the culprit. But he can't be sure without a lot of extra work. This triggers a debate within himself as to the sense of digging into that oil seal when he knows he can perform a reasonable if temporary fix by simply focusing on the slave cylinder:
"It occurred to me that the best decision would be to forget I'd ever seen the ambiguously buggered oil seal. With a freshly rebuilt slave cylinder, the clutch worked fine. Even if my idle speculation about the weeping oil seal causing the failure of the slave cylinder was right, so what? It would take quite a while for the problem to reappear, and who knows if this guy would still own the bike by then. If it is not likely to be his problem, I shouldn't make it my problem."
Note that he's not idly trying to avoid work. His concern is for the client (who'll have to pay for the extra work), and for sheer economic sense in to the bargain. But there's more at work here than simple economics:
"But as I walked back into the fluorescent brightness of the shop, I wasn't thinking about the owner, only about the bike. I just couldn't let that oil seal go. The compulsion was setting in, and I did little to resist it."
It's that word "compulsion" that intrigues me. Only sentences later he mentions it again:
"There is something perverse at work here, and I would like to understand it. The oil seal was the opening to Pandora's box: I felt compelled to get to the bottom of things, to gape them open and clean them out. "
 Not money, not because the boss or client wants it. A compulsion, and thinking only about the bike. I agree with him; it's perverse, and I too would like to understand it. And his inner conflict, and outright guilt at the perversity of it is clear:
"But this lust for thoroughness is at odds with the world of human concerns in which the bike is situated, where all that matters is that the bike works... [The] more ... pragmatic view of the motorcycle ... grounds the fiduciary responsibility of the mechanic to the owner. In digging at that oil seal needlessly, I was acting out of some need of my own."
But if he didn't intend to be ironic there, he should have. And that's my point. It is the very compulsion he demonstrates that I believe is a Proxy For Greatness. I see it (and its sad opposite, a robotic lack of compulsion) all around in software.

The Proxy -- the sign you may be standing in the presence of programming greatness, or the potential for it -- is the tendency in some individuals to write clean, well-nigh poetic code not because it's useful (although it usually is) or reusable (ditto) but because they cannot *not* write such code. They are compelled to do so. They avoid, where possible, writing the same lines of code in more than one place not because a coding standard tells them not to, but because they are compelled to be succinct. Saying the same thing twice is icky -- it *feels* bad. Or they look on existing code, and cannot help but notice that those four "different" functions are really the same function. The itch to refactor develops, and may well become irresistible.

The correlation is not 100%. There are potentially fine programmers out there who don't have this instinct but can learn it. And I've met a few who go too far to the extreme, sacrificing all real concerns for an elusive platonic form of every program. But I reckon it's a very strong predictor. And I'd recommend erring on the side of too much of it than too little.

Verilab is hiring that kind of people in the field of chip verification. If you're looking for a place where Programming as Soulcraft is appreciated, where the beauty of a solution is part of its merit, and where you would be part of an elite team who understand the compulsion to Just Do It Right, give us a call.

No comments:

Post a Comment