Abstract :
Summary form only given. There are two great truths in design: If it´s not tested, it´s broken. And if it´s not simple, it´s broken. This talk focuses on aspects of both issues. Code is the natural form of communication between designer and compiler; yet most code is demonstrably not simple; hence it is broken. Drawings are the natural form of communication between engineers, and user documents are how we communicate to customers. Yet typically, these documents are not executable, and thus not tested; hence they are all broken. Similarly, state machines and inter-module interfaces are often many orders of magnitude more complex than needed; they are quantifiably not simple, hence broken. In this talk I explore the underlying causes of these problems, and propose some solutions