Developers want to build quality stuff that they can be proud of.  Time, budgets, marketing promises, and reality have a way of interfering with that.  Rare is the job where you can tell your boss &quot;We could release this now, and I could start on the next thing, but I&#x27;m not happy with the quality and would rather rework it.&quot; and they will just say &quot;Ok, do that.  Make it good.  We&#x27;ll tell all of our clients that they&#x27;ll just have to wait for what we promised would be ready this month.  They&#x27;ll just have to deal with however that impacts them and their business.&quot;<p>More layers = more bugs, both at the software level and the business level.  And there are a lot more layers now.  We&#x27;re not just compiling raw ASM or C and handing it to the end-user anymore.  Every couple of years we add more layers to both.