Wednesday, October 26, 2011

Scrum Teams

In the Scrum method of agile software development, there are three fundamental roles: the Product Owner, the ScrumMaster, and the team. In my last two articles, I discussed the roles of the Product Owner and the ScrumMaster. Finally, I'll discuss the development team and how it functions within an agile paradigm.

For Scrum software development, an ideal team consists of seven members, plus or minus two. Usually, Scrum teams are made of cross-functional members, who include a mix of software engineers, architects, programmers, analysts, QA experts, testers, UI designers, and so on. In Scrum, it is recommended that the team is located in a single room (the team room).

Sprint Cs

Although the Scrum team is responsible for the completion of the work agreed upon in the Sprint Planning Meeting, the team has the ability to limit the amount of work it takes on. Granted, the Product Owner will expect the team to take on as many story points of work as can be realistically completed. (In this case, the Scrum team would point to its established velocity for previous sprints to negotiate how many story points constitute a realistic workload.) This process of negotiation is valuable for two reasons. Firstly, it protects the team from being overwhelmed with an unreasonable sprint backlog. Secondly, it manages the expectations of the Product Owner, who, in turn, can do the same for customers.

Similarly, the team has the autonomy to determine how and when to complete its work. Provided that the team finishes its work on time and within budget, how that work is completed is entirely up to the discretion of the team. In theory, the team could spend the first half of its sprint at the beach, as long as the work meets the corresponding acceptance criteria. Of course, a Scrum team typically needs the entire sprint to complete its work. In fact, it's common for Scrum teams to discover within the first few days of a sprint, when the team begins to wrap its heads around the work to be completed, that they have even more work to do than they originally thought. Moreover, the Scrum method of agile software development does not award partial credit. Even if a project is 99 percent "done," it's still incomplete if it does not meet all the established acceptance criteria. After all, a project's finishing touches are often the most time-consuming and labor-intensive.

Using Scrum to manage agile software development is the leading strategy to help teams reduce risk and associated costs, while increasing the quality of a team's releases. Through an emphasis on communication and collaboration, Scrum brings everyone together--from developers to stakeholders--to build a better product.

Scrum Teams

No comments:

Post a Comment