Saturday, May 16, 2009

Some thoughts on optimising the build process

I've recently been doing work on improving a build and continuous integration setup so I've been thinking about a few things:

A significant change occurs when the time to complete a build and test cycle drops below the commit rate because this removes queuing in front of the build pipeline.

It's important to look at end-to-end cycle time as well as whether queuing is occurring.

Serialising continuous integration pushes batching behaviour to developer workspaces.  Developers start committing larger changes which is prone to introducing defects.

If we have queuing in front of the build pipeline, we should be able to provide some compensation with cross-workspace sharing enabled by distributed version control systems.

2 comments:

Jeffrey Fredrick said...

Maybe it is just me but I don't get the trend toward serializing commits/CI builds. Feels like deferred integration to me.

Yes there will be build failures. So what? Fix them quickly and there's not much harm done. If you can't fix them quickly, revert them and move on.

Jason Yip said...

Always green is seductive