As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
David Lorge Parnas
Canadian early pioneer of software engineering. Developed the concept of information hiding in modular programming, which is an important element of object-oriented programming today. Author of the seminal paper On the criteria to be used in decomposing systems into modules and A rational design process: How and why to fake it. Also noted for his advocacy of precise documentation.