There are hundreds, maybe thousands, of books about how to use some specific computer program, but there are few if any books about how a program was written, about what was in the mind of the designer and programmer as the project evolved and took form, as problems emerged and were solved. Yet this process of program development is one of the important human activities in today's world. It needs to be brought out of the shadows of the programmer's...