Editorials

Automating Processes

12 years ago I was working at a company developing electronic telephone bills. We put their data into a proprietary format, and burned it along with one or more CDs, including data and the latest version of our application. This was shipped to the customer monthly. It was a very automated and smooth process for everything except the building, testing and packaging of the software. That was extremely manual. It was a process taking anything from a week to a month.

We brought an expert in to help us address risk. Guess what his first action was? We created a daily build process. Most of our developers, all VERY smart, were sure this couldn’t be achieved, and that even if we did get something to work, it would not be reliable or repeatable. It did take a dedicated resource nearly a month to get something working. But the rewards were quickly recognized. After we were done, we could build and deploy a complete system in a matter of minutes.

Today, twelve years later, the first thing I do when starting a project is to create an automated build. It’s a lot easier to do if there is little code to start with. Then as new functionality is added to the project, you integrate the changes systematically, instead of trying to fix a large amount of issues at one time. Now you have less things to figure out, because fewer parts were added to the process.

Toss into this mix automated testing for unit tests and system tests and you have a vastly reduce the time it takes from getting code complete to a packaged product, ready to ship. You do it all the time. Every time a build is completed, it could, theoretically, be a release candidate.

The really cool thing about automating the build and test process is that it is something you can do regardless of your preferred Software Development Lifecycle. You may tweak how often things are built, tested, and deployed. But, the value is still there. If it is automated, you will do it more often. If you do it more often, you will get better at it. The better you become, the smoother your release process will be.

Old words. Tired and lazy tune. But, I am amazed at how many projects do not have any automated build process. Lets change the world with automated builds.

Cheers,

Ben