I browsed through archives for Stevey’s Rants a bit and came across Saving Time (Update 7/16/2011 dead link), a post about automating things. I’m pretty passionate about automating tasks. I don’t think people should spend time doing things that computers can do, especially when automating those things is easy. I have, in the past, slid down expansive, deep ratholes writing a program to automate some grunt work or another. Sometimes the time to write the program takes longer than doing it by hand, but I believe the time was still well spent because of learning during the automation or because of how unlikely it is that the grunt work will really only have to be done once. Sometimes having a task automated can completely change how you approach a problem by enabling a new approach. I view automated unit tests as one of those things — by automating tests and making it easy to run them, you not only reduce the amount of time it takes to make a test pass, but you also make it possible to run test passes before every commit. Fully automated build processes mean it’s easy to make builds of your application. It means it’s easy to “do things right” when making releases and encourages more frequent releases with less grunt work.