December 19th, 2016

Relax. There’s no conflict between architecture and agile.

Agile teams still need to make architecture decisions, but in supporting them architects should seek “just enough” architecture over “big design up front” and practical solutions over large-scale abstract thinking.

November 13th, 2016

Handling Protocol Buffers backwards compatibility between versions 2 and 3 using C#

You will inevitably be pushed towards upgrading your protocol buffer messages to Proto3, particularly if you want a client that supports .Net Standard that .Net Core. This can be done, but there are a couple of speed bumps along the way.

October 27th, 2016

The problem with using maturity models to describe technology solutions

Maturity models are a management tool. When applied to technology solutions they often provide a weak analysis that describes a false progression.

October 3rd, 2016

What’s so bad about monoliths anyway…?!

Don’t get me wrong – I am an advocate of decomposing functionality into autonomous services. My reservation is that you need to have a lot of prerequisites in place before you can start leveraging microservices.

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.

August 13th, 2016

PolyBase import and export between Azure SQL Data Warehouse and Blob Storage

SQL Server Polybase makes it easy to load data into Azure SQL Data Warehouse by letting you define groups of files held in Azure blob storage as relational data tables.

August 9th, 2016

Migrating .Net framework applications to .Net Core

Migrating existing applications to .Net Core is not a trivial undertaking so you need to be certain of the potential benefits before you start.

July 29th, 2016

Designing an event store for scalable event sourcing

Event sourcing can scale very nicely, though this does depend on a number of key design decisions for the underlying event store.

July 12th, 2016

Simplifying .Net REST API development: Nancy, self-hosting and ASP.Net Core

REST API development using ASP.Net WebAPI is so fussy compared to other ecosystems such as Node.js and Ruby. New frameworks are emerging that promise to simplify both development and hosting of APIs in the .Net world.

June 28th, 2016

Should microservices share technologies and platform capabilities?

Should agile teams be encouraged to share capabilities or be given total autonomy over their technology choices? For larger organisations this can become a trade-off between economies of scale and speed of delivery.

June 2nd, 2016

Is “Serverless” architecture just a finely-grained rebranding of PaaS?

Serverless computing makes bold promises of development without having to worry about environments, scaling or deployment. Haven’t we been here before?

May 22nd, 2016

How do you foster “technical excellence” in an agile development culture?

Technical excellence is one of those slightly nebulous phrases with many different interpretations. In an agile context this means removing constraints and it is more than just a team responsibility.

May 5th, 2016

Managing services that don’t have clear code ownership

How do you organise code ownership for services that do not align conveniently with team or organisational boundaries?

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.

March 23rd, 2016

API gateways and the dangers of creeping middleware scope

An API gateway can solve many generic problems in an API infrastructure, but you do need to define a clear remit and protect against creeping scope.