Roles
Definition
- A role is a distinct collection of responsibilities
- A role usually includes some authority in order to fulfill those responsibilities
- A role can sometimes include honor and respect
- Every entity, be it an individual or a group, can have one or more roles
Motivation
- Roles are essential for collaboration
- Roles set expectations between collaborators
- When roles are formalized, people can know what to expect from others before they even meet
- Poorly defined roles results in confusion and inefficiency
- Roles act as interfaces, where the holder a role acts as an implementer of that roles
- This abstraction allows for smoother exchange and reassignment of roles
Departments
Definition
- Personnel within an organization are grouped together into departments
- Departments are partitioned by domain, with each department representing a particular domain
Unity
- It is easy for departments to become islands that are overly disconnected from the other departments
- Organizations large enough to have multiple departments need operations personnel to bridge the gap between departments
Channels
Production Pipelines
- Production is a pipeline
- The departments and individuals of a production pipeline form a cyclic dependency graph
- The start up the pipeline is "upstream"
- The end of the pipeline is "downstream"
Deliverables
- Most collaboration can be defined in terms of deliverables
- Deliverables are passed along the pipeline from dependencies to dependents
- Examples:
- UI Designers deliver UI designs to developers
- Developers deliver partially tested code to QA testers
- QA testers delivers more comprehensively tested code to distributors
- The production dependency graph is cyclic at both micro levels and macro levels
- It is cyclic at a micro level because various steps in the process have tight loops
- For example, while part of the pipeline is roughly
Dev => QA => Dist, when QA finds any bugs, it will pass bug tickets back to the developers
- It is cyclic at the macro level because once a product is finished it is passed back up the pipeline and delivered to customers and clients by upstream personnel
- In some cases it is only a partially upstream delivery, where upstream personnel are notifying customers of new software updates
Routing by Role
- Much of collaboration consists of routing concerns
- Roles streamline concern-routing by making it obvious to whom and through whom a concern should be routed
Problem Flow
- Most particular problems flow downward, not upward
- Upstream problems can cripple downstream productivity