8 January 2021

Setting an appetite instead of making an estimate for epic-level work

Estimates are difficult, usually wrong, and frequently misused, especially at the “epic” level. An “appetite” can be a more meaningful measure that defines the amount of time the business is prepared to invest in the solution.

12 December 2020

Data Vault 2.0: the good, the bad and the downright confusing

Data Vault 2.0 modelling can support a more agile approach to data warehouse design and data ingestion. Inevitably, this flexibility does come with a heavy burden of complexity.

20 November 2020

Building your own in-house technology radar

A technology radar can be a great technique for initiating conversations about technology, but there are some challenges in applying it to in-house development shops.

17 October 2020

Architecture without documentation is incomplete

Designing good architecture is only half the battle. You also need to be able to communicate your architecture to anybody who is likely to use it.

24 August 2020

“Goldilocks” governance: balancing team autonomy and alignment for agile architecture

There can be a tension between the lean, experimental nature of agile development and the more deliberate, planned demands of a large organisation. It does not have to be like this.

22 July 2020

What we talk about when we talk about “legacy” software

“Legacy” is often used a pejorative term to describe any long-lived code base that a development team finds distasteful to work with. What do we really mean by “legacy” and how should we be dealing with it?

13 June 2020

Naming things is easy. Abstraction is much harder.

One of the more pervasive myths in software development is that naming things is hard.

22 April 2020

Do you really need Kubernetes?

If you are working with a lot of twelve-factor services then probably, yes. That said, you may get a creeping feeling that Kubernetes was designed to solve problems at a scale that most people never reach…?

11 March 2020

If “Enterprise Architecture” is failing, what should architects be doing instead?

The discipline of architecture is an important part of any efficient engineering organisation. It just needs to adapt its game from the process-orientated “Enterprise Architecture” of old to something more collaborative and relevant.

19 February 2020

Don’t use test coverage as a target

Code coverage can be a useful technique for discovering untested parts of your code base, but it makes for a useless target.

8 February 2020

When is an event not an event?

Message design in an event-driven architecture can be quite nuanced, especially if you want to achieve any of the benefits of loose coupling that they can be associated with.

26 January 2020

Running serverless containers in AWS Fargate, Google Cloud Run and Azure

“Serverless” containers could help you to avoid the complexity of Kubernetes, but you may struggle to leverage them for anything beyond small, predictable workloads or batch jobs.

14 December 2019

When should you write your own message endpoint library?

Enterprise messaging patterns are complex beasts that often warrant a common implementation across your endpoints. Should you ever be tempted to roll your own?

17 November 2019

There’s more to publishing external APIs than choosing an API management vendor

Publishing a public API involves many considerations, from billing and metering through to documentation and on-boarding. These are likely to be addressed through a collection of solutions rather than a single all-singing, all-dancing API management platform.

6 October 2019

Splitting up shared databases

The problem of shared databases is not confined to monolithic systems. A big store of shared state is the guilty secret lurking in many a microservice architecture.