Scrum, Agile Practices, and Visual Studio
- One methodology cannot possibly be the "right" one, but... there is an appropriate, different way of working for each project and project team.1
- —Alistair Cockburn
Figure 2-1 The rhythm of a crew rowing in unison is a perfect example of flow in both the human and management senses. Individuals experience the elation of performing optimally, and the coordinated teamwork enables the system as a whole (here, the boat) to achieve its optimum performance. It's the ideal feeling of a "sprint."
The preceding chapter discussed the Agile Consensus of the past decade. That chapter distinguished between complicated projects, with well-controlled business or technical risk, and complex ones, where the technology and business risks are greater. Most new software projects are complex; otherwise, the software would not be worth building.
This chapter covers the next level of detail—the characteristics of software engineering and management practices, the "situationally specific" contexts to consider, and the examples that you can apply in Visual Studio (VS). In this chapter, you learn about the mechanisms that VS (primarily Team Foundation Server [TFS]) provides to support the team enacting the process. Whereas Chapter 1, "The Agile Consensus," gave an outside-in view of what a team needs, this chapter provides an inside-out overview of the tooling that makes the enactment possible.
Visual Studio and Process Enactment
Through three classes of mechanisms, VS helps the team follow a defined software process:
- As illustrated in Chapter 1, TFS captures backlogs, workflow, status, and metrics. Together, these keep the work transparent and guide the users to the next appropriate actions. TFS also helps ensure the "done-ness" of work so that the team cannot accrue technical debt without warning and visibility.
- Each team project tracked by TFS starts off with a process template that defines the standard workflows, reports, roles, and artifacts for the process. These are often changed later during the course of the team project as the team learns and tunes its process, but their initial defaults are set according to the chosen process template.
- On the IDE clients (VS or Eclipse), there are user experiences that interact with the server to ensure that the policies are followed and that any warnings from policy violations are obvious.