In software, your material cost is near 0, you only have a time cost. That changes your model of &quot;most efficient path&quot; to achieve a goal. Sometimes, depending on the problem domain, it&#x27;s actually OK to test in production, because the efficiency gained is worth a bunch of potential loss due to bugs.<p>Sometimes in software &quot;getting it done first&quot; is more important than &quot;getting it done right.&quot; (I personally despise this sentiment and avoid jobs where I&#x27;d have to do this)<p>Thusly, the difference between and engineer and &quot;just a developer&quot; then is: Engineering is a discipline involving meticulous planning, experimentation, testing, managing, and accurately predicting both results and failure modes. Sometimes writing software <i>is</i> engineering, other times someone just wants a damned blog. I do both jobs. I like the former better than the latter.<p>And to address the attacks by other engineering disciplines...  There are plenty of problems that piss me off all day... like red lights. Why don&#x27;t we have a radar device to see if there are no cars coming down the road and instantly begin the yellow light traffic cycle so I can turn left? Why isn&#x27;t my phone waterproof? Why is apple designing computers without god damned ports? Why isn&#x27;t there a more practical way to save the leftovers other than refrigeration to eliminate waste? Why do we have to use crude oil to produce polymers? When a non software programmer engineer attacks my discipline with &quot;why does my computer crash?&quot; well because you were stupid enough to by one even though you knew it was going to happen...