about this book

This book is about the science of creating software. More and more organizations are demanding that instead of being a mysterious activity practiced by a smart but unsocial group of people, software development should become a transparent business process that produces reliable outcomes. Software has become too important in the modern world to leave its creation to chance and faith.

Transparency generates trust. Communication improves productivity. Collaboration decreases execution risks. These are time-honored tenets that work when undertaking any team activity. Software development is no different. But implementing this knowledge in everyday software development activities isn’t easy, given how diverse the stakeholders are and how dispersed the teams are. It requires a platform that facilitates transparency, collaboration, and communication without any special effort by the practitioners involved. After all, people on the project teams already have too many other issues to think about.

This book teaches you how to use TFS to implement a consistent, reliable, and repeatable software development process. You’ll learn how the platform works out of the box as well as how to customize it. You’ll understand some of the limitations as well as the possibilities. You’ll realize that software development doesn’t have to be based on luck and last-minute heroics. You can construct, instrument, and institute a process that produces better outcomes. TFS gives you that power.

Audience

This book is intended for ALM practitioners in the field. It contains actionable information for program and project managers looking to set up their preferred development processes and to monitor execution status. There’s information for developers interested in optimally configuring source code repositories and build systems. There’s guidance for database professionals attempting to better integrate their work with the rest of the development activities. And there’s material for IT administrators thinking about deploying the platform in managed data centers in a secure, scalable, and highly available manner.

The goal of the TFS platform is to integrate the myriad stakeholders in the extended development team.

The book is for people who are trying to make it happen.

Roadmap

Chapter 1 starts with a brief background on the evolution of software development methodologies. We then learn how TFS fits into the overall application lifecycle management (ALM) landscape and what the platform’s key features are. We review the major functional areas to get a conceptual understanding of how the system works as a whole.

Chapter 2 describes the changes in TFS 2008. TFS 2008 offers important enhancements in build and version control. These changes improve performance, scalability, and flexibility.

Chapter 3 talks about the database management capabilities of TFS. Despite the ubiquitous presence of databases in software development efforts, database professionals have traditionally had to operate outside the mainstream development processes. We learn how TFS can integrate database management in the core development process.

Chapter 4 reviews the underlying principles of effective source code management. We learn how to undertake parallel development using various branching models. We also learn how to maintain shared code and coordinate the work of distributed feature teams.

Chapter 5 talks about version control policies. Policies are important because they provide consistent guidance regarding what’s acceptable in a given development process. In this chapter, we learn about access control as well as check-in policies.

Chapter 6 introduces the concept of merging. Given the complexities of real-life merge operations, effective tool support is essential for productivity and safety. We also learn about the TFS event engine and how it can be used to coordinate code maintenance actions of distributed teams.

Chapter 7 is about creating reliable builds. We learn about the core concepts in Team Build and explore its inner workings. We then apply this knowledge to create different kinds of builds. We also create a service that creates test builds before committing changes to the main repository.

Chapter 8 delves into the details of setting up an automated system for versioning assemblies. This is important because without an effective versioning mechanism, you end up in chaos when deploying build binaries. We learn about versioning Windows as well as web applications.

Chapter 9 focuses on the operational aspects of TFS. We learn how to deploy TFS for scalability and availability, how to weigh relevant factors when organizing team projects, and how to create and expose key performance indicators (KPIs) for monitoring project health.

Chapter 10 switches gears and talks about TFS within the context of larger business processes. We explore how TFS can be integrated in a broader organizational workflow. The benefits of a workflow-based system include built-in support for long-running activities, better resource management, and tracking features.

Code conventions and downloads

All source code in listings or in text is in

a fixed-width font like this
to separate it from ordinary text. Code annotations accompany many of the listings, highlighting important concepts. In some cases, numbered bullets link to explanations that follow the listing.

The complete example code for the book can be downloaded from the Manning web site at www.manning.com/azher or www.manning.com/TeamFoundationServerinAction. You’ll find source code and other supporting artifacts there.

Author Online

The purchase of Team Foundation Server in Action includes free access to a private forum run by Manning Publications where you can make comments about the book, ask technical questions, and receive help from the author and other users. You can access and subscribe to the forum at www.manning.com/azher or www.manning.com/TeamFoundationServerinAction. This page provides information on how to get on the forum once you are registered, what kind of help is available, and the rules of conduct in the forum.

Manning’s commitment to our readers is to provide a venue where a meaningful dialogue among individual readers and between readers and author can take place. It’s not a commitment to any specific amount of participation on the part of the author, whose contribution to the book’s forum remains voluntary (and unpaid). We suggest you try asking the author some challenging questions, lest his interest stray!

The Author Online forum and the archives of previous discussions will be accessible from the publisher’s website as long as the book is in print.

About the title

By combining introductions, overviews, and how-to examples, the In Action books are designed to help learning and remembering. According to research in cogni- tive science, the things people remember are things they discover during self-motivated exploration.

Although no one at Manning is a cognitive scientist, we are convinced that for learning to become permanent it must pass through stages of exploration, play, and, interestingly, retelling of what is being learned. People understand and remember new things, which is to say they master them, only after actively exploring them. Humans learn in action. An essential part of an In Action guide is that it is example-driven. It encourages the reader to try things out, to play with new code, and explore new ideas.

There is another, more mundane, reason for the title of this book: our readers are busy. They use books to do a job or to solve a problem. They need books that allow them to jump in and jump out easily and learn just what they want just when they want it. They need books that aid them in action. The books in this series are designed for such readers.

About the cover illustration

The figure on the cover of Team Foundation Server in Action is captioned “A Friend of the Artist.” The illustration is taken from a French book, Encyclopedie des Voyages by J. G. St. Saveur, published in Paris in the 19th century. The diversity of the drawings in the Encyclopedie speaks vividly of the uniqueness and individuality of the world’s towns and provinces and of its citizens less than 200 years ago. This was a time when dress codes identified people uniquely as belonging to a certain locality or country or profession or station in life, and that were easily recognizable by others.

Dress codes have changed since then and the diversity and distinctions by region and class, so rich at the time, have faded away. It is now often hard to tell the inhabitant of one continent from another. Perhaps, trying to view it optimistically, we have traded a cultural and visual diversity for a more varied personal life. Or a more varied and interesting intellectual and technical life.

We at Manning celebrate the inventiveness, the initiative, and the fun of the computer business with book covers based on the rich diversity of regional life two centuries ago brought back to life by the pictures from this collection.