This page is an older version of the author's writings on bird nomenclature systems. Please see the current version.
Among programmers, good programs or systems are often described as ``robust.'' Such systems should be easy to learn and use, and they should not tend to confuse users or mangle data. Design of a good encoding system involves more than just the problem of representing the data. We should consider human factors as well.
Here are some other qualities of a good code system:
For efficient data entry, we want to be able to bang the records into the machine quickly (minimizing mistakes, of course). Speed depends on more than just the keystroke rate. Thinking takes time too---the time it takes to think of the right code, or look it up if necessary.
A robust system should also be designed so that most errors can be detected easily, and easily corrected whenever possible. In the author's opinion, this is an argument against using the shortest possible code. Longer codes have more redundancy, so it is more likely that a user can figure out what was meant even if the code has an error in it. As an example, the English language has a lot of redundancy in it, which is a robust characteristic. We can oftxn undxrstand a sxntxncx xvxn if it contains quitx a fxw typos.