Development process

Should teams choose their own languages and tools?

24 February 2019

Standardisation does have a place, but it should be reserved for infrastructure and collaboration rather than languages and tools.

How I learned to love the “Agile Industrial Complex”

30 August 2018

There is a growing sense of unease around how larger organisations have implemented agile. In particular, there is a tendency towards centralised control that can be at odds with the agile preference for individuals over process.

Can TOGAF and Agile really go together?

27 January 2018

On the face of it, TOGAF describes a very different world to the agile preference for working software over documentation. That doesn’t mean that TOGAF is incompatible with agile, so long as you’re prepared to adapt its numerous building blocks.

Technical debt is an overused and lazy metaphor

18 November 2017

Technical debt may be a useful metaphor for describing how bad code design undermines productivity to non-technical audiences, but it does not help in understanding the longer term problems that affect code bases.

What should a Scaled Agile “architectural runway” actually look like?

12 October 2017

The Scaled Agile Framework talks about an “architectural runway” as the main deliverable for agile architecture, yet it’s vague on the detail of what this looks like.

When does refactoring become rewriting?

19 June 2017

Refactoring describes a very specific and controlled technique for improving code. The problem is that it is often used to describe wholesale changes to code bases that should be treated as a rewrite.

Using Docker to build and deploy .Net Core console applications

12 April 2017

Using Docker with .Net Core is initially straightforward, but to get beyond basic image building you will need to handle more than the simple scenarios demonstrated in quick-start guides.

Architectural governance can be used to foster innovation. No, really.

3 April 2017

Governance doesn’t have to be all about byzantine process and suffocating approval boards. It can be used to provide clear permission for teams to innovate.

Forget code coverage – test design should be driven by behaviours

19 December 2016

Test coverage statistics are much loved by management teams and code quality tools. They tend to associate a high level of coverage with robust, well-managed code bases. Wrongly, as it turns out.

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

20 September 2016

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.

Should microservices share technologies and platform capabilities?

28 June 2016

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.

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

22 May 2016

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.