I don't think there can be a professional developer out there that isn't aware of the term 'Design Patterns'. Put simply these are standard solutions to common program architecture problems that have stood the test of time and have been abstracted to the point of being applicable to a number of different domains without needing simplification first. They are often overused at the start of a project, building in flexibility for potential future requirements. One of the corner "Patterns" of Agile Development is YAGNI - You Ain't Gonna Need It. With Agile Development being "The One True Way" of developing Web Applications, are the two mutually exclusive?