Let’s celebrate heuristics where we can. Especially in software development.

I’ve been on stage quite a few times now, where I usually talk about tackling socio-technical complexity. There’s a lot of focus on social dynamics, human interaction and communication in these talks, but there was always a part where I focused on the more technical side of things. Just to be sure. After all, I’m at a tech-conference, so I must include techy stuff, right? (Talking about cognitive bias…)

While I was preparing my talk for Domain Driven Design Europe (DDD Europe) earlier this year, I realised that these more technical parts became some sort of a weird comfort zone over time. And that surprised me (and I’m sure my family and friends) a bit.

Who would have ever thought that I would refer to ’the technical side of things’ as my comfort zone? And yet, I caught myself holding on to a technical security blanket, trying to convince one of my trusted advisors that I really (really!) needed those slides in my talk. Whereas he was telling me that my ‘expertise’ lies at the social side of things, that is has everything to do with tackling complexity in the heart of software, and that I should only focus on that part in my talk. Some tough love right there.

We’re all victims here

When I was slightly forced to think about the focus of my talk rationally after my discussion with the trusted advisor, I realised that this is actually exactly what I was going to talk about at DDD Europe: In which situations should we actively try to overcome heuristics and suppress our system 1, and instead address our system 2 to make a more rational decision? (For a very brief summary on the 2 systems, see this video.)

Me holding on to that security blanket has everything to do with my system 1 — specifically the ‘what you see is all there is’, or availability heuristic’. Every conference I attend, every speaker that I meet — it’s all about technology and technical skills. And they all have more experience, better ideas and are more skilled than I am. “I wish I came up with that…” is something I very often think after another great conference. So when I think about a new conference, or a new speaking opportunity comes along, these memories come to mind pretty quickly and easily.

And if I can think about it immediately that must be important, right?

My quick conclusion: I should definitely include technical slides in my talk.

However, following my own logic, speaking at a conference is a complicated domain, with known risks.

When I say complicated domain, I’m referring to the Cynefin model that helps you making sense of the world and assist you when making decisions. Combining Kahneman’s System 1 and System 2 with the Cynefin model helps me categorising, and determine when I should celebrate heuristics and trust my gut, or actively address my system 2 and think.

I mean, what’s the worst thing that can happen? I can use calculation here — identify risks, weigh alternatives and list pros and cons of losing the technical slides. So this is a situation for system 2. Think! Overcome heuristics! And then it made sense. It would make way more sense to focus on the social aspect — heuristics in particular. They have everything to do with tackling complexity. Conferences need more talks about that!

Socio-technical complexity

This thinking exercise also made me realise that I should only talk about something that I’m truly passionate about, that I want to tell the world about.

And while I love these technical parts, I have to admit that what truly drives me is how social science affects our work, decisions and collaboration. Why are we making certain decisions? How are we wired? Why are we almost always ending up with a gap between plan and reality when it comes to our architectures? What’s the impact of heuristics and shortcuts on our products? When should we try to overcome heuristics? And when can we benefit from them?

So that’s exactly what I talked about at DDD Europe: Socio-technical Domain Driven Design — Essential Social Heuristics. I discussed 3 heuristics that are heavily affecting our products and decisions, and related them to software development scenarios:

  • What you see is all there is (availability heuristic)
  • Beware of the experts (related to overconfidence)
  • The curse of first impressions (related to anchoring)

By now I am convinced that what I talk about, what I’m truly passionate about, has everything to do with tackling complexity in the heart of software development. That it’s actually at the heart of every (business) decision that we’re making. And that it will provide new ideas — especially on a technical level. If we know the domain, or ‘world’ that we’re operating in, and we are aware of heuristics that may affect our work, we can safely celebrate heuristics and make the best decisions of our lives.

Trust your gut. But sometimes, think twice.

If you want to see me rambling on about this topic, the talk was recorded and you can find it here.

This blog was originally published here.