Visual 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 [email protected] For sales outside the United States please contact: International Sales [email protected] 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: