Teamwork and roles in student Scrums
Most software is designed by teams …but merely throwing people together does not result in a functioning team To be an effective SE, you have to be able to work on a team.
Real software is large and complex Teams must work together to: – Agree on goals – Plan their projects – Track their progress – Coordinate activities – Share a common process – Communicate freely
Effective teams have structure Without structures in place at the start, unorganized teams naturally build them: – Agreeing on goals – Defining a common process – Selecting a leader – Assigning responsibilities Ultimately, this might be a good exercise, but the team may spend (or waste) large amounts of time by doing so. Conflict and confusion are natural parts of the self- convergence process.
Predefined process frameworks can help teams operate effectively Scrum is a framework that is characterized by: – Short development cycles (sprints) – Self-directed teams – Dedication to performance and quality – Process discipline
Software Engineering requires more process self-discipline than other engineering fields – Most other engineering fields release their designs to others for production – Software Engineers produce the product almost entirely themselves A well-defined process helps
Some typical roles and responsibilities used in various process frameworks Quality Manager – responsible for testing Team Leader – supervisor/manager; problem solver Process Manager – makes sure process rules are followed Contact Manager – handles communication to the outside Requirements Manager – makes sure the work conforms to spec Planning Manager – monitors progress Support Manager - infrastructure Development Manager – technical guru Configuration Manager – protects the code
Why have Roles? Without roles, it can be difficult for an individual team member to understand what needs to be done – Who’s responsible for what? – When should it be done? – Is someone else already doing it? Explicit team roles address these types of concerns by distributing responsibilities among team members Some processes (e.g. TSP and others) define specific roles for many team members Formal Scrum assumes team members are experienced enough to interchangeably cover all needed roles
Roles and Responsibilities in SDL Development Lead – monitors progress on tasks, looks for emergent problems Quality Lead – monitors reviews, approves pull requests CI Lead – monitors the builds and deployments Process Lead – monitors time logs, story and task status Your Role/Responsibilitiy will change periodically