- 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