Book: Agile Software Engineering with Visual Studio

(Link: Updated 3rd edition for TFS 2012)

ISBN-10: 0321685857Finally the book that Sam and I wrote on agile software engineering with Visual Studio 2010 is now available.

I want to say thank you to our technical reviewers (David Starr, Claude Remillard, Aaron Bjork, David Chappell, and Adam Cogan), as well as to Ken Schwaber for providing the foreword.

Where to get it:

ISBN-10: 0321685857

Available in: English, Japanese

Paperback Amazon | InformIT
DRM-free PDF InformIT
Amazon Kindle Amazon

Promotional Code

Our publisher, Addison-Wesley Professional, has put together a promo code that will allow you to order either the printed copy or the DRM-free PDF copy of the book for 35% off. Here are the details for that promo code: To purchase, go to InformIT.com and during step 3 of the checkout process, enter ASEVS5858 as the coupon code. This discount does not apply to the already discounted eBook/Print bundle. Offer valid until December 31st, 2011.

Sample Chapter

Table of Contents

Authors

  • Sam Guckenheimer is the product owner for the Microsoft Visual Studio product line.
  • Neno Loje is an independent Application Lifecycle Management (ALM) consultant and Visual Studio Team Foundation Server (TFS) specialist.

Book Description

Using agile methods and the tools of Visual Studio 2010, development teams can deliver higher-value software faster, systematically eliminate waste, and increase transparency throughout the entire development lifecycle. Now, Microsoft Visual Studio product owner Sam Guckenheimer and leading Visual Studio implementation consultant Neno Loje show how to make the most of Microsoft’s new Visual Studio 2010 Application Lifecycle Management (ALM) tools in your environment.

This book is the definitive guide to the application of agile development with Scrum and modern software engineering practices using Visual Studio 2010. You’ll learn how to use Visual Studio 2010 to empower and engage multidisciplinary, self-managing teams and provide the transparency they need to maximize productivity. Along the way, Guckenheimer and Loje help you overcome every major impediment that leads to stakeholder dissatisfaction–from mismatched schedules to poor quality, blocked builds to irreproducible bugs, and technology “silos” to geographic “silos.”

Coverage includes:

  • Accelerating the “flow of value” to customers in any software project, no matter how large or complex
  • Empowering high-performance software teams and removing overhead in software delivery
  • Automating “burndowns” and using dashboards to gain a real-time, multidimensional view of quality and progress
  • Using Visual Studio 2010 to reduce or eliminate “no repro” bugs
  • Automating deployment and virtualizing test labs to make continuous builds deployable
  • Using Test Impact Analysis to quickly choose the right tests based on recent code changes
  • Working effectively with sources, branches, and backlogs across distributed teams
  • Sharing code, build automation, test, project and other data across .NET and Java teams
  • Uncovering hidden architectural patterns in legacy software, so you can refactor changes more confidently
  • Scaling Scrum to large, distributed organizations

Whatever your discipline, this book will help you use Visual Studio 2010 to focus on what really matters: building software that delivers exceptional value sooner and keeps customers happy far into the future.

Previous Editions

Restrict TFS to only allow connections from clients with VS SP1

You can control which clients get rejected when trying to connect to your TFS.

Scenario

You are running TFS 2010 SP1 and want to make sure that all clients have (VS) SP1 (at minimum) applied.

Luckily, you can configure which clients get rejected when trying to connect to your TFS. You can even provide the message that will be displayed to users whose clients get rejected:

image BlockNonSP1Clients_Sorry1

Solution

It’s easy, you have to add two values to the TFS registry (and restart TFS):

  • Key: /Configuration/Application/DisabledUserAgents/TFS10SP1
    Value: "Team Foundation (*.exe, 10.0.<40219.1)"
  • Key: /Configuration/Application/DisabledUserAgents/TFS10SP1/Message
    Value: "Sorry, you have to install Visual Studio 2010 Service Pack 1."

How to do that

Use the tfsreg.exe tool and run this two commands:

tfsreg.exe /server:http://servername:8080/tfs /path:/Configuration/Application/DisabledUserAgents/TFS10SP1 /value:"Team Foundation (*.exe, 10.0.<40219.1)"
tfsreg.exe /server:http://servername:8080/tfs /path:/Configuration/Application/DisabledUserAgents/TFS10SP1/Message /value:"Sorry, you have to install Visual Studio 2010 Service Pack 1."

Note: Replace the blue URI with your TFS’ server URI.

Or download the ready-to-use BlockNonSP1Clients.bat (.ZIP)

Caution: Always remember do not directly edit the TFS registry entries by editing TFS’ SQL databases manually. Always use the registry service (client or server) or the tfsreg.exe tool mentioned above (which does that) to modify TFS registry entries.

Future Compatibility Note: This mechanism might change or be implemented differently in future versions of TFS, there’s no compatibility guarantee.

Update (2 Oct 2011): In TFS 2010 older clients (VS 2005 and VS 2008) that do not have Service Pack 1 and the appropriate Forward Compatibility Upgrade installed, will be rejected by default using this technique.

(Thanks to Philip Kelley, Taylor Lafrinere, and Buck Hodges from Microsoft for this tip).

Installing TFS Build 2010 on a non-domain-joined machine

Scenario

You want to install and run TFS Build Controller and Agent on a separate network/domain than your Team Foundation Server 2010.

Disclaimer:
According to Ruiz from the MSDN Subscriber Support in Forum this is not officially supported.

How to solve:

  1. Install Team Foundation Build 2010 from TFS media.
     
  2. Apply latest updates (e.g. Service Pack 1, Cumulative Update 1).
     
  3. Create user account (both locally on the Build server as well as your TFS AT) as the service account for Team Build (e.g. TFSBUILD)
     
  4. On TFS, add service account TFSBUILD to Project Collection Build Service Accounts security group (on the collection-level)
     
    TFSBuildWithoutDomain0
     
  5. Configure the Build Server: when asked leave the "team project collection" field blank.
       
    TFSBuildWithoutDomain1
     
  6. Choose any system account for now.
     
    TFSBuildWithoutDomain2
     
  7. After configuration has completed, open the Build Service properties and set the service account to your local account (e.g. ".\TFSBUILD")
     
  8. Done. You can now start the Build Service, define a Build Controller and Build Agents.
     

More Information:

(Thanks to Wes MacDonald and Etienne Tremblay to guide me through this.)

Additional note from Wes:
The other thing I should mention is we had to have the build agent hostname defined in the HOSTS file on the TFS Application Tier and the TFS Server hostname defined in the Build Agent HOSTS file. This assumes the DNS is not configured with the entries.

Visual Studio 2010 SP1 Installation Error: Generic Trust Failure

General Trust Failure. How we love those descriptive error messages.Problem description:
Visual Studio (VS) Service Pack (SP) 1 fails with an
"Generic Trust Failure".

Cause:
Probably the .ISO file is corrupt.

How to fix:
You can try to re-download the .ISO file or use the VS SP1 Web Installer (which downloads only the required patches itself) and re-apply the patch, when asked to chose between re-apply and uninstall.

More Information:
The .ISO file has the following checksums (according to Heath Stewart’s blog post):

  • SHA1: 61C2088850185EDE8E18001D1EF3E6D12DAA5692
  • CRC: C77C2A14

Updated (Sept 3rd, 2011) to include link to checksum of .ISO file. (Thanks to Ahmed Ilyas)