Who Builds a House without Drawing Blueprints? - Lamport, Leslie (Communications of the ACM, 2015)
The author reflects on the process of programming, focusing on the the need for software specifications in computer programming. Topics include the author's assertion that programmers need to think about their programs in broader terms than just code; the type of specifications that should be written for varying degrees of project complexity, such as multithreaded or distributed programs; and the need for specification-writing classes in higher education. The use of mathematics and mathematical notation in checking and testing programs is also discussed.