- 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