Attention trumps experience

It’s always bemused me that I did better in electronic engineering than computer science.

I studied them simultaneously, receiving degrees in both after five years (some classes counted towards both, thus why it wasn’t seven or eight years).

I grew up playing on, dabbling with, and programming computers. From BASIC II to Hypercard to RealBasic and onwards. I don’t recall ever questioning the apparent inevitability of going to university to study computer science, and then into a permanent career in software development. It was as if I were born to it.

In contrast, I chose to do electronic engineering basically on a whim, while I was choosing my university course. I had effectively zero background in it. It just looked interesting.

Though I observed the curious results – the unexpected inversion in my academic grades – it took me quite a while to learn the lesson. I did better in EE despite my inexperience because I paid attention. It was interesting and I knew I was starting from scratch there, so I worked hard at it. I gave it more time.

I’ve increasingly appreciated the importance of this as I’ve gathered other life anecdotes. Why does the new hire straight out of school often do a better job than the senior engineer? Why do “fresh eyes” on a long troublesome area of the project suddenly find all sorts of bugs and flaws that had been overlooked?

Better is the enemy of best

You might have heard the aphorism “Perfect is the enemy of good“.  If you’re in a technical field, you’ve probably used it, or had it used against you, to shut down a conversation.  It’s an effective way to do so because it insinuates that the target is thinking impractically, not focused on the problem at hand, rat-holing or bike-shedding or yak-shaving or otherwise getting distracted from “getting shit done”.  All clearly faults, right?

Its original wording, “better is the enemy of good”, more clearly reflects its defeatist mentality that presumes things can’t be much, if any, better than they are now – always implied as the aforementioned ‘good’.  It’s often taken to its extreme – unintentionally ironically – as part of perfect solution fallacies – that it must be impossible to achieve perfection, so why even try?

It can be very difficult to rebut because in practice it’s somewhat subjective & contextual, and thus judged in the context of the dominant culture – which in tech, currently, is pervasively biased towards doing things.  Not necessarily the right things – just things.  Move fast and break things.

Further challenging the defence is that it’s often considered ‘above my pay grade’ to think about the bigger picture.  Especially down where the rubber meets the road and people have deadlines and quotas and (believe they) are judged solely by the volume of work they complete.  In that environment, targeting someone with that aphorism is labelling them as being disruptive, slowing things down, and not having their priorities in order.  A would-be tall poppy.  A Troublemaker™.

In short, it puts the target on the defensive for an indefensible position – and makes it personal, no less.  It is, in a way, a nuclear option – the conversation abruptly ends with no actual conclusion, and no problems actually addressed.

It is in fact a clever ruse, and while usually used well-meaningly rather than viciously & tactically, either way it’s usually used unfairly, inappropriately, and worst of all, incorrectly.

Amongst its many flaws, in practice if not in logic, I believe its worst is that it conflates the path of least resistance with the right path.

Building a better horse.

It is a pervasive practice within business to look at where you are now and where you can go from there.  This is called incremental planning.  An instrument & exemplar of this mentality is SWOT analysis.  In a nutshell:  what have I got going for me, what’s going against me, and how can I work with that against my immediate environment?

It is supposed to be applied tactically.  When misused as a strategy, it does so predicated on the belief that by incrementally improving along the path of least resistance – i.e. opportunistically – one will inevitably triumph above all others.

That is the kind of thinking which leads to building a better horse, rather than realising you can build a car instead.

It is applying the process of finding your local maximum, in ignorance to finding bigger maxima.  It is short-sighted and tunnel-visioned and preys on our lizard brain’s desire for constant gratification and reassurance that we’re making forward progress.

In a competitive environment it is guaranteed fatal, because sooner or later one of your competitors will find a bigger maximum.  Or worse, someone from outside your market entirely, not so constrained in their thinking, will come in and set up shop on the slopes of a much bigger maximum to begin with.  Ever heard of an ‘iPhone’?

Of course, not all tech environments actually have competition.  If you’re working on a company-internal product, yours is usually the only one within your company.  You have a captive market with zero competition.  So unfortunately, you’re free to produce bad products indefinitely, at least insofar as they’re not so bad that they bring down the whole company.  And for as long as you can convince your bosses that you’re working really hard and it’s a really hard problem and look at how big these closed bug numbers are.

Thankfully, there are other motivations – than market dominance or conservation – for building better things.  Some people have an innate desire to do so.

Where are you going?

The incremental planning approach leaves it to a higher power to determine if you’re even heading in the right direction.  It is by definition short-sighted, putting emphasis on speed and not direction.  It is dangerously optimistic.

If you don’t know where you’re going, you might not get there.

Yogi Berra

Incremental development is not the problem.  It is not at odds with vision & leadership.  It is just all too often confused with, and entangled with, incremental planning.

You cannot know where you should be going if you don’t know what the possibilities are, and specifically what the best possibilities are.  Once you’ve identified them, only then can you investigate how to get to them – and thus in what direction you need to move.

Thus why the first step in any kind of development – technical, business, or otherwise – must be to identify where you want to be, irrespective of where you are currently.  That in itself is a complicated task – full of whats and whys – but given that, then you figure out how you might get there.  With that map and route in hand, then you act on that, and only then do you turn your focus to speed – to execution.

And this is where “Perfect is the enemy of good” actually comes in, in its correct usage.  What you identify as the highest place to be might be very difficult to reach from where you are now.  Perhaps there is a different place that’s nearly as high, but much easier to get to.  That might offer the best return on investment, and thus be the best solution.  Especially if it gets you closer to the highest place as well – what you cannot do today, you might be able to do tomorrow.

You must, in effect, put the car before the horse.  If you do not currently possess the means to build a car, find a way of building better horses that gets you closer to building a car, so you at least have a chance of building cars in the future.

[Mechanical Horse patent image used under CC BY 2.0 license from Patents Wall Art on Flickr – available as real wall art through their Etsy store.]

Altruism

Array

I had an argument last night with someone as to whether altruism exists or not. Their argument was essentially “of course it does”. They used the example of a car accident they were in a while ago, in which they were very nearly killed, but they still consoled the driver of the other car (whom they feel was at fault). They ask what they could possibly be getting from doing something like that.

My argument is that human’s are incapable of rationalising in an altruistic way. For example, giving to charity is not altruistic, because we do it knowing full well it will make us feel better about ourselves. If we didn’t feel better, we wouldn’t do it.

Long story short, the argument was never resolved as my opponent simply shouted me down in the end, but I’ve continued thinking about it to myself. I do agree that there is some actions that appear altruistic, but I wonder if they “count”… for example, in the car accident situation posed above, she was deep in shock – she was unable to remember any details when questioned by police at the scene, and couldn’t even be sure she hadn’t been drinking, despite the fact that she never drank anyway. So, it is unlikely she was getting anything out of it consciously. That leaves three possibilities:

1) Humans look after their own interests subconsciously, and she was thus aware her actions would have positive consequences for herself (at a later date, even).
2) She was not acting rationally and was simply going through motor motions that seemed suitable for the situation.
3) She was being altruistic.

Now, the first one is kind of true and kind of silly. Humans do tend to protect their own interests subconsciously – observe physical defence mechanisms that are reactionary and unconscious. Yet it sounds a bit conspiracy-theory-ish, and beyond that it blurs the line between conscious and subconscious, which defeats the purpose of their definition.

The second one I prefer. It implies selflessness in the literal sense, but still agrees with my personal feelings on the subject, as altruism is something I believe must be consciously engaged, by definition. So any subconscious actions are of course irrelevant.

The third option is pretty straight forward, but can be disproved in two ways. Firstly, observe that the two other alternatives are more explainable and more logical by their own semi-proofs. That’s not enough, though. The clincher is…

…and that’ll learn me to stop in the middle of something and not resume it ’till several days later. I have no idea what I was about to say. Hopefully it’ll come back to me at some point.