Software is shapeless. We, humans, need a shape to reason about anything. Tools
provide the shape of software. By molding our tools to match the context of our
systems, every problem in software can be exhibited in a way that a human can
relate to and reason about.