One thing I noticed while working at restaurants was how
weird chefs can be about their knives.
You can tell who is serious about being a chef by how they treat their
knives. Many have their own sets, those
that don’t tend to lay claim to the best in the place. Never ever use a chef’s knife without
asking. Not if you ever want a good
shift again.
Curious one evening, after seeing the head chef stop in the
middle of a big order and sharpen his blade,
I asked about the odd behavior. I
was told simply “dull knives cut fingers”.
I thought that sharp knives and
clumsiness cut fingers. The way you cut
with a dull knife is different from the way you cut with a sharp knife, if you are used to cutting with one type and
pick up the opposite, you are likely to hurt yourself.
Many times a development shop will not stop to sharpen their
knives. They are too busy cutting. The consequences are not as direct as cutting
a finger. They appear in slowdowns in
the project, late nights and headaches. If your computers are slow, you may cut
corners when debugging or testing. If
you lack a tool like Code Rush or Visual Studio 2008’s snippets, you may not
use Properties and instead use public Fields to save typing. The list can go on for ages.
Our jobs (generally) are about automating tasks and
increasing productivity. Would it not
stand to reason that we should from time to time turn toward our own processes
and try to automate some of those?
A simple example: logging.
If your application has some form of logging, I ask you how
do you go about reading those logs? Do
you or an administrator have to manually poor through text files in notepad? If
you store the logs in a database, do you have to manually query the DB when
looking for events?
You probably have written a log writer that dumps the
information in your format, do you have an equivalent reader? If not, why not? If the answer is time, I would bet you or your admin have already spent more time with the manual searching than would have been used in writing a tool.