There is rarely a free-lunch in software engineering. WaterbedTheory abounds. When teaching students or the curious about "principles of software engineering", do not feed them absolute rules, but rather educate them about the tradeoffs, hopefully along with examples. If you have a particular preference one way or another, then state so, but don't wrap such advice up as the OneTrueWay. --top (More to come...) ''Oh goodie! An absolute rule about not teaching absolute rules.'' * I look forward to your non-absolute re-wording of it. If you really wanted to be snarky, you should have pointed out TwentyFiveOrSoRulesToBuildSoftwareThatWorksAndWhichIsEasyToMaintain. -t [Maybe not instead of but in addition to. This would also better prepare students for the business world.] {Indeed. Good university education teaches the rules and -- more importantly -- to critically evaluate them.}