When I was teaching software engineering almost a decade ago, I always liked to compare building software to building a house. It was this mindset that differentiated a “programmer” from a “software engineer”, and explains why it’s best to catch a bug early (even before any code is written) as it gets incrementally expensive as…