Role is a commonly used concept in software development, but a concept with divergent definitions. This paper discusses the characteristics of roles in software organizations, and contrasts such organization roles with other player-centric conceptions. Roles in organizations have their own identity and do not depend on role players for their existence. In software terms, such roles are first-class runtime entities rather than just design concepts. We define characteristic properties of both roles and players in organizational contexts, and show how the boundary between a role and its player varies depending on the level of autonomy the player is allowed. We show how roles can facilitate the separation of structure from process facilitating greater adaptivity in software. The problem of preservation of state in role-based organizations is also discussed. Possible implementation strategies for both roles and players are discussed and illustrated with various role-oriented approaches t...
Alan W. Colman, Jun Han