Richard Riehle

Learn More
Many traditional engineering designs, other than software, depend on the physical properties of components. Those properties enable the engineer to specify precise tolerances between those components. Software components are abstractions with no inherent physical properties. The absence of physical properties makes it more difficult, but not impossible, to(More)
Speakers at conferences often mention the Principle of Least Surprise. This article explores the notion of surprise on a Surprise Tolerance Continuum. We also comment on how different disciplines benefit from managing surprise. Since this publication deals with software engineering, we focus on problems related to the creation, management, and maintenance(More)
Many different concerns contribute to the complexity of software development. Some of these concerns are easy to spot. Others are right in front of us all along but not explicitly identified in a way that makes them intellectually accessible. We describe an idea that has always been in the background of awareness for programmers and software designers, but(More)