Our field is currently full of cargo-cult practices, studies and best practices without any empirical research, java schools, a strong focus on "awesome" and easy to get started instead of useful and simple; we're still a pop culture for the most part.
I mean, I wouldn't design a rocket, bridge, or certain kinds of software that way... But talking about most web front-ends or feature services?
Also, how come software is either a "web app" or a "rover". There's a huge spectrum in between. Not everyone writes CRUDs; even if these types of applications are usually the worst to maintain because they are developed so carelessly with little regard for simplicity.
http://spacenews.com/jan-15-2004-spirit-rover-begins-amazing...
The final design had both lander-departure ramps and the now-iconic foldout solar panels, but it was initially rejected as "gold plated" on budget and weight arguments. The only reason it eventually came to pass was the realization that while the foldout solar panels were overkill, their removal would be worse than anticipated and bring the mission under minimum lifespan.
Steve Squyers talks about how he was told this as "terrible news", but realized that for him it was wonderful. There was no way NASA would accept luxuries, but if the 'budget' design wouldn't work they were willing to move up a notch. So the incredible longevity of Spirit and Opportunity is largely a function of a low-cost design that broke down too late to salvage. It almost killed the whole project, but got record results once things went through.
that probably won't work on mars.