All posts by Tom

Production Troubleshooting Methodology

Software issues in Production can be some of the most demanding challenges a team can face, especially when occurring on a system outside of your control.

Adapted from theĀ OODA loopĀ — a military strategy used to describe the decision cycle of observe, orient, decide and act — this processĀ formalizes an approach toĀ take control, establish facts, and progress towards a resolution for even the most difficult problems.

Continue reading

OO Design is more about ‘Doing’ than ‘Being’

One of the most profound insights I have learnt about OO is that class design — the shaping of classes & types — is best informed by what processing needs to do, rather than the ‘kind’ of entities it goes between.

What we are talking about here is behavior, rather than trying to categorize entities at rest. Program code only acts by being executed; classes & interfaces (types) are a mechanism to despatch that execution to specific methods.

This shows that OO is really about active behavior, rather than any other arbitrary notions of classification.

But shouldn’t inheritance just follow Entity Properties?

At this point, we’ll address a common interjection — what about bean-style entities, and their properties? Surely inheritance should just follow these! Continue reading