I fully believe that having a way to automate your builds is the only way to guarantee good results when building your product. The more complex your project becomes, the more complex your build becomes. This is a bad thing for several reasons, the 2 foremost being that the build becomes time-consuming and error-prone due to manual interaction. Of course, the corollary is that when you get to that stage, there is typically only one (maybe 2) person(s) that understand how to do a full build of your product. Using an automated build tool can help the entire team and the quality of your product immensely.
I have spear-headed the effort to automate builds several times now. Sometimes, it is met with resistance. Sometimes, it is encouraged. But in every case, when the build is automated the end-result blows people away. Comments like "Wow, doing a build is that easy?" are frequently heard.
After getting an automated build into your organization, people start seeing many other opportunities to fine-tune the build. "Oooh, wouldn't it be nice if we could schedule this to run at midnight every night?" or "Let's have the build run the test scripts automatically for us" or "Hey, we can add this other utility into the build process to ensure that datasets are closed at design-time!". The results are always well worth the effort. At one company, I took a completely manual build from 4 hours down to double-clicking and 45 minutes. The added benefit of not forgetting steps also made the build more reliable the first time. I imagine results like these are more common than not.
There are several tools out there, and here's my simple list of tools that I find useful. All of them are extensible in the sense that you can create your own actions and have those actions execute whatever you want during the build. In my opinion, that is the absolute best part of creating the build script!
| Product | Language | Notes |
| FinalBuilder | Multiple (Delphi, BCB, VS.NET) | Commercial, but absolutely fantastic
|
| Ant | Java | Open Source
|
| NAnt | .NET | Open Source. Knock-off of Ant
|
Even if you end up crufting your own automated make together with BAT files and make, it's worth it. So quit standing on the sidelines and get cracking! If you know of other build tools that you find useful, please leave a comment and I'll update the main page.