From the category archives:

Patterns and Practices

Build Pattern: Facade

March 2, 2010
facade

Let’s face it: Build scripts can age as badly as Steven Seagal. What do you do when yours is needing more than botox and a mud pack?
What you shouldn’t do is attempt to rewrite the whole thing from scratch. There’s no guaruntee that it’ll look any better by the time you’ve done that, [...]

Read the full article →

Build Pattern: Green-lit build

February 25, 2010
green traffic light

Continuous Integration should be a highway, not a parking lot. But that’s what happens sometimes when developers end up competing for limited Continuous Integration capacity. Developers working on critical and time-senstive work like production bugfixes can struggle to get their builds serviced promptly; they can be fighting a tide of checkins from their [...]

Read the full article →

The hidden cost of building

February 23, 2010
piggy bank - what does continuous integration cost you?

Thanks to EJ Ciramella for this thought provoking post. There’ll be a Build Doctor T-Shirt on it’s way to him soon.
In this down economy, irrespective of size of company involved, people want to save money, limit costs and increase throughput of their systems. One area of savings is the build and continuous integration [...]

Read the full article →

Build Pattern: The Captive Build Tool

June 23, 2009

Check your build tool into your version control system. Ideally you’d do this in a relative location to your project(s). That way you can have a go.bat or go.sh: a one line wrapper script to call the correct build tool from your project. Don’t get clever. This should be the simplest script you [...]

Read the full article →

Drive Mappings: argh!

August 27, 2008

(image taken from William Hook’s Photostream)
There’s several things that are the root of all evil. Money, love of money, and mapped drives on Windows operating systems. This is especially true in a deployment context. Your deployment system should accept UNC paths for the servers it wants to know about.
Using Windows is one [...]

Read the full article →

CruiseControl Best Practices: Keep your dependencies to yourself

July 27, 2008

This is the second of ten practices for CruiseControl

The average Java project has many dependencies – open source tools and frameworks, third party libraries, libraries that come from your project or organization – the list is endless. When I wrote this article, my current project had 84 jar files that it depended on (or could [...]

Read the full article →

CruiseControl Best Practices: Configuration the CruiseControl way

July 25, 2008

This is the third article in the CruiseControl practices series
You just started using CruiseControl. You use a Version Control System to manage your code. You installed CruiseControl on a spare computer in the office; now it is giving you immediate feedback on the changes that occur in that codebase. Life is good. Then the [...]

Read the full article →

Ant Best Practices: Use Ant as the Least Common Denominator

June 29, 2008

(image taken from Clearly Ambiguous’ Photostream)
We’re back to the best practices this weekend with 12 of 15: Use Ant as the Least Common Denominator. What are we talking about? The answer is here.
What does the common denominator mean? There’s generally a conflict around this on software projects. I’ll explain:
The [...]

Read the full article →

Ant Best Practices: Use version control

June 11, 2008

(image taken from Rocket Raccoon’s photostream)
Amazingly, it’s article 11 of 15 in my series on Ant Best Practices. Today’s practice is ‘Use version control’ and I can’t help but wonder if this one hasn’t dated a little. When the original article was written, Subversion didn’t exist, Perforce wasn’t free, and most people used [...]

Read the full article →

Ant Best Practices: Keep the build process self-contained

June 3, 2008

(image taken from Heldr’s photostream)
Welcome back to the Ant Best Practices series. All the other posts are here, if you’ve just joined us.
Today, it’s about keeping the build process self contained. What does this mean?
When you check a project out and build it for the first time, it should take a few minutes [...]

Read the full article →