I live in a strange world, that very few people I know really understand. I suppose that could be said of everyone, but that’s not my point. My point is that I regularly encounter situations in which arguments I make are considered strange. I assume that that’s because few people fully realize the extent to which my world is strange.
My world is strange in that it exists between several particular and interconnected contradictions that most people choose to ignore, for reasons I can’t criticise. I’ve chosen to exist between those contradictions, and if other people choose not to, that’s entirely up to them.
First of all, as a software engineer, I live in a world dominated by precise definitions and precise language use. That suits me well: when I was younger, I was determined to “understand” the world around me by analyzing everything until I could, with reasonable accuracy, predict things1. I’ve never quite outgrown that tendency to analyze and overanalyze things, but by and large I’ve learned when and where to stop.
When it comes to designing software, though, analyzing is good. It prevents duct tape programming, a practice by which programmers intentionally avoid thinking too much about how their code might be used in future, because of the assumption that before that happens, requirements will have changed too much to make that worthwhile2.
So regardless of how much I strive for balance between analyzing stuff around me and just going with the flow, part of my life inevitably pulls me in the direction of analyzing things.
On the other hand, I’m a vegan. Now you might wonder what that has to do with anything I’ve said so far, and you’d be right, it doesn’t — not directly. The thing is, many if not all of my fellow vegans, vegetarians and animal rights activists exist in a framework that is about as far removed from this analytical “engineering” mindset that it could possibly be.
It is with great love and respect that I call them… well, the German term would be “weltverbessernder Teetrinker” — it describes a particular type of slightly unfocused person that loves chilling to a cup of tea (herbal, most likely, not so much the English cuppa), whilst relaxedly discussing that, you know, animals have feelings too, so we shouldn’t really, like, hurt them. Dude. The best English term I know to describe the same is “hippie”, even if that’s hardly an accurate translation, nor description.
Of course this description is entirely unfair, too. Some of the vegans I know are anything but “chill” when it comes to animal rights, and most can very precisely explain to you why they chose not to consume animal products. They can become very frustrated, angry even, with people who ignore their rational arguments and dismiss them as dreams inspired via the waccy tobaccy.
The thing that’s in common for most of the ones I’ve met, though, is a generally very emotional approach to what they strongly believe in. An interestingly large number of them derive their beliefs from Christianity or general “spirituality”3. The rational arguments they’ve got supplement those beliefs, but the beliefs aren’t necessarily derived from those arguments.
That’s about as far from proper engineering as you can get. To an engineer, deriving behaviour from beliefs is strongly reminiscent of cargo cult programming, and smacks of incompetence. Which may well be a valid view to hold when dealing with engineering problems, but — hard as it may be to accept for the likes of me — life isn’t an engineering problem.
Engineers aren’t all about analysis, logic and precise definitions, and vegans aren’t all about belief systems, of course. To make that last point clear, there are plenty of programmers out there who fully or partially subscribe to duct-tape programming beliefs. Similarly, many classical engineers don’t think of programming as even vaguely similar to their profession, a view that Jeff Atwood seems to share to a degree. At the other end of the spectrum, you have people like John Sanbonmatsu arguing for veganism from a well thought-out philosophical point of view.
Clearly, I’m reinforcing stereotypes when I juxtapose engineering and veganism4. I hope I’ve also made clear that in my life, engineers seem to behave predominantly in one fashion, vegans in another, and I mingle with both, which places my world squarely in the middle of an interesting contradiction.
- By things, I really mean the actions of girls I fancied, which never really worked out all that well. It turns out that talking to them works a lot better than trying to watch them (in a non-stalkery fashion, I’m not that weird), extrapolate from their actions models for how their minds might work, and try to use them to predict future events. Strange, I know. [↩]
- In their defense, common business practices in software engineering support this type of programming. I’ll get back to that later. [↩]
- I.e. believe in what you want, it’s all cool. [↩]
- Not to mention comparing Apples and Oranges. [↩]