Strategy

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.

Data meshes and microservices - the similarities are uncanny

10 January 2022

The data mesh is doing for data warehousing what microservices did for solution architecture…

How not to run a technology selection process

28 October 2021

Having experienced technology selections as vendor, consultant, and customer, I have seen how some common mistakes can undermine clear decision making.

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…

Writing architectural design principles that scale decision making

13 June 2021

A good set of architectural principles can help to scale development by laying down some basic guidelines for decision making.

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

12 December 2020

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.

Building your own in-house technology radar

20 November 2020

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.

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

24 August 2020

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.

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

22 July 2020

“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?

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

11 March 2020

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.

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

17 November 2019

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.

Monorepos. For when life isn't already complicated enough.

22 June 2019

Many of the apparent benefits of monorepos can be realised through improvements in engineering culture and architecture rather than adopting a specific approach to source code storage.

The case against maturity models

8 June 2019

Maturity models are a popular way of looking at development challenges. The problem is that they are an arbitrary and inflexible tool and they tend to encourage the wrong mindset.

Machine learning models in production: the maths is the easy part

15 May 2019

There is often too much focus on the research aspects of machine learning. When you’re putting models into production, the maths is only part of the system.