* The first time you do something, you just do it manually. * The second time you do something similar, you wince at the repetition, but you do it anyway. * The third time you do something similar, you automate. AutomationIsOurFriend. '''Examples:''' * The process of renaming a class. When you're using file-based source code and a file-based version control (such as CVS), renaming a single class is an ordeal. Use something like ReadWriteGrep and some ad-hoc scripts to make renaming a class more enjoyable event. ''(Or use EclipseIde -- or IntelliJ IDEA)'' * Build dependencies in C++. You really shouldn't have to recalculate these by hand. See the suggestions on RecursiveMakeConsideredHarmful. * ProgrammableDayTrading (and other business automation) * construct a GUI test-free, by running it over and over again, frequently by using the debugger * Don't forget TabCompletion, just because you use it without thinking. * ... ''ThePowerOfNow'' may be useful for justifying automation's costs to the PointyHairedBoss. Perhaps I should read it? ---- This violates the ZeroOneInfinityRule. You should automate on the second step because you KNOW you will repeat it. ---- Compare with: ThreeStrikesAndYouRefactor ---- See AutomateBoredom, ThreeStrikes