All of this content used to be spread over three different blogs at three different domains and it's now been merged into one. Why was it ever three? Because at the time it seemed reasonable that each of them was for a different audiences, and yet over time I've found that the lines between topic areas got blurrier and tended to overlap. So now they're all together in one place.

If you encounter things that seem broken, please let me know and I'll get them fixed.

Browse by topic area:


There's a lot here and if you're not sure where to start, here are some popular starting points. From these, you'll find crosslinks to even more topics. Enjoy!

Six Thinking Hats Retrospective

Six Thinking Hats is an approach for creativity that was created by Edward DeBono. I use it as the basis for an agile retrospective, and find this approach to be particularly effective when the topic we’re discussing is expected to be controversial or heated.

Remote work vs in-person: What does the data say?

When the worst effects of COVID had appeared to pass, many companies started implementing return-to-office mandates for their knowledge-workers, which have been controversial at best. The decision to do this was based on gut reactions from managers who, having no actual data, made the best guesses they could with what they knew.

Inattentional blindness

Inattentional blindness is when we are so focused on some things that we completely miss other things that should be completely obvious. This can be used to hilarious effect, as you’ll see below, and at the same time is something we need to take into account in business.

Linguistic Antipatterns

A linguistic antipattern is a place in the code where the naming implies that it does one thing and in fact, it does something different. For example, the method void isEmpty() suggests that it will return a boolean reflecting whether or not the object is empty, yet the method does not return anything.

Cognitive load

Cognitive load is an indication of how hard the brain works to perform specific actions. Although often used as just a conceptual model, cognitive load can be measured by watching cerebral blood flow while performing different tasks, and many formal studies of programming tasks do exactly this.

Coaching to Logical Levels

In a previous article we discussed what the logical levels are. In this article, we’re going to show how we can assist someone at each level. If you haven’t read that article first then we suggest you do that now.

Technical debt and productivity

Technical debt is made up of all those things in our system (architecture, code, documentation, etc) that are working but are of sufficiently poor quality that they cause us to move slower when implementing new functionality. Perhaps we need to do additional testing before we can add something new or we need to refactor the code to make it cleaner or more extensible. Perhaps it’s just hard to read or understand and therefore difficult to know how to add the new functionality.

Who should look at what metrics?

When we talk about metrics, there is often an assumption that everyone in the company needs the same data to make decisions and this is dangerously incorrect. Different levels of the organization need different kinds of data to make effective decisions. Yet, all too often we use the wrong data at the wrong point.

Polyvagal Theory: Understanding safety

Polyvagal Theory is the work of Dr Stephen Porges and describes what we know today about how our nervous system, and entire body, responds to how safe or threatening the world feels to us. This has significant implications for the behaviours we see in ourselves and in others. It’s important to note that we react based on our perception of how safe the world is, and not how safe it actually is.