Introducing Bob
By Adrian Sutton
Bob is our build server – just like the children’s TV character, he spends all day building stuff. Bob has to be one of the most beneficial improvement projects we’ve taken on at Ephox in quite some time. Every build of our key products that we ship both as full releases and hot fix patches are built by Bob. He even uploads them to the web server when told to make them available to clients.
That means two things, firstly and most importantly – we never ship a build that doesn’t pass every single test. We can’t, Bob just won’t allow it (he’s got the highest of ethics). Combine that with a policy of never checking anything in without automated tests (we’re just starting to adopt test driven development, we’ve been doing automated testing for quite a while) and regressions are almost a thing of the past. Every so often we get a regression slip through because someone didn’t write a unit test or because we just couldn’t work out a way to test it (GUI code is particularly problematic, as are third party libraries that weren’t designed with testing in mind). Even so, the improvements have been pretty dramatic. Hopefully the addition of test driven development will completely eliminate regressions once we get good at it.
The other advantage though is that it saves developers time, particularly when they’re doing support. There’s no need to sit and wait for all the tests to run, leave the heavy lifting to Bob. No need to tie up your machine doing the build and packaging (my gosh, docbook takes a long time to process all our documentation) – just let Bob do it. The fact that you can go to a website and upload the new build in just a few clicks sure beats manually using an FTP client too.