So the latest industry buzz-term (since it's not a word per say) is MVC. MVC is a description of a software pattern. The key to software patterns is being able to speak them and understand them. I'm sure you've read many articles that mention MVC and you sit there wondering: What is MVC?
So some 'jerk' (you know the type who provides your latitude and longitude when you ask where you are) says to you, "MVC stands for Model-View-Controller and it's the latest in architecture."
OK, What is a Model View Controller and what do I need to change in my architecture?
This is actually a pretty simple question and as I've said before, outside of major paradigm shifts - the more things 'change' in the technology world, the more they stay the same. Many years ago - probably before some of you reading this were born we had the concept of a 3-tier architecture. The idea, which followed on the heels of modular programming was that you should separate out your User Interface from your Business Logic from your Data Access. (UBD... or reordered DUB) Over time this was called n-Tier because you might have more then one 'tier'. The idea however was that you had components responsible for these elements.
Well in an MVC model the Model represents your data access, the View represents your User Interface and the Controller represents your Business Logic. So you have DUB -> MVC - but wait say the formallists, it isn't the same. So what's the difference?
Well under the n-tier model there were those who subscribed to the idea that all communication had to travel from the User interface to the Business Layer to the Data Tier, and in the reverse. In other words the User Interface wasn't allowed to directly communicate to the Data Tier. We tended to refer to people who tried to enforce this as 'jerks' (see above). Generally those of us developing applications spent hours justifying the fact that in the real world it made sense to have the User Interface directly access the Data tier to retrieve key data and in some cases even for certain key automated updates. That's essentially the gist of the difference.
So there you have it because people couldn't adapt to this one concept we have a new name - MVC to describe an old concept. So when someone suggests you re-architect your current n-Tier application to be MVC based and they want to charge you money to do so - well you know how much it should cost - nothing because even if you kept your UI from updating database directly, you still have an MVC architecture in place.... now you can just stop being so * retentive about which components in that architecture communicate.
Its funny we literally created a new name for an old concept, why? Well the 'jerks' will accept a concept with a new name that doesn't exactly match their understanding of an older concept. It's literally easier to reaname and remarket a concept then to for some people to update their knowledge.
The preceding is of course a brief comparison - to wit there are several other characteristics of the architecture models I've omitted (such as n-Tier) in order to quickly illustrate the key similarities between these models. I'm sure someone (see jerk above) will point out one or more such items in the comments...
UPDATE: I should also point out that yes the MVC pattern has probably existed for as long as the 3-tier architecture has. The point here is that it is the latest trend for architects and for many the new description seems like it is describing something... well.. new. In the past MVC was a common model for application logic but now that more "software architects" are actually learning about software best practices it has made the move to describing enterprise architecture. The concepts aren't new, just the name being used to describe what we've been trying to do.