Category Archives: Build And Deployment

QCon London 0

I’ve been invited to speak on colleague Chris Read’s track at QCon London this March. The track itself is chock full of a number of experienced proffesionals (including two ex-colleagues) so I fully intend to raise my game accordingly. We’re lucky enough to have Michael T. Nygard speaking too, author of perhaps the best book [...]

Build Pattern: Chained Continuous Build 0

One of the problems quickly encountered when any new team adopts a Continuous Build is that builds become slow. Enforcing a Build Time Limit can help, but ultimately if all of your Continuous Build runs as one big monolithic block, there are limits to what you can do to decrease build times. One of the [...]

Build Pattern: Build Time Limit 2

Anyone who has worked in a team which uses a Continuous Build inevitably starts to learn about the cost of a long running build: More time between checkin and a report of a failure Higher chance of Continuous Build containing multiple checkins, increasing the chance of an integration break and complicating rollback Fixing a build [...]

Build Pattern: Movable Checkin Gate 2

The Checkin Gate defines a set of tests which need to pass before a developer checks in. Typically, the tests are a subset of the total test suite – selected to provide a good level of coverage, whilst running in a short space of time. There is an inherent trade-off with a Checkin Gate though [...]

A Brief And Incomplete History Of Build Pipelines 2

Recently, both Paul Julius and Chris Read pointed out that I was perhaps the first person to document the concept of build pipelines, at least in terms of how it relates to continuous integration and the like. As it turns out, the original posts on the subject are from further back than I remember: An [...]

Build Pattern: Build Fix Flag 2

When using a Continuous Integration build, before long you’ll break it. Breaking a build is not a bad thing, however it is typically the team’s top priority to have such a build fixed. Beyond the shame associated with having been named as the breaker, you then have the hassle of lots of people informing you [...]

Build Pattern: Fish-eye Test Suite 4

When running a suite of tests – either as part of a Continuous Integration build, or part of a check-in gate – speed is the enemy. You are always trying to find the balance between test coverage and time to complete the entire suite. Both a check-in gate and continuous integration build have slightly different [...]

Build Pattern: Checkin Gate 4

It’s common practise within a team to define a set of tasks which should be run by each developer prior to checking in. The purpose of the Check-in Gate is to attempt to ensure that all code satisfies some basic level of quality. Like all development standards, a check-in gate helps a team stay on [...]

The Agile Release Process 3

I’ve seen the diagram below used to describe “Agile Development”. I found it to be quite a good overview of a typical agile development process.

Automating the build pipeline 2

As described before, the build pipeline is a series of builds, each performing some specific task. The result of one build becomes the input of the next. Many people see the pipeline describing only those parts which can be automated – as such, you’ll often see the pipeline end far short of production ready code – [...]