As software engineers, we are always occupied with building things, writing tests, making design decisions, or scoping out projects. It is not uncommon to miss out on important things just because we are in the moment or when things get heated. Just as we use tools, paradigms, and techniques to write our software effectively, we need tools, paradigms, and techniques for our minds to think and make decisions effectively. These 3 mental models are abstract concepts, just like the world …