« handy shell tools for finding large files | Main | dynamically-typed interpreted languages »
Tuesday
Jan232007

practice makes perfect

To be productive as a software developer, or tester, or sys-admin, you have to know how to use your tools. Most development tools in the projects I run with are based on the old-skool unix model: a shell script, a build utility, obscure text configuration files, environment variables, and a source-code control system. Systems like that are exquisitely sensitive to errors, and even "vanilla" installs usually need some local tweaking, and some setup rituals. All of this can be maddening when you want to get some work done and the tools won't let you. What can be done?
Certainly, build tools should be easier to use. But they're not, and that's the world we live in. The answer came to me last night watching a martial artist do forms on tv. In martial arts, forms are a detailed choreography that represent a hypothetical fight; the purpose of practicing forms is to get each detail of each action dialed-in. I recognized the form being performed; it was the first form I learned, as a beginner in Ja Shin Do. "He must be a beginner," I thought, "to still be practicing the basics." Then I kicked myself: he was practicing the basics to perfect them. Go back to the beginning, and do it again... this is the practice of experts.
We get good at using the tools by using them, over and over. Start from a blank slate and build a development environment from nothing. Do this ten times in a row, and pay attention to exactly where you install the prerequisites. Build muscle memory for what goes where. Do it ten more times, and pay attention to the initial invocation rituals. Do it again, over rocky ground this time, or an os you don't like. If you want to be an expert software tools user, then practice, practice, practice.

Reader Comments (1)

this is the practice of experts

Know that and be that, Benjamin.

1.23.2007 at 12:04 PM | Unregistered CommenterAnonymous

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>