Strategy

October 2nd, 2016

Refactoring large monoliths to microservices: strategies, risks and pragmatic reality

Large scale rewrites of systems are loaded with risk. You can address this by preparing the ground in advance and adopting an incremental approach, but a willingness to be pragmatic is essential.

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

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.

July 2nd, 2015

Comparing Gartner’s cloud integration leaders: Informatica, Dell Boomi and Mulesoft

Gartner’s definition of enterprise integration as a service is so wide that it can be difficult to draw any meaningful comparisons between the platforms in the “leaders” space.

October 19th, 2013

Can APX help in developing usable and accessible APIs?

Given how important APIs have become in driving the reach of applications and services, it’s surprising how little investment is made in the usability of APIs as opposed to UIs. Perhaps the principals and techniques used by UX should be applied to developing more effective APIs…

July 16th, 2013

Managing change and version control for service interfaces

Change is an inevitable and even desirable part of distributed development. Managing the impact of that change is the difficult part, particularly when change affects the service interfaces that bind a distributed platform together.

June 4th, 2013

Sharing web services and APIs in an organisation: challenges and pitfalls

Sharing services and APIs can appeal to a desire to reduce duplication and improve development efficiency. It’s a worthy ambition though the journey there can be littered with costly traps for the unwary.

January 15th, 2013

Sharing code between geographically distributed development teams

Large-scale development increasingly involves distributed teams as organizations seek to manage costs and leverage resources on a global scale. However, sharing code between distant development teams gives rise to problems that can only be addressed in part by processes and tools. You also need teams to communicate directly and build trust.

January 8th, 2013

Build vs Buy decisions and the importance of context

Technology decisions should not be made in isolation, particularly when you are trying to weigh up building a solution or buying a third party platform.

October 17th, 2012

What’s the least you should expect from a modern web CMS?

When you’re selecting a web CMS it makes sense to try focus on core content functionality, but what features should you reasonably expect from a modern web CMS?

September 3rd, 2012

How to manage down the payments on your technical debt

Technical debt may be a great metaphor to describe the corrosive effect of quick and dirty design decisions, but it can be difficult to identify, measure and manage.

August 16th, 2012

What makes a good web service API?

On the face of it, the demands of a good web service interface are pretty much the same as for any other API. You just need to make it useful, reliable, easy to use and fast. However, public-facing APIs are forever so it’s vital that you get it right the first time.

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.

April 11th, 2012

The code reuse myth: why internal software reuse initiatives tend to fail

Despite all the best intentions, software reuse tends to be confined to third party frameworks and tools rather than being an integral part of the development process. Are we expecting too much from software reuse and should we learn to set our sights a little lower?