Development process

Enterprise architecture anti-patterns and smells

14 April 2024

Every organisation tends to organise technology decision making differently, but some of the problems associated with architecture can be remarkably consistent…

How to make architecture decisions

28 March 2024

Knowing what decisions to make and when to make them can be something of a fine art

Why building AI-powered agents is so challenging. For now.

3 February 2024

Despite growing excitement about the potential for AI-driven agents, there are a lot of problems to solve before we can build agent-based architectures on any scale…

Architecture governance is a spectrum: exploring styles of enterprise architecture

8 January 2024

There is a spectrum of different styles of architecture governance, from the tightly structured and framework-driven, through to the deliberate absence of formal architecture.

Generative AI does not mean the “end of programming”

12 December 2023

The demise of software engineers is one of those tired old tropes that refuses to die. Perhaps the programming revolution has already happened…?

Minimal Viable Architecture and the case for up-front design

13 November 2023

Evolutionary design and iterative development only get you so far - you still need some level of up-front thinking and forward planning.

The shared code fallacy: Why internal libraries can be an anti-pattern

15 July 2023

Most internal shared libraries are based on the fallacy that code sharing always makes development more efficient.

How can architecture improve agility and delivery flow?

2 March 2023

Agile practices on their own are no guarantee of fast flow. You also need a planned architecture that enables team autonomy and supports rapid, iterative delivery.

Can internal developer platforms really be optional?

14 November 2022

Internal developer platforms are supposed to be so compelling that engineering teams will flock to them, but are we givng teams any real choice?

What makes a good test automation suite?

3 August 2022

Writing a good unit test suite is hard. Many test suites don’t provide any meaningful benefits, merely serving as an unreliable and unloved extension of the main code base.

Inner source is more of a cultural shift than a technical change

12 June 2022

Adopting inner source is more than just a matter of putting a project into GitHub and accepting pull requests.

In defence of the Scaled Agile Framework (and other 'branded agile' variants)

17 May 2022

Larger organisations are beset with complexity that can’t be fully addressed by autonomous teams focusing on value. At least frameworks like SAFe recognise this and attempt to offer solutions based on experience.

How should architects collaborate with development teams?

6 February 2022

If we’re serious about empowering engineering teams to make decisions, then we should be embedding architectural skills rather than architects themselves.

Prototypes and the myth of disposable code

3 August 2021

A lean approach suggests that features can be proven in quick prototypes before being implemented ‘properly’. Alas, things don’t always work out that way…

Why “low code” and “no code” platforms are like Japanese knotweed

18 July 2021

“Low code” and “no code” platforms may be perfectly adequate for simple use cases, but they can make complex problems far more difficult to solve…