Development process

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…

Why the developer experience matters to architecture

17 April 2021

Architects have a key role in setting the direction of travel for development, giving them an opportunity to help foster a good developer experience for an organisation.

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

8 January 2021

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.

Architecture without documentation is incomplete

17 October 2020

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.

Naming things is easy. Abstraction is much harder.

13 June 2020

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

Don’t use test coverage as a target

19 February 2020

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

Why trunk-based development isn’t for everybody

9 September 2019

There’s more to adopting trunk-based development than deciding to shun long-lived branches. You need a confident development team, a loosely coupled code base and efficient build automation to make it stick.

Agile metrics. You get what you measure. In a bad way.

12 August 2019

Agile process tends not to generate the kind of metrics that management teams feed on. Should this be a problem?

Does code quality matter? Using SonarQube with legacy code bases

22 July 2019

Attempts at SonarQube adoption often fail to gain traction with development teams. The concern is that it presents a view of code quality that is not relevant to the problems teams face on a day-to-day basis. Does it measure the wrong thing?

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.

Why SAFe can be agile kryptonite

23 March 2019

The problem with SAFe is that you can implement it without writing a single unit test or automating a single build…scaled agile may be an oxymoron.

Sharing microservices across large organisations

8 March 2019

Sharing microservices across organisational boundaries is much harder than it looks. There are technical, operational, organisational and financial issues that need to be considered if you want to be successful.