Why don't we employ rigorous software engineering principles to, say, iOS games? It would be a waste. It could be done, but in practice, people just don't care as much if a game on their phone crashes as they do if an airplane they're riding in crashes.
There's a wide spectrum of software out there, needing varying levels of robustness. There's not a lot that can be said about software development as a whole along these lines; inadequate design for an online banking site might be excessive design for a llama costume competition voting site.