- Copyright 2007
- Edition: 1st
-
Book
- ISBN-10: 0-321-41850-6
- ISBN-13: 978-0-321-41850-0
<>Make the Most of Visual Studio Team System in Real-World Agile Development
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 a book-length case study, the authors show how to use VSTS to improve every aspect of software development, step by step–from project planning through design and from coding through testing and deployment.
Agile consultant Will Stott and Microsoft development lead James Newkirk carefully integrate theory and practice, offering hands-on exercises, practical insights into core Extreme Programming (XP) techniques, and much more.
Coverage includes
- Using VSTS to support the transition to Agile values and techniques
- Forming Agile teams and building effective process frameworks
- Leveraging Team Foundation Version Control to help teams manage change and share their code effectively
- Implementing incremental builds and integration with Team Foundation Build
- Making the most of VSTS tools for Test-Driven Development and refactoring
- Bringing agility into software modeling and using patterns to model solutions more effectively
- Using the FIT integrated testing framework to make sure customers are getting what they need
- Estimating, prioritizing, and planning Agile projects
Preface
Acknowledgments
About the Authors Introduction: Broken Process
Section 1: Apply Sharp Tools and Values
Chapter 1: Introduction to Visual Studio Team System
Chapter 2: Agile Values
Review of Section 1: Sharp Tools and Values
Section 2: Introduce Agile Development
Chapter 3: Overview of Agile Development
Chapter 4: Forming an Agile Team
Chapter 5: Team Foundation Process Frameworks
Chapter 6: Improving Your Process Framework
Review of Section 2: Introduce Agile Development
Section 3: Use Version Control
Chapter 7: Managing Change
Chapter 8: Setting Up TFS Version Control
Chapter 9: Using TFVC in Your Project
Chapter 10: Policing Your Project with TFVC
Review of Section 3: Use Version Control
Section 4: Build and Integrate Often
Chapter 11: Building and Integrating Software
Chapter 12: Working with Team Foundation Build
Review of Section 4: Build and Integrate Often
Section 5: Practice Test-Driven Development
Chapter 13: Introduction to TDD
Chapter 14: Developing Your First Tests
Chapter 15: Learning to Refactor
Chapter 16: Code Coverage and Performance
Chapter 17: Integrating TFP Code with a User Interface
Review of Section 5: Practice Test-Driven Development
Section 6: Explore by Modeling
Chapter 18: Modeling with Agility
Chapter 19: Creating Models
Chapter 20: Using Models in an Agile Project
Chapter 21: Modeling Solutions with Patterns
Review of Section 6: Explore by Modeling
Section 7: Implement Customer Testing
Chapter 22: Involving Customers in Testing
Chapter 23: Creating FIT Fixtures
Chapter 24: Running FIT with Team Foundation Build
Review of Section 7: Implement Customer Testing
Section 8: Estimate, Prioritize, and Plan
Chapter 25: Estimating and Prioritizing Stories
Chapter 26: Agile Planning
Chapter 27: Managing Agile Projects
Review of Section 8: Estimate, Prioritize, and Plan
Section 9: Practice for Deployment
Chapter 28: Moving into Production
Chapter 29: Developing Installation Programs
Chapter 30: Deployment of Distributed Systems
Review of Section 9: Practice for Deployment
Section 10: Provide and Reveal Value
Chapter 31: Producing Technical Reports
Chapter 32: Generating Business Value
Review of Section 10: Provide and Reveal Value
Retrospective: Fixing the Process
Appendixes
Appendix A: Setting Up VSTS for the Exercises
Appendix B: Software Project Environment for a Small Team
Appendix C: Agile Workspace 753
List of Exercises
List of Extreme Programming Practices
Glossary
Bibliography
Resources
Index
This book is for working software developers, architects, testers, and managers in real teams–professionals who are either transitioning to VSTS or considering doing so. It will help you start deriving value from VSTS immediately, as you lay a solid foundation for ongoing process improvement.
Online Sample Chapter
Overview of Agile Development
Downloadable Sample Chapter
Download the sample chapter
Table of Contents
Preface xxvii
Acknowledgments xxxv
About the Authors xxxvii
Introduction: Broken Process 1
Welcome to the OSPACS Team 1
Section 1: Apply Sharp Tools and Values 9
Story from the Trenches 10
Chapter 1: Introduction to Visual Studio Team System 13
The Purpose and Structure of VSTS 13
Client Parts of VSTS 17
Server Parts of VSTS 27
Extending VSTS 30
Chapter 2: Agile Values 33
Tools and Values 33
The Agile Alliance 36
Extreme Programming (XP) 37
Review of Section 1: Sharp Tools and Values 45
The Team's Impressions 45
Agile Values 46
Section 2: Introduce Agile Development 49
Story from the Trenches 50
Chapter 3: Overview of Agile Development 53
What Is Different about an Agile Project? 53
Introduction to Extreme Programming 57
Isn't XP Just Hacking? 62
Chapter 4: Forming an Agile Team 65
The Nature of Agile Teams 65
Agile Team Structure 70
Reorganizing the OSPACS Team 76
Chapter 5: Team Foundation Process Frameworks 81
Team Projects and Process Frameworks 81
Microsoft Solutions Framework (MSF) 4.0 95
Frameworks for Specific Processes 100
Chapter 6: Improving Your Process Framework 107
Providing a New Metric for an Existing Process Framework 107
Improving Your Process 110
Review of Section 2: Introduce Agile Development 119
The Team's Impressions 120
Agile Values 121
Section 3: Use Version Control 123
Story from the Trenches 124
Chapter 7: Managing Change 127
Sharing Information among Your Team 127
Using a Version Control System 133
VSTS Support for Version Control Tools 144
Chapter 8: Setting Up TFS Version Control 149
Structuring Your Team Project 149
Establishing the Initial Baseline for Your Project 160
Other Set-Up Tasks 166
Chapter 9: Using TFVC in Your Project 173
Using TFVC When Coding 173
Common Version Control Tasks 177
Chapter 10: Policing Your Project with TFVC 191
Protecting Your Source Code 191
Establishing Policies for Source Code 195
Review of Section 3: Use Version Control 205
The Team's Impressions 206
Agile Values 207
Section 4: Build and Integrate Often 209
Story from the Trenches 210
Chapter 11: Building and Integrating Software 213
Software Construction 213
Automated Software Testing 217
Build and Test Cycles 222
Chapter 12: Working with Team Foundation Build 229
Welcome to Team Foundation Build 229
Build Management 245
Scaling Up Team Integration Builds 249
Review of Section 4: Build and Integrate Often 255
The Team's Impressions 256
Agile Values 258
Section 5: Practice Test-Driven Development 261
Story from the Trenches 262
Chapter 13: Introduction to TDD 265
The Nature of Test-Driven Development 265
Simple Test-First Programming Exercises 269
Getting Started with Test-First Programming 277
Chapter 14: Developing Your First Tests 283
Creating Visual Studio Projects for TFP 283
The Story behind the Tests 287
Create a Test List 289
Implementing the Tests 294
Chapter 15: Learning to Refactor 303
Doing Small Refactorings 303
Refactor As You Go 313
Doing a Big Refactoring 318
Chapter 16: Code Coverage and Performance 325
Code Coverage 325
Performance Analysis 331
Chapter 17: Integrating TFP Code with a User Interface 339
Implementing the User Interface 339
Simple Design 346
Review of Section 5: Practice Test-Driven Development 351
The Team's Impressions 352
Agile Values 354
Reinforcement of Agile Practices 355
Section 6: Explore by Modeling 357
Story from the Trenches 358
Chapter 18: Modeling with Agility 361
Introduction to Modeling 361
Values, Principles, and Practices of Agile Modeling 363
Agile Modeling in Use 366
Chapter 19: Creating Models 375
Free-form Diagrams 375
UML Diagrams 377
Using Modeling Tools 385
Chapter 20: Using Models in an Agile Project 395
Requirement Models 395
Architectural Models 405
Implementation Models 411
Chapter 21: Modeling Solutions with Patterns 415
What Is a Pattern? 415
Using Patterns in an Agile Project 421
Implementation of Patterns and Models 424
Emergence of Domain-Specific Languages 426
Review of Section 6: Explore by Modeling 433
The Team's Impressions 434
Agile Values 436
Section 7: Implement Customer Testing 439
Story from the Trenches 440
Chapter 22: Involving Customers in Testing 443
Agile Customer Testing 443
FIT: Framework for Integrated Test 445
Storytest-Driven Development 454
Chapter 23: Creating FIT Fixtures 459
Standard FIT Fixtures 459
Custom FIT Fixtures 476
Chapter 24: Running FIT with Team Foundation Build 481
Performing Customer Tests in Your Build Lab 482
Automated Customer Testing 487
Introducing Your Team to Customer Testing 491
Review of Section 7: Implement Customer Testing 501
The Team's Impressions 502 Agile Values 504
Section 8: Estimate, Prioritize, and Plan 507
Story from the Trenches 508
Chapter 25: Estimating and Prioritizing Stories 511
Working with Customer Stories 511
Estimating 516
Prioritizing 521
Chapter 26: Agile Planning 527
The Nature of Plans 527
Planning at Every Time Scale 530
Controlling Plans 538
Chapter 27: Managing Agile Projects 545
Using Visual Studio Team System for Project Management 545
Example Agile Planning Life Cycle 556
Top Ten Tips for Managing Agile Projects 567
Review of Section 8: Estimate, Prioritize, and Plan 571
The Team's Impressions 572
Agile Values 574
Section 9: Practice for Deployment 577
Story from the Trenches 578
Chapter 28: Moving into Production 581
Managing Deployment 581
Preparing for Deployment 587
Monitoring the Production Environment 592
Chapter 29: Developing Installation Programs 597
Introduction to Windows Installer 597
Creating an Installation Project with InstallShield 604
Developing Installation Programs on an Agile Team 613
ClickOnce Technology 620
Chapter 30: Deployment of Distributed Systems 625
Distributed System Architecture 625
Logical Datacenter Designer 629
Application Designer 638
System Designer 649
Deployment Designer 653
Review of Section 9: Practice for Deployment 661
The Team's Impressions 662
Agile Values 664
Section 10: Provide and Reveal Value 665
Story from the Trenches 666
Chapter 31: Producing Technical Reports 669
Revealing Valuable Information 669
Extracting Data from Team Foundation Server 674
Chapter 32: Generating Business Value 683
Lean Thinking 683
Changing the Economics of Software Development 688
Linking Agile to Other Process Improvement Initiatives 690
Review of Section 10: Provide and Reveal Value 693
The Team's Impressions 693
Agile Values 695
Retrospective: Fixing the Process 697
About Retrospectives 697
The OSPACS Team's Retrospective 700
Analysis of the Project Timeline 705
Is the OSPACS Team Extreme? 709
Appendixes 713
Appendix A: Setting Up VSTS for the Exercises 715
Appendix B: Software Project Environment for a Small Team 729
Appendix C: Agile Workspace 753
List of Exercises 763
List of Extreme Programming Practices 771
Glossary 773
Bibliography 789
Resources 797
Index 805
Preface
Download the Preface
Index
Download the Index
Introduction
Download the Introduction