Roles in software development
Here's a list of various roles, gathered from "Organizational Patterns of Agile Software Development" and Scrum. Some roles need to be predefined, but most appear by themselves as team members assume different roles.
Role categories
- Producers
- The people who directly contribute to the product. This includes Designers, Architects, and Programmers.
- Supporters
- The people who are necessary for the project, but don't directly contribute to the product. This includes Managers, accounting, tech support, etc.
- Deadbeats
- Unnecessary people that add no value to the project. These we shouldn't have in the project.
Roles
- Developers (aka Programmers or Designers)
- generate source code for the product.
- Architects
- work on the technical architecture of the product.
- Designers
- work on the vision, usability and aesthetics of the product, in collaboration with the Product Owner and end users.
- Interaction logic designers
- work on the interaction logic of the user interface. ("How everything happens?")
- Graphical designers
- work on the colors, layout, fonts and images of the user interface. ("What things look like and where they are?")
- Product Owner
- is an end user and has final say on features that are included into the product specification.
- Proxy Product Owner (aka Enlightened Customer, Surrogate Customer)
- knows the end users and can substitute a real Product Owner when necessary.
- Scrum Master (aka Gatekeeper, Firewall, Public Character, Matron)
- is the developer team's "manager", who organizes daily scrums, makes sure everything goes smoothly and removes obstacles from the developers' way. He works as an interface between the developers and other interested parties and "keeps the pests away".
- Apprentice
- works with an expert developer so he quickly learns the platform being worked on.
- Mentor
- supports Apprentices, by way of (for example) pair programming.
- Patron
- is a high level manager who defends the project.
- Wise Fool
- has the courage to raise uncomfortable issues for discussion.
