Roles
Members of a Scrum team perform at least one of three roles. Most individuals perform the team role, which has the responsibility to create the software. In addition, your product owner makes sure that your customers are represented on the team, and your ScrumMaster helps your team and your product owner follow Scrum processes effectively.
In this topic
Team
The team consists of the individuals who are responsible for creating the software. The team selects user stories at the start of the sprint, collaborates to implement and test the user stories during the sprint, and presents the finished software at the sprint review. The team is self-organizing because it manages itself and its work. The team is cross-functional because it contains the skills that it requires to deliver the user stories in the product backlog. MSF for Agile Software Development v5.0 does not distinguish roles within the team by criteria such as engineering discipline or area of expertise.
What Makes a Good Team
A good software team is difficult to assemble and takes time to build. Examples of good teams are all around us: surgical teams, basketball teams, and sheepdogs and their handlers. Each team member may have his or her specialty, but the team works together and succeeds or fails together.
Good software teams are also composed of individuals who pull together toward a common goal. A software team should not be just a collection of experts, each of whom takes a turn performing only the tasks in which they specialize. Instead, a team should be a group of people whose collective skills and expertise outweigh the skill of any individual. Through collaboration, communication, trust, and openness, a team can deliver success and grow beyond the individual capabilities of its members to become a high-performing unit.
A good team has the people and skills that are required to deliver working software. The full-time members of the team should have most or all skills that are required to fulfill the project. Specialized individuals such as designers, operations people, architects, or experts in a specific technology might not be available full time. The team can pull in external specialists for short-term activities. However, full-time team members should comprise people who can cover most of the skills that are required to complete the work.
Team Core Responsibilities
The primary responsibility of the team is to create software that meets both customer expectations and the team's criteria for finished software. The team's responsibilities start at the sprint planning meeting and end at the sprint review meeting. At the sprint planning meeting, the team divides user stories into tasks. At the sprint review meeting, the team presents working software to the product owner and possibly customers.
The team is also responsible for its own results. The team manages itself in defining and completing the work that it has selected and in collaborating among team members to optimize team effectiveness. The team should always work to improve its results by engaging in the following activities:
Define criteria for what is finished, and finish each task before starting the next.
Adopt effective engineering practices.
For more information, see Engineering Practices.
Help the product owner craft and prioritize effective user stories.
Estimate the user stories.
ScrumMaster
As a ScrumMaster, you are responsible for building and maintaining a healthy team that conforms to the Scrum processes. You are the change agent who helps the team overcome impediments.
What Makes a Good ScrumMaster
To be a good ScrumMaster, you should possess or build excellent communication, negotiation, and conflict resolution skills. You will use these skills daily to help your team develop. You must actively listen to not only the words that people say and write but also how they deliver their messages (their body language, facial expressions, vocal pace, and other nonverbal communication). You should ask questions that reveal hidden issues and confirm what you have understood people say. You should use these skills to identify potential issues on the team and help prevent them from becoming actual issues. It is cheaper to fix a bug soon after it is discovered, and it is easier and less disruptive to fix a team issue when it is small and manageable than when it is large and out of control. You should make the team, the product owner, and the other business stakeholders feel at ease as you drive the team to significantly increase its productivity. You should gather, analyze, and present data to the business stakeholders in a way that demonstrates how the team is improving and growing. For example, if your team has significantly increased the amount of value that it has delivered while generating fewer bugs, you must show that improvement to the business stakeholders.
ScrumMaster Core Responsibilities
Your primary responsibility is to make sure that the team and the product owner follow the Scrum processes. For example, you should not let the daily Scrum meeting become an open discussion that lasts 45 minutes. You will also make sure that the product owner does not ask the team to add work to a sprint after it starts. You will prevent the team from presenting user stories in the sprint review meeting if those stories are not completely finished.
You will help clear blocking issues that the team may encounter. You might need to perform small tasks, such as approving a purchase order for a new build computer, or perform larger, more challenging tasks, such as resolving conflicts among members of your team. When the team engages in painful interaction, you must help the team to recover and work more effectively in the future.
Product Owner
As the product owner, your primary function is to act as an interface between the customers and the team. A variety of customers and stakeholders will pull you in many directions.
What Makes a Good Product Owner
You must analyze customer requirements and articulate them as user stories. You must have good negotiation skills so that you can help customers to understand the tradeoffs between requested features and the impact that they have on the schedule. You must work with customers to prioritize the product backlog so that the team produces the most valuable product or system, one increment at a time. You must have subject-matter expertise in the business area or industry of the system that is being built. For example, you must have a background in healthcare and healthcare insurance if your team is building a healthcare system for a hospital. Without this knowledge, you cannot effectively prioritize the product backlog or explain the product backlog items to the team. You will also benefit from basic financial skills, such as the ability to understand the payback period on a system, budget amortization, and capital and expense budgeting. Your understanding of the Scrum processes and your commitment to them is also important to the success of the team.
Product Owner Core Responsibilities
Your core responsibilities are to represent customer and stakeholder requirements to the team, and to respond to the questions from the team. You must keep the product backlog current and prioritized. To maintain the product backlog, you must communicate regularly with customers, stakeholders, and the team. You should meet with stakeholders at least every one to two weeks. The order in which user stories are implemented will affect the payback period and the amount of work that the team must perform. The team will help you to understand how the sequence of user stories affects the work. You must help the stakeholders understand the effects of these ranking decisions. You also reduce the need for detailed specifications by being available to team members when they have questions about how to implement functionality. To keep the team moving, you must have these answers or be able to find them very quickly (in a few hours). If you are unavailable, team results will suffer.
Note
The level of detail in specifications depends on many factors, which include the type of application that your team is developing. For many applications, correctly elaborated user stories and open lines of communication are the most effective specifications. However, an application that processes lab tests might require detailed specifications so that the team can analyze in more detail the impact of changes that they make over time.
You will also work with both the team and the stakeholders to build acceptance tests. Acceptance tests help determine whether a particular user story is completed and ready for the sprint review. You must understand, identify, and articulate risk to both the team and the stakeholders.