Writing quality software is a technically challenging and expensive activity. The technically challenging part comes from the need to understand and implement more than one type of application testing. Whereas, the expensive part comes from the fact that proper testing usually yields more code than the code we are testing, which translates to more time needed to get the job done.
Unlike developers, businesses don't care as much about technicalities, as they care about reducing cost. This is where the two worlds clash at the expense of quality. While both understand the implications of a technical debt concept, rarely few take it seriously. Web applications come to mind as a nice example of this clash. The good enough UX and design is often sufficient to meet the needs of shareholders, while many of the internals...