Programming
The principal activity of programming is THINKING.
-
A good program design is complex, subtle, and infinitely controversial. When programmers are expected to produce a certain amount of program code each day or week, they are either badly managed or doing low-grade work.
-
One of the worst programmers I know had incredible speed and facility. In minutes or hours he would construct a program to do whatever was requested. It would take the technical writers months to explain it, and even then their write-ups were only approximations. It is possible that this one guy messed up the corporation's software beyond all hope. The company went under.
-
Mark Miller's Law of Irrevocable Subdivision: When you break the problem into parts, you've determined its structure - and the work that will be done around it forever.
-
Design long, program short. Don't be in a rush to write code. Think about the problem from every angle, figure out in detail how different strategies affect each other. When you're sure the design is right, code it. Impatience is the enemy. Design is productive work.
-
The real problems of manipulating information are not technical but conceptual and artistic. Marshall McLuhan pointed out that the desire to line things up in even rows - which he thought was a Protestant trait - created military marching and grid cities. Also, he might have added, bad data structures.
-
Estimating the size of a programming project is extremely difficult. Nelson's rule of thumb: Take your initial estimate, multiply by a thousand, and divide by the number of weeks you've been in the computer field. In other words, after about 20 years, your estimates tend to be approximately correct.
|