If the reason understandability is important is that it means you get fewer defects etc, then really it isn't that it's important, it's that defects etc are important. This article is completely confusing means vs ends.
Completely disagree. The most important goal in designing software is to maximize ROI (value/cost).<p>And yes if N hours spent on making a design more understandable gives a better value/cost, than any other usage of those N hours, then it is the right choice. But that happens very rarely in my experience.<p>Having said that, the #1 most valuable thing you can do IMHO is to make the software architecture simple and automatically testable. That is almost guaranteed to give you a better ROI than any other activity.