September 20th, 2016

What’s in a name? Three-lettered acronyms and their impact on development culture

Three-lettered acronyms can be a useful tool for providing brevity, but they can also give rise to a coded language that contributes to a cold and impersonal development culture.

April 14th, 2016

What do we actually mean when we say “business logic”?

In most cases “business logic” just refers to the poorly-defined “gloop” that sits between user interfaces and databases in layered architectures.

September 27th, 2015

REST APIs don’t need a versioning strategy – they need a change strategy

Change in an API is inevitable. Attempting to manage this change through version numbering usually creates more problems than it solves.

August 11th, 2015

Most software architecture diagrams are useless

The best architecture diagrams act as a map – if an architect can’t express a system clearly and concisely then they probably don’t understand it properly.

July 25th, 2015

Can cross-cutting concerns really exist between services?

You might be able to identify cross-cutting concerns in a monolith, but in a service-orientated world they should melt away into specific implementations.

November 22nd, 2014

The RESTafarian flame wars – common disagreements over REST API design

Debates on the finer points of REST can bring out the worst in people as they seek to define what is and is not “RESTful”. In most cases the debate is unlikely to make the difference between success and failure for an API.

October 3rd, 2014

The problem with GUIDs…

GUIDs do solve an important problem. It’s just rarely the problem that developers are trying to address…

July 9th, 2014

The problem with tiered or layered architecture

An architecture based on tiers or layers is too inflexible to deal with the more flexible demands of modern systems, particularly when you working with high-volume systems that require distributed processing.

April 21st, 2014

Hackable URIs may look nice, but they don’t have much to do with REST and HATEOAS

Structured and “Hackable” URIs are a staple part of SEO-friendly websites. Although developers generically expect to see them in HTTP-based APIs, they should be irrelevant to consumers of a fully RESTful API that leverages HATEOAS.

March 27th, 2014

Here’s the truth about CMS selection: It doesn’t really matter…

A lot of hot air is wasted on CMS selection. Having lived through many implementations, it’s not the platform decision that determines whether or not you will be successful.

February 21st, 2014

Lean development’s “last responsible moment” should address uncertainty, not justify procrastination

Deferring decisions to the “last responsible moment” can help you to adapt to the inevitable uncertainty that comes with agile development. The risk is that it can become an excuse for uncertainty that undermines development velocity.

September 8th, 2013

Progressive enhancement still matters: Getting the JavaScript balance right

In the last ten years browsers have evolved from document viewers to advanced application runtime engines. Does this mean that we should abandon progressive enhancement and server-based processing for fat client applications built with JavaScript?

August 12th, 2013

Agile velocity is not a measure of productivity

Agile does not necessarily lend itself to management reporting. The few metrics it exposes are designed to support internal planning rather than external measurement. It can be tempting to re-purpose velocity as a measure of productivity, though this will only distort team planning without saying anything meaningful.

February 22nd, 2013

A shared database is still an anti-pattern, no matter what the justification

Shared databases risk turning into performance bottlenecks that encourage close-coupling and create a single point of failure. There’s no justification for using them to integrate processes and applications.

June 19th, 2012

The Umbraco 5 debacle proves that even a free CMS needs effective governance

Having to pull the plug on a new version of your product is unfortunate. Scrapping it months after it’s been released is just plain careless.