User Avatar

A neuro-spicy Parisian Brit who writes about software engineering, tech communication, entrepreneurial journeys & data. I help understand code, why it is fun, & how devs think.

3 Ways in Which Software Developers Think Differently And How To Better Communicate With Them
David from Kodaps

Communicating with software developers can be frustrating, but it doesn't have to be that way.

For 20+ years I've functioned as the primary interface between software teams and non-developers. As such, I've seen my share of miscommunication.

We software developers live in a different world -- one with different challenges, rules and outcomes. This colours our way of thinking.

Here are three ways in which developers "think different" (to steal a slogan), and how best to communicate with us:

1 - We make the implicit explicit

Computers deal in 1s and 0.

They needs to be told exactly what to do in every single situation. Software development is about translating implicit fuzzy needs into explicit rules.

Our understanding of the context needs to be as extensive and precise as possible.

When communicating with a developer, explain the "why".

2 - We think in systems and abstractions

Given a set of feature requests, my natural tendency is to imagine which overarching system will allow me to implement as many of the features as possible. In other words, to determine the commonalities between tasks.

When talking to a software developer, state both the current need, and what other similar needs exist now and in the near future.

Provide the larger picture.

3 - We focus on what could go wrong

Part of the difficulty in software development is that the "nominal" case (the one where everything works!) is only one of many possible situations.

But each possible failure scenario also needs to be managed (i.e. coded) for the systems to work. For example, what should happen when a payment first succeeds, but then fails?

When communicating with a developer, explain what should happen when things go wrong.

To summarise: The first step in improving communication between devs and non devs is to recognise that, despite a common language, we have different mindsets, cultures and world views.