The dispassionate developer
&gt; If you&#x27;re tired of working with legacy code without tests, most of your suggestions for improvements will be met by a shrug. We don&#x27;t have time for that now. It&#x27;s more important to deliver value to the customer.<p>This is what bothers me the most. Whether it&#x27;s about tests or something else. Even clean slate &quot;let&#x27;s get everything right this time&quot; projects degenerate into legacy code within weeks with this mindset. The &quot;It&#x27;s more important to deliver value to the customer&quot; line is especially insulting, since it&#x27;s not as if the developers are trying to sabotage the delivery of value by writing tests or sanitising input or whatever the conflict is about. We know that high quality code is faster and cheaper to build than low quality software, but it&#x27;s counter-intuitive to most managers.<p>And you need sympathetic managers to get the software right. Business rules are rarely clear, orthogonal or consistent. Which is not actually a problem for humans, but until we have artificial general intelligence, it is an insurmountable one for computers. But unsympathetic managers will not want to have long, uncomfortable conversations about deducing what they actually need from what they think they want. So developers are instead forced turn messy rules into messy code as best as they can, and put out fires whenever they break out, which they will all the time.<p>And perhaps the most insidious thing of all, spending all the time putting out fires means they don&#x27;t get real world experience they need to build a robust system on time. If managers let them try once it would just make them look incompetent. And if they quit, their experience putting out fires will be worth nothing to companies who actually value proper workmanship. Their only option would be to join another death march company.<p>I think this the biggest reason why most software, especially enterprise software, is so bad, and isn&#x27;t likely to improve in the foreseeable future.