Redundant Fields

Redundant Fields End user time should be considered more valuable than both developer time and CPU time. With luck, features get developed a constant number of times (O(1)) but used at least a linear number of times (>= O(n)). Development decisions that might save a few minutes of coding can waste thousands or even millions of man-hours. And we needn't even go into the economics of being stingy with CPU cycles. Whenever possible, one should enable/disable, populate, validate and refresh fields early and often.

The image to the left asks users to specify a file size. They cleverly make one label into a button to allow users to choose a file. Selecting a file automatically populates all three fields. But why are there three fields in the first place? No additional information is provided. And if users enter data manually, why aren't the other fields updated? Lazy programming may force the user to do additional work and also gives him an opportunity to enter invalid data.