Improvement means deterioration.
programming practices
- Prototype before polishing. Get it working before optimizing it.
 - Separate policy from mechanism, separate interfaces from engines.
 - Write simple modular parts connected by clean interfaces.
 - Design programs to be connected to other programs.
 - Write programs to write programs when you can.
 - Design for the future, because it will be here sooner than you think.
 - In interface design, always do the least surprising thing.
 - When a program has nothing surprising to say, it should say nothing.
 - When a program must fail, it should fail noisily and as soon as possible.
 - Write big programs only when it is clear by demonstration that nothing else will do.
 - Consider how you would solve your immediate problem without adding anything new.