Pro Application Lifecycle Management with Visual Studio 2012

Similar documents
Asset Accounting Configuration in SAP ERP

CFO Techniques. A Hands-On Guide to Keeping Your Business Solvent and Successful. Marina Guzik

Windows Azure Platform TEJASWI REDKAR

Using Microsoft Dynamics AX 2012

Analyze, Design, and Develop Applications

FREQUENTLY ASKED QUESTIONS

Communicate and Collaborate with Visual Studio Team System 2008

PROFESSIONAL SCRUM WITH TEAM FOUNDATION SERVER 2010

Pro Apache Hadoop. Second Edition. Sameer Wadkar Madhu Siddalingaiah

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

Ethics for Biomedical Engineers

IBM Innovate 2010 Managing Requirements for Your Agile Team

The Art of Agile Practice

[Name] [ ID] [Contact Number]

Familienunternehmen und KMU

Management for Professionals

"Charting the Course... MOC A Retail n Brick and Mortar Stores: Development and Customization for Microsoft Dynamics AX 2012 R2.

CollabNet Trends, Challenges, and Success with Agile ALM

Agile Quality Strategy with HP Agile Manager August 26, 2015

HP Agile Manager. Key Benefits. At a glance. Project Management. Key Software Capabilities. Administration. Enterprise SaaS.

MICROSOFT OPERATIONS MANAGEMENT SUITE (OMS): BEHIND THE CURTAIN

New Balance Athletic Shoe, Inc.

A Guide to Critical Success Factors in Agile Delivery

Expert Reference Series of White Papers. Microsoft Service Manager Simplified

New and noteworthy in Rational Asset Manager V7.5.1

A Day in the Life of a Migrated ClearCase User. A Sneak Preview

Oracle E-Business Suite Development and Extensibility Handbook

Wipfli LLP Wipfli LLP

C4C10. SAP Hybris Cloud for Customer Administration COURSE OUTLINE. Course Version: 20 Course Duration: 3 Day(s)

Agile Planning with HP Project Portfolio Management and Agile Manager February 3, 2015

What is Continuous Integration. And how do I get there

Agile Architecture And Design

Automating Your Way to Simplified Application Management

2 Business Processes and Forms with Office SharePoint Server 2007

Pro EDI in BizTalk Server 2006 R2

Access to Justice in Transnational B2C E-Commerce

Simon Chaney Technical Specialist Microsoft Australia

PART I: SHAREPOINT ARCHITECT KNOWLEDGE REQUIREMENTS CHAPTER 1: A DIGITAL WORKFORCE FOR A DIGITAL AGE 3

Microarrays in Diagnostics and Biomarker Development

Can t We Just Get Along? Making SSRS, Power BI and Excel Play Well Together. Paul Turley Microsoft MVP, Principal Consultant, Intelligent Business

Quality Application Development with ALM Octane November 21, 2017

Scrum. Software Engineering and. The Waterfall model. The Waterfall model - some arguments. The Waterfall model - some arguments. Time.

Web Portal: Submit A Locate Request

Managing Your Backlog

MCSE: Private Cloud Training Course (System Center 2012)

IF YOUR PROCESS isn t broken, don t fix it! That is to say, if nobody wants

IBM Tivoli Monitoring

"Charting the Course... MOC D: IT Service Management with System Center Service Manager. Course Summary

Business Portal for Microsoft Dynamics GP. Human Resources Management Self Service Suite Administrator s Guide Release 10.0

Dynamics 365 for Finance & Operations

S4C01. SAP S/4HANA Cloud On-boarding Fundamentals COURSE OUTLINE. Course Version: 05 Course Duration: 3 Day(s)

MASTERING IDENTITY AND ACCESS MANAGEMENT WITH MICROSOFT AZURE BY JOCHEN NICKEL

AGILE SOLUTIONS. Agile Basics

SM100. SAP Solution Manager Configuration for Operations COURSE OUTLINE. Course Version: 15 Course Duration: 5 Day(s)

approach to successful project

Agile Engineering. for Managers. Introducing agile engineering principles for non-coders

Project Management Communication Tools. By William Dow, PMP & Bruce Taylor

Welcome to this IBM Rational podcast, The. Scaled Agile Framework in Agile Foundation for DevOps. I'm

PROJECT & PORTFOLIO MANAGEMENT ROADMAP FOR OFFICE 365. October 1st, 2015

IBM Cognos TM1. Highlights. IBM Software Business Analytics

Agilitate.com. From Mountain To Molehill. Saving Millions With Agile Programme Management. Bill Nicholas - 8 th September 2011

IBM Cloud Garage Method Field Guide

Best Practices for Implementing Contact Center Experiences

Agile Transformation:

IBM WIoT CP Summit Open Labs (NO COST - not a substitute for full training courses)

Executive Summary WHO SHOULD READ THIS PAPER?

Implementing and Administering Microsoft Visual Studio 2008 Team Foundation Server

The Business Case for Agility

GETRAG FORD TRANSMISSIONS

Requirements Engineering Best Practices

Data Collection for Agile Projects Blaze Smallwood ICEAA Conference 2016

Development Environment Definition

Scrum Master / Agile Project Manager An Approach for Personal Competency Development

Managing e-business Projects

How To Standard Costing

Harnessing the power of agile development

UX100 SAP Fiori Foundation

TABLE OF CONTENTS DOCUMENT HISTORY 3

CITY OF TORONTO. BY-LAW No (OMB)

BO100. Reporting with SAP BusinessObjects BI Solutions for SAP NetWeaver BW COURSE OUTLINE. Course Version: 16 Course Duration: 5 Day(s)

Software Engineering Lecture 5 Agile Software Development

POWER BI BOOTCAMP. COURSE INCLUDES: 4-days of instructor led discussion, Hands-on Office labs and ebook.

HYPERION SYSTEM 9 PLANNING

IIBA Membership. Member Benefits include:

SM100. SAP Solution Manager Configuration for Operations COURSE OUTLINE. Course Version: 17 Course Duration:

DevOps Guide: How to Use APM to Enhance Performance Testing

Urban and Regional Research International Volume 14

A SDLC Software Development Lifecycle It s a set of tools, artifacts, and work practices an organization uses to create software.

Achieving Balance: The New Pivotal Points of Software Development

Scale. Becoming a Lean Enterprise with IBM and SAFe

NEW SKILLS AND PARTNERSHIPS IN IT ASSET MANAGEMENT

Copyright Software Engineering Competence Center

Raising Customer Expectations - University of San Francisco Case Study. Case Study


QPR ScoreCard. White Paper. QPR ScoreCard - Balanced Scorecard with Commitment. Copyright 2002 QPR Software Oyj Plc All Rights Reserved

Chicago PMO Roundtable March 2015

Agenda. ClearQuest 8.0 What s New. Positioning Integrations Collaboration Administration New Features Deprecations Q&A

A Modern Intranet Defined

IT Service Management with System Center Service Manager

A Guide to Branching and Merging Patterns

Transcription:

Pro Application Lifecycle Management with Visual Studio 2012 Second Edition Joachim Rossberg Mathias Olausson

Pro Application Lifecycle Management with Visual Studio 2012 Copyright 2012 by Joachim Rossberg and Mathias Olausson This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher s location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law. ISBN 978-1-4302-4344-1 ISBN 978-1-4302-4345-8 (ebook) Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. President and Publisher: Paul Manning Lead Editor: Tom Welsh Technical Reviewers: Jakob Ehn, Todd Meister, Gregg Boer, and Anutthara Bharadwaj Editorial Board: Steve Anglin, Ewan Buckingham, Gary Cornell, Louise Corrigan, Morgan Ertel, Jonathan Gennick, Jonathan Hassell, Robert Hutchinson, Michelle Lowman, James Markham, Matthew Moodie, Jeff Olson, Jeffrey Pepper, Douglas Pundick, Ben Renow-Clarke, Dominic Shakeshaft, Gwenan Spearing, Matt Wade, Tom Welsh Coordinating Editors: Corbin Collins and Mark Powers Copy Editors: Linda Seifert, Pat Morris, and Brendan Frost Compositor: SPi Global Indexer: SPi Global Artist: SPi Global Cover Designer: Anna Ishchenko Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com, or visit www.springeronline.com. For information on translations, please e-mail rights@apress.com, or visit www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. ebook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales ebook Licensing web page at www.apress.com/bulk-sales. Any source code or other supplementary materials referenced by the author in this text is available to readers at www.apress.com/978430243441. For detailed information about how to locate your book s source code, go to www.apress.com/source-code.

To Eddie and Amelie Joachim Rossberg To Susanne, Linn and Linus. Mathias Olausson

Contents at a Glance About the Authors... xxvii About the Technical Reviewers... xxix Acknowledgments... xxxi Introduction... xxxiii Part 1: Application Lifecycle Management... 1 Chapter 1: Why Application Lifecycle Management Matters...3 Chapter 2: Introduction to Application Lifecycle Management...21 Chapter 3: Development Processes and Frameworks...37 Chapter 4: ALM Assessments...61 Chapter 5: ALM Using TFS...75 Part 2: Planning (Agile Project Management)... 89 Chapter 6: Introduction to Agile...91 Chapter 7: Work Item Tracking and Process Customization...101 Chapter 8: Agile Project Management With TFS...127 Chapter 9: Metrics and ALM Assessment for Agile Project Management...155 Part 3: Analysis, Modeling, and Design (Architecture)... 173 Chapter 10: Prototyping Using Storyboarding and Feedback Tracking...175 Chapter 11: Top Down Design Studies (UML)...189 v

AT A GLANCE Chapter 12: Using Architecture Explorer...203 Chapter 13: Using Layer Diagrams...209 Chapter 14: Metrics and ALM Assessment for Architecture, Analysis and Design...219 Part 4: Building (Developer Practices)... 223 Chapter 15: Version Control...225 Chapter 16: Unit Testing...251 Chapter 17: Code Quality...271 Chapter 18: Performance and Profiling...287 Chapter 19: Metrics and ALM Assessment for Developer Practices...305 Part 5: Validating (Software Testing)... 313 Chapter 20: Overview of Software Testing...315 Chapter 21: Manual Testing...323 Chapter 22: Automated Testing...355 Chapter 23: Visual Studio Lab Management...385 Chapter 24: Metrics and ALM Assessment for Software Testing...413 Part 6: Releasing... 423 Chapter 25: Continuous Delivery...425 Chapter 26: Build Automation...433 Chapter 27: Deployment...489 Chapter 28: Release Management...515 Chapter 29: Metrics and ALM Assessment...533 Part 7: Team Foundation Server... 543 Chapter 30: Architecture and Implementation Planning...545 Chapter 31: TFS Installation, Upgrade, and Administration...557 vi

AT A GLANCE Chapter 32: TFS Reporting...575 Chapter 33: Working in Heterogeneous Environments...599 Chapter 34: TFS In The Cloud...613 Index...623 vii

Contents About the Authors... xxvii About the Technical Reviewers... xxix Acknowledgments... xxxi Introduction... xxxiii Part 1: Application Lifecycle Management... 1 Chapter 1: Why Application Lifecycle Management Matters...3 Understanding the Cornerstones of Business...4 Processes...4 Business Rules...5 Information...5 Understanding the Need for Business Software...5 Today s Business Environment and the Problems We Face...6 Project Health Today: Three Criteria for Success...7 Factors Influencing Projects and Their Success...9 Project Success in Research...12 The Standish Group...12 Robert C. Glass...13 Size and Volatility Survey...13 Conclusions...16 IT Budget Spending...17 Development vs. Operations...17 Factors Influencing IT Spending...18 Summary...20 ix

Chapter 2: Introduction to Application Lifecycle Management...21 Roles in the ALM Process...21 Four Ways of Looking at Application Lifecycle Management...23 The SDLC View...24 The Service Management or Operations View...25 The Application Portfolio Management View...25 The Unified View...26 Three Pillars of Application Lifecycle Management...26 Traceability of Relationships Between Artifacts...27 Automation of High-Level Processes...27 Visibility into the Progress of Development Efforts...28 A Brief History of ALM Tools...28 Application Lifecycle Management 1.0...29 Application Lifecycle Management 2.0...31 Application Lifecycle Management 2.0+...34 ALM and PPM...35 Summary...36 Chapter 3: Development Processes and Frameworks...37 The Waterfall Model...37 Spiral Model...40 Rational Unified Process (RUP)...41 The Principles of RUP...42 The RUP Lifecycle...43 Disciplines...46 Manifesto for Agile Software Development...49 Extreme Programming (XP)...51 Scrum...51 Empirical Process Control...53 Complexity in Projects...53 x

What Scrum Is...54 The Roles in Scrum...55 The Scrum Process...57 Capability Maturity Model Integration (CMMI)...59 Summary...60 Chapter 4: ALM Assessments...61 Microsoft Application Platform Optimization (APO) Model...62 Infrastructure Optimization Model...62 Business Productivity Infrastructure Model...62 Application Platform Capability Assessment...66 Summary...74 Chapter 5: ALM Using TFS...75 Application Lifecycle Management Overview...75 Team Foundation Server Overview...76 Team Foundation Server...76 Process Template...77 Visual Studio 2012 Editions...78 Web Access...79 Microsoft Office...80 Integrated Development Environment (IDE) Integration...80 Traceability...80 The TFS Work Item Tracking System...80 Visibility...84 Collaboration...86 Work Items for Collaboration...86 The Gap Between IT and Business...86 Use of One Tool/Role Based...87 Extensibility...87 Summary...88 xi

Part 2: Planning (Agile Project Management)... 89 Chapter 6: Introduction to Agile...91 xii The Scrum Process...91 Roles in Scrum...92 Product Owner...92 Scrum Master...93 The Development Team...94 Definition of Done...94 Agile Requirements and Estimation...95 Requirements...95 Estimation...96 Backlog...98 Summary...99 Chapter 7: Work Item Tracking and Process Customization...101 Traceability...101 The TFS Work Item Tracking System...102 Work Items...103 The Work Item Form...105 Work Item Traceability...106 Work Item Queries...109 Conclusions on the Work Item Tracking System...109 Process Customization...110 Modifying the Process Template...110 Common Adaptations of the Process Template...112 Web Access Customization...121 Using WITAdmin to Change the Web Access UI...121 Changing the Product Backlog Add Dialog...122 Changing the Columns in the Product Backlog List...123 Adding States to the Board...124 Summary...125

Chapter 8: Agile Project Management With TFS...127 Case Study...127 Company Background...127 The Pilot Project...128 Scrum TFS Template...129 Work Items...129 TFS Web Access and Portal...130 Reports and Queries...131 Project Startup Phase...133 PO Sets Off to Work...134 Building the Initial Team...134 Requirements...136 Building the Backlog and Prioritizing It...136 Definition of Done...139 Estimation...140 Risk Assessment...141 Grooming the Backlog...142 Building the Team...143 Initial Velocity...143 Release Planning...149 Estimated Time Plan...150 Estimated Project Cost...151 Running the Project...151 During the Sprint(s)...151 Summary...154 Chapter 9: Metrics and ALM Assessment for Agile Project Management...155 Metrics...155 Standard Reports...155 Scrum...156 MSF for Agile...158 MSF for CMMI...161 xiii

xiv Custom Reporting...162 Data Warehouse Model...162 Assessment Questions...167 Summary...171 Part 3: Analysis, Modeling, and Design (Architecture)... 173 Chapter 10: Prototyping Using Storyboarding and Feedback Tracking...175 PowerPoint Storyboarding...175 How to Do It...176 When to Use Storyboarding...179 Feedback Tracking Using Microsoft Feedback Client...179 Summary...187 Chapter 11: Top Down Design Studies (UML)...189 UML Basics...190 UML Support in Visual Studio 2012...190 Activity Diagram...192 Use Cases and Use Case Diagrams...194 Sequence Diagrams...195 Class Diagrams...197 Component Diagrams...200 Integration with TFS...201 Summary...202 Chapter 12: Using Architecture Explorer...203 Architecture Explorer...203 Dependency Graphs...203 Analyze and Explore Code Using Architecture Explorer...206 Summary...208 Chapter 13: Using Layer Diagrams...209 Patterns...209 Using Layer Diagrams...210

Creating a Layer Diagram...210 Mapping Code to Layers...211 Viewing Dependencies using Layer Explorer...212 Sharing Models...213 Layer Validation...213 Manually Validate Layer...214 Validate in local build...215 Validate in TFS Build...217 Creating an Architecture Template...217 Summary...218 Chapter 14: Metrics and ALM Assessment for Architecture, Analysis and Design...219 Metrics...219 Standard Reports...220 Assessment...220 Summary...221 Part 4: Building (Developer Practices)... 223 Chapter 15: Version Control...225 Getting Started with Source Control...225 Using the Team Explorer...226 Workspaces...227 Configuring a Workspace...228 Using the Source Control Explorer...229 Committing Work...230 Working with Committed Code...234 Enforcing Development Practices with Check-in Policies...238 Putting Work Aside...239 Conflict Resolution...241 Comparing Changes...243 Working with Concurrent Changes...244 xv

xvi Working with My Work...248 Summary...250 Chapter 16: Unit Testing...251 What Is Test Driven Development?...251 Principles for Unit Testing...252 Working with Mock Objects...252 Separation of Concerns (Object Factories)...252 Inversion of Control (Dependency Injection)...253 Visual Studio Unit Tests...253 Elements of a Unit Test...253 Test Calling Order...253 Assertions...254 Creating a Unit Test...255 Context for the Test Run...256 Test Explorer...258 Running Tests...258 Working with Code Coverage...260 Adding Code Coverage to a Project...261 Configuring Code Coverage for a Build Definition...265 Data-Driven Automated Tests...265 Working with External Files...267 Managing Test Dependencies...267 Working with Other Test Frameworks...268 Implementing Mock Objects...269 Summary...270 Chapter 17: Code Quality...271 Code Analysis...271 Creating Custom Rule Sets...275 Integrating Code Analysis with TFS Builds...276 Code Analysis Check-in Policy...277

Code Metrics...278 Code Clones...279 Code Review...281 Summary...285 Chapter 18: Performance and Profiling...287 Profiling Overview...287 Profiling In Visual Studio 2012...288 Setting Up Profiling...289 Running a Profiling Session...291 Examining the Results...291 IntelliTrace...294 Working with IntelliTrace...295 Using IntelliTrace in Production...297 PreEmptive Analytics...298 Installing PreEmptive Analytics...298 Configuring Your Team Projects for PreEmptive Analytics...299 Adding Exception Reporting to a.net Application...300 Examining Incidents in Team Foundation Server...302 Summary...303 Chapter 19: Metrics and ALM Assessment for Developer Practices...305 Metrics...305 Code coverage...305 Code metrics...305 Compiler warnings...306 Code analysis warnings...306 Standard Reports...306 Custom Reporting...307 Data Warehouse Model...308 Assessment...308 Summary...311 xvii

Part 5: Validating (Software Testing)... 313 Chapter 20: Overview of Software Testing...315 Agile Testing...315 Defining Tests...315 Acceptance Criteria...317 Planning...318 Test Specification and Test Matrix...318 Evolving Tests...319 Strategy for Automated Testing...320 Platform Support for Testing Practices...320 Summary...321 Chapter 21: Manual Testing...323 About Microsoft Test Manager...323 Connecting Microsoft Test Manager to TFS...324 Planning the Tests...325 What Is a Test Plan?...325 Moving On...329 Designing Test Cases...329 What Is a Test Case?...329 Creating Test Cases...331 Moving On...337 Running Tests...337 Filtering Test Runs...337 Working with the Test Runner...338 Analyze Test Runs...341 Running Exploratory Tests...342 Test Settings...344 Integration with Builds...347 Reporting Bugs and Validating Fixes...349 Creating a Bug...350 xviii

Verifying Bugs...352 Fast-Forward Playback...353 Summary...353 Chapter 22: Automated Testing...355 Working with Automated Tests...355 Supported Test Types...355 Creating a Test Environment...357 Traceability...361 Automating Test Cases Using Coded UI Tests...362 Coded UI Tests...366 UI Test Architecture...366 Supported Platforms...367 Elements of a Coded UI Test...367 Using the Coded UI Test Builder...367 Validation...368 Using the UI Map Editor...370 Data-Driven Automated Tests...371 Using Unit Tests as Automated Tests...371 Running Automated Tests...372 Running Automated Tests from MTM...372 Running Automated Tests from TFS Build...375 Running Automated Tests from the Command Line...375 Performance Testing the Application...377 Creating Load Test Scenarios Using Web Performance Tests...378 Setting Up a Load Test...381 Running a Load Test...383 Summary...384 Chapter 23: Visual Studio Lab Management...385 Architecture...385 Capabilities...385 xix

xx Components...387 Architecture...387 Setting Up Visual Studio Lab Management for Kangreen...388 Environments...392 Designing Environments...393 Working with Standard Environments...393 SCVMM Environments...393 What About Support for VMware?...394 Test Settings for Lab Environments...395 Creating Environments for Kangreen...395 Cloning Environments...399 Using Lab Management for Manual Testing...401 Selecting an Environment to Use...402 Connecting to an Environment for Testing...402 Automated Testing and Lab Management...407 Running Automated Tests from MTM...409 Running Automated Tests as Part of a Build...411 Running Automated Tests from the Command-line...411 Summary...412 Chapter 24: Metrics and ALM Assessment for Software Testing...413 Metrics...413 Standard Reports...413 Bug Status Report...414 Reactivations Report...414 Bug Trend Report...415 Test Case Readiness Report...416 Test Plan Progress Report...416 Custom Reporting...417 Data Warehouse Model...417 Assessment...419 Summary...421

Part 6: Releasing... 423 Chapter 25: Continuous Delivery...425 Continuous Integration...425 Why Should We Implement Continuous Integration?...426 Components in Continuous Integration...427 Continuous Delivery...430 The null Release Cycle...431 Release Management...432 Summary...432 Chapter 26: Build Automation...433 TFS Build Architecture...433 Installing the Build Service...435 Installing the Build Controller...436 Installing the Build Agent...436 Creating an Automated Build...437 Running a Build...445 Using the Build Explorer...447 Using the Web Access to Manage Builds...448 Implementing Continuous Integration...450 Cloning a Build...450 Gated Check-in Builds...452 Running a Private Build...453 Configuring Builds...454 Required Parameters...455 Basic Parameters...456 Advanced Parameters...460 Customizing Builds...461 Built-in Build Activities...461 TFS Build Extensions...462 Creating a Build Process Template for Assembly Versioning...463 xxi

Logging In the Build Process...475 Extending Builds...476 Creating a Solution for Developing Build Extensions...476 Implementing an XAML Activity to Execute a Remote Command...476 Implementing a Code Activity...479 Build on Team Foundation Service...482 Feedback...483 Build Notifications...483 Team Explorer and Web Access Favorites...486 Summary...487 Chapter 27: Deployment...489 Designing a Deployment Solution...489 Deployment to Windows Azure...490 Running Automated Tests as Part of the Build...491 Running Tests on the Build Server...491 Running Tests on a Test Environment...493 Fail a Build on Test Failure...494 Implementing the Build-Deploy-Test Workflow...496 Implementing a BDT Workflow...496 Designing the BDT Workflow...497 Implementing the BDT Process...498 Running the BDT Workflow...504 Customizing the Lab Build Template...505 Summary...514 Chapter 28: Release Management...515 Release Management...515 Agile Release Planning...515 Release Management in Visual Studio 2012...516 Release Notes...517 Release Notes in Visual Studio 2012...517 xxii

Versioning...522 Versioning Requirements...522 Versioning Code...526 Versioning Test Cases...528 Versioning Builds...531 Summary...532 Chapter 29: Metrics and ALM Assessment...533 Metrics...533 Standard Reports...533 Custom Reporting...536 Data Warehouse Model...536 Assessment...540 Summary...541 Part 7: Team Foundation Server... 543 Chapter 30: Architecture and Implementation Planning...545 TFS Architecture...545 Logical Application Tier...546 Logical Data Tier...548 Team Foundation Client Tier...549 Optional Components on Separate Servers...549 Team Foundation Build...549 Team Foundation Server Proxy...550 Planning the Implementation...551 Physical Server Location to Host Our TFS Tiers...551 Ports and Network Protocols...552 System Requirements...553 Service Accounts...554 Simple Implementation...554 Medium Implementation...555 Complex Implementation...556 xxiii

Previous Version of TFS Already Deployed...556 Summary...556 Chapter 31: TFS Installation, Upgrade, and Administration...557 Installation Options...557 Basic...559 Advanced...562 Application-Tier...562 Upgrading from Earlier TFS Versions...563 Team Foundation Server Administration...567 Adding TFS Collections After Installation...569 Attaching a TFS database...569 Enabling Web Features...570 Enabling Email Alerts...572 Summary...573 Chapter 32: TFS Reporting...575 Architecture...575 Data Sources for Reporting...576 Warehouse Adapters...577 Relational Data Warehouse Data Models...577 Analysis Services OLAP Cube...577 Setting Up Access to Report Data...578 Monitoring the TFS Data Warehouse...580 Creating Reports...581 Work Item Queries...582 Excel Reports...583 SQL Server Report Builder...587 SQL Server Report Designer...591 Summary...598 xxiv

Chapter 33: Working in Heterogeneous Environments...599 What is Team Explorer Everywhere?...599 A Little Bit about Licensing...599 Features Available in Team Explorer Everywhere...600 Installation in Eclipse...600 Connect to TFS...603 Using TEE from Eclipse...607 Ant and Maven 2 Build Improvements...612 Summary...612 Chapter 34: TFS In The Cloud...613 Windows Azure Overview...613 Compute...613 Storage...614 Fabric...614 The Azure Platform...614 TFS on Azure...615 Getting Started...615 Documentation and Help...619 Services Offered With TFS in the Cloud...619 Source Control...620 Work-item tracking...620 Process Templates...620 Testing...620 Hosted Build Service...620 What about Reporting?...621 Benefits of TFS in the Cloud...621 Concerns with TFS in the Cloud...621 Summary...622 Index...623 xxv

About the Authors Joachim Rossberg has worked as an information technology consultant since 1998. He is primarily a Scrum Master and Product Owner but has an extensive history as a system developer/ designer. He has demonstrated his technical background with various achievements over the years: MCSD, MCDBA, MCSA, and MCSE. His specialties include project management, Scrum, development processes, and Visual Studio. Joachim is now working for Knowit System Development in Gothenburg, Sweden. Mathias Olausson is the ALM practice lead for Transcendent Group, specializing in software craftsmanship and application lifecycle management. With over 15 years of experience as a software consultant and trainer, he has worked in numerous projects and organizations, which has been very valuable when using Visual Studio as a tool for improving the way we build software. Olausson has been a Microsoft Visual Studio ALM MVP for four years. He is also active as a Visual Studio ALM Ranger, most recently in the role of project lead for the Visual Studio Lab Management Guide project. Olausson is a frequent speaker on Visual Studio and Team Foundation Server at conferences and industry events and blogs at http://msmvps.com/blogs/molausson. xxvii

About the Technical Reviewers Jakob Ehn is a current Microsoft Visual Studio ALM Most Valuable Professional (MVP) and also a Visual Studio ALM Ranger. Jakob has 15 years of experience in the IT industry, and currently works as a solution architect at Inmeta Crayon ASA, specializing in Visual Studio ALM. He actively participates in the MSDN forums, and contributes to different open source projects, such as the Community TFS Build Extensions and the Community TFS Build Manager. Todd Meister has been working in the IT industry for over 15 years. He s been a Technical Editor on over 75 titles, ranging from SQL Server to the.net Framework. Besides technical editing titles, he is the Senior IT Architect at Ball State University in Muncie, Indiana. He lives in central Indiana with his wife, Kimberly, and their five skilled children. xxix

ABOUT THE TECHNICAL REVIEWERS Gregg Boer is a Principal Program Manager at Microsoft with 25 years of experience in software. Over his career, Gregg has worked as a Project Manager, Program Manager, Requirements Lead, Software Engineer, Analyst, QA Lead, and Software Designer. Most of his experience is focused on leading small to medium software development teams (10 15 people). Over the years Gregg believes he has made many mistakes, learned many lessons, and worked with many smart people to develop great software. He loves the software industry, and considers himself a lucky man to have been a part of it for so long. Gregg joined Microsoft in 2005 because he believed in the vision of Team Foundation Server. He truly believes that the right set of collaborative tools could help make the lives of software engineers better. Most recently at Microsoft, Gregg is working on the team developing a set of world-class Agile Tools built on top of the TFS Platform. Anutthara Bharadwaj is Group Program Manager in the Visual Studio ALM group at Microsoft Corporation. Anu has enjoyed building and breaking software in the various roles she has worked in through her nine-year Microsoft stint, shipping multiple versions of Visual Studio ALM. Anu has worked on some cool tools with Exploratory Testing as a central theme and has three patents from her research work in this area. Anu is passionate about software development and testing and has spoken at conferences worldwide. She blogs at http://blogs.msdn.com/anutthara and tweets at http://twitter.com/anutthara. xxx

Acknowledgments I would like to thank all the people that helped us write this book. Unfortunately, I do not have room to mention each one of you, but to some I want to give special thanks. First of all I am thankful that Mathias wanted to co-author this book. Your expertise is invaluable and the book is so much better than I could ever hope for. Mark Powers at Apress. Thanks for pushing us forward the entire journey. It was a pleasure working with you on this. Anutthara Bharadwaj, Gregg Boer, Todd Meister, and Jakob Ehn, our great technical reviewers. Thanks for coming with great input and feedback that helped improve the book. Sam Guckenheimer at Microsoft. Thanks for getting us in contact with great technical reviewers. Per Wallentin, Fredrik Abrahamsson, and Martin Skarp at Knowit Sweden. Thanks for all support. Urban Bäckemo at Knowit System Development. Thanks for feedback and inspiration to the agile parts. All you other great people at Apress. Thanks! Thanks as well to my family that put up with me during writing. And last but not least. Thanks to all you readers out there. If it wasn t for you we would not be doing this. Joachim Rossberg I would like to thank my co-author Joachim for taking me on this journey. It s been an exciting project and a pleasure to work with you. We ve talked about writing a book many times and I m really happy we finally got the first one out! Thanks to everyone at Apress, it s been great working with all of you. A special thanks to our editors Mark Powers and Tom Welsh for keeping us on track. Your knowledge and advice has been invaluable. I would also like to thank our technical reviewers Anutthara Bharadwaj, Gregg Boer, Todd Meister and Jakob Ehn for their feedback and ideas, which helped us shape this book. Jakob, you have been the primary reviewer for the chapters I contributed, and I m very thankful for your thorough readings and great feedback. I owe you one! Thanks to Magnus Timner, Gustav Sjöberg, and the rest of the ALM team at Transcendent Group for your feedback and support. I m fortunate to have such competent colleagues to discuss thingswith! Finally, thanks to my family for your love and understanding throughout this project. Mathias Olausson xxxi

Introduction You can have the best coders in the world working in your teams, but if your project management isn t up to scratch, your project is almost certain to be delayed, to come in over budget, and in some cases, to fail entirely. By taking precise control of your application development process, you can make changes, both large and small, throughout your project s life cycle that will lead to better-quality, finished products that are consistently delivered on time and within budget. Application lifecycle management (ALM) is an area of rapidly growing interest within the development community. Because its techniques allow you to deal with the process of developing applications across many areas of responsibility and across many different disciplines, its effects on your project can be wide-ranging and pronounced. It is a project management tool that has practical implications for the whole team from architects to designers, from developers to testers. Who This Book Is For This book is for anyone interested in improving the development efforts in their organizations. It doesn t matter if you are a manager, developer, tester, Scrum Master, or anything else. You can all benefit from what you will learn here. The Application Lifecycle Management process includes anyone involved in the lifecycle of an application, and Team Foundation Server 2012 and Visual Studio 2012 have something for each and every one of you. Maybe the most important lesson is that you are all working on the same team, and you are all responsible for the outcome of your development process. This realization cannot come from a tool like Team Foundation Server or Visual Studio. It is something that you need to figure out all by yourself. How This Book Is Structured This book is split into seven parts that will show you how you can use Visual Studio and Team Foundation Server (TFS) 2012 to implement an Application Lifecycle Management (ALM) process in your organization. Part I explains what Application Lifecycle Management is and what problems it aims to solve. We also cover different project management processes and frameworks so that you can select the most appropriate for your organization. Part II focuses on agile project management and how Visual Studio and Team Foundation Server 2012 can help by supporting an agile project management approach. Part III discusses the architecture features of Visual Studio and Team Foundation Server 2012. There are several tools available that can help developers and architects in their daily work. Part IV covers the developer tools of Visual Studio and TFS 2012. Here you see how these tools integrate with an overall ALM process that enables you to gain better control of development efforts. Part V shows the testing features of Visual Studio and TFS 2012. It is intended for developers and testers alike. Part VI describes how to create an effective build and release process. Part VII focuses on Team foundation Server and covers its architecture and its extensibility, and not only on the Windows platform. xxxiii

INTRODUCTION Contacting the Authors Should you have any questions or comments or spot a mistake you think we should know about you can contact the authors at Rossberg@gmail.com or mathias@olausson.net. xxxiv