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!
- 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.