Table Of ContentVisual Studio Team System
[SERIESPAGEINSERTEDBYA-W]
Visual Studio
Team System
Better Software Development
for Agile Teams
Will Stott
James Newkirk
Upper Saddle River, NJ•Boston•Indianapolis•San Francisco
New York•Toronto•Montreal•London•Munich•Paris•Madrid
Capetown•Sydney•Tokyo•Singapore•Mexico City
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trade-
marks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the
designations have been printed with initial capital letters or in all capitals.
The authors and publisher have taken care in the preparation of this book, but make no expressed or implied war-
ranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or
consequential damages in connection with or arising out of the use of the information or programs contained
herein.
The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales,
which may include electronic versions and/or custom covers and content particular to your business, training
goals, marketing focus, and branding interests. For more information, please contact:
U.S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside the United States please contact:
International Sales
international@pearsoned.com
Visit us on the Web: www.awprofessional.com
Library of Congress Cataloging-in-Publication Data
Stott, Will.
Visual studio team system : better software development for agile teams / Will Stott, James Newkirk.
p. cm.
Includes bibliographical references and index.
ISBN 978-0-321-41850-0 (pbk. : alk. paper)
1. Microsoft Visual studio. 2. Computer software—Development. 3. eXtreme programming. I. Newkirk,
James. II. Title.
QA76.76.D47S775 2007
005.3—dc22
2007008442
Copyright © 2007 Pearson Education, Inc.
All rights reserved. Printed in the United States of America. This publication is protected by copyright, and per-
mission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system,
or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For
information regarding permissions, write to:
Pearson Education, Inc.
Rights and Contracts Department
75 Arlington Street, Suite 300
Boston, MA02116
Fax: (617) 848-7047
ISBN 13: 978-0-321-41850-0
ISBN 10: 0-321-41850-6
Text printed in the United States on recycled paper at Courier in Stoughton, Massachusetts.
First printing, May 2007
For
Mark Newton Brearley
and
Beth Melanie Newkirk
This page intentionally left blank
Contents at a Glance
Preface xxvii
Acknowledgments xxxv
About the Authors xxxvii
Introduction: Broken Process 1
Section 1: Apply Sharp Tools and Values 9
1 Introduction to Visual Studio Team System 13
2 Agile Values 33
Review of Section 1: Sharp Tools and Values 45
Section 2: Introduce Agile Development 49
3 Overview of Agile Development 53
4 Forming an Agile Team 65
5 Team Foundation Process Frameworks 81
6 Improving Your Process Framework 107
Review of Section 2: Introduce Agile Development 119
Section 3: Use Version Control 123
7 Managing Change 127
8 Setting Up TFS Version Control 149
9 Using TFVC in Your Project 173
10 Policing Your Project with TFVC 191
Review of Section 3:Use Version Control 205
Section 4:Build and Integrate Often 209
11 Building and Integrating Software 213
12 Working with Team Foundation Build 229
Review of Section 4: Build and Integrate Often 255
Section 5:Practice Test-Driven Development 261
13 Introduction to TDD 265
14 Developing Your First Tests 283
vii
viii Contents at a Glance
15 Learning to Refactor 303
16 Code Coverage and Performance 325
17 Integrating TFPCode with a User Interface 339
Review of Section 5: Practice Test-Driven Development 351
Section 6: Explore by Modeling 357
18 Modeling with Agility 361
19 Creating Models 375
20 Using Models in an Agile Project 395
21 Modeling Solutions with Patterns 415
Review of Section 6:Explore by Modeling 433
Section 7: Implement Customer Testing 439
22 Involving Customers in Testing 443
23 Creating FITFixtures 459
24 Running FITwith Team Foundation Build 481
Review of Section 7: Implement Customer Testing 501
Section 8: Estimate, Prioritize, and Plan 507
25 Estimating and Prioritizing Stories 511
26 Agile Planning 527
27 Managing Agile Projects 545
Review of Section 8: Estimate, Prioritize, and Plan 571
Section 9:Practice for Deployment 577
28 Moving into Production 581
29 Developing Installation Programs 597
30 Deployment of Distributed Systems 625
Review of Section 9: Practice for Deployment 661
Section 10:Provide and Reveal Value 665
31 Producing Technical Reports 669
32 Generating Business Value 683
Review of Section 10: Provide and Reveal Value 693
Retrospective: Fixing the Process 697
Section 11:Appendixes 713
A Setting Up VSTS for the Exercises 715
B Software Project Environment for a Small Team 729
C Agile Workspace 753
List of Exercises 763
List of Extreme Programming Practices 771
Glossary 773
Bibliography 789
Resources 797
Index 805
Contents
Preface xxvii
Acknowledgments xxxv
About the Authors xxxvii
Introduction: Broken Process 1
Welcome to the OSPACS Team 1
Team Background 1
Current Organizational Structure and Personas 2
The Team’s Road Map for Fixing Its Process 6
Section 1: Apply Sharp Tools and Values 9
Story from the Trenches 10
1 Introduction to Visual Studio Team System 13
The Purpose and Structure of VSTS 13
Elevator Pitch 14
Typical Organization of VSTS for a Small Team 14
Functional Components of VSTS 16
Client Parts of VSTS 17
Differentiation of VSTS Products 17
Visual Studio Professional 18
Team Explorer 20
VSTS Tools 22
ix
Description:Visual Studio Team System (VSTS) gives Microsoft development teams a powerful, integrated toolset for Agile development. Visual Studio Team System: Better Software Development for Agile Teams is a comprehensive, start-to-finish guide to making the most of VSTS in real-world Agile environments.Using