Software is shapeless. Yet, to reason about it we, humans, need a shape. Tools provide the shape of software. It follows that tools are essential. Moreover, software is also highly contextual. For tools to be effective, they have to take that context into account. It follows that tools must be moldable so that the programmer can adapt them to the current needs, easily and frequently.