Another House Call from the Build Doctor

Our friend the Build Doctor made another visit before Christmas, and I just found the notes. The ideas he gave us below are already paying dividends – for example, one of our developers used the techniques to quickly build a new and much simpler type of automated integration test for his product. Then one of his colleagues used the new testing mechanism and reported significantly faster development because of it!

Build-Process Smells

Good Practices

  • Investigate flickering builds properly. Don’t just click [Force] – that’s naughty. Stop the Line can help, if your feedback loop is fast enough (anything more than 10 minutes and it’s too frustrating to stop).
  • Use the Debian package to install Hudson. I’ve done this on my own machine and it’s seductively easy to keep up to date. What if a new version is really buggy though? I guess you’d just reinstall the old version using apt-get (there are no complex dependencies or installation steps, I’m pretty sure).
  • Keep all your dependencies in jar files. We have one large framework that we recompile and insert into each project. We should probably make it one (or many) jar files.
  • Use Ivy for dependency management. Maybe I’m dumb but I don’t see the problem this would solve for us yet.
  • Add screenshots on Selenium failures – it will be easy and hugely beneficial. (He was right!)
  • Write your own Ant tasks if you find yourself writing a convoluted sequence of Ant commands. It’s not that hard and is much easier to comprehend.