A popular debate in game design, especially with regard to Role Playing Games, is the debate between whether Class Systems or Skill Systems make for better Game Design.
Raph Koster explores the idea in some depth on his blog, with an obvious bias towards Classes - especially for multiplayer design specifically. He leans heavily on a sports metaphor for describing multiplayer games and the importance of simple to communicate, clearly defined roles for players to engage with. Raph also highlights the simplicity and compartmentalization of mechanics in a class system allows for easier balancing as a designer, and mastery as a player.
By contrast he describes skill-based systems as more complicated, harder to balance, directionless, and hard to explain to users. Outside of a multiplayer context where balance and cohesion is less critical however, skill systems avoid locking players into a single mode of player and are far easier to expand upon without destructively altering the dynamics. Skill systems also forego the assumption that all roles should be equal, which is also a non-issue in single player experiences where there is no other player to be more or less important than.
The interesting twist is that games are made of games all the way down and that many game design patterns are isomorphic to one another. When you break a class system down into its basic components you eventually get something that looks like a collection of skills, and when you connect and combine skills with tiers and prerequisites you eventually end up with a de facto class system.
Do classes suck- – Raph’s Website Roles (Design Pattern) Skills (Design Pattern)