Gut Driven Development

One mistake I commonly observe in myself and others is developing with ‘gut feeling’. Arguing against subjective opinions can be difficult and frustrating, and two people with contradicting ‘gut feelings’ can be disastrous. It is a common cause of tension and discord in teams of developers.

In my experience, you can almost always examine your opinions and find some objective advantage. If you can’t, your opinion probably isn’t very solid. Recognising your gut feelings and examining them can be eye opening, and can make you a better developer. For example:

  • “This code should be formatted this way.”
  • “Why? Because it is more readable.”
  • “That’s subjective! Is it more readable or am I just more familiar with it?”
  • “Isn’t it actually more important that the formatting is simply consistent with the rest of the code?”
  • “The reader can then learn to recognise the pattern of the code.”

I think the best way to recognise and analyse gut feelings is by understanding your biases. I have chosen this example very deliberately as it is my most commonly observed bias: that something is better because it is familiar to you.

The second most common is the opposite: that something is better because it is new. It is easy to project your hopes on to something before you have experienced its failings. This is especially true for technologies that make trade-offs (e.g. databases). It is easier to see the advantages of the trade-off than the disadvantages i.e. the grass is always greener. This bias explains the hype cycle you often see.

Once you recognise biases like this it will become clear to you that people often start with a biased opinion and then reason backwards from there to support it. You’ll do it too, and it’s OK to do that as long as you can examine it and put forward a solid argument. Never think biases don’t apply to you.