Bibliography
The hands-on labs that accompany this guidance are available on the Microsoft Download Center at https://www.microsoft.com/en-us/download/details.aspx?id=40295.
The book is also available on the Microsoft Download Center at https://www.microsoft.com/en-us/download/details.aspx?id=40337.
Chapter 1
The book that brought continuous delivery to everyone's attention is Continuous Delivery by Jez Humble and David Farley. For more information, see Jez Humble's blog at http://continuousdelivery.com/.
Martin Fowler is another well-known advocate of continuous delivery. His blog is at http://martinfowler.com/.
Alistair Cockburn's blog is at http://alistair.cockburn.us/.
For guidance that helps you assess where your organization stands in terms of application lifecycle management (ALM) best practices, see the ALM Rangers ALM Assessment Guide at http://vsaralmassessment.codeplex.com/.
The ALM Rangers DevOps Deployment Workbench Express Edition can help you to build once and deploy to multiple environments. For more information, see the ALM Rangers DevOps Tooling and Guidance website at https://vsardevops.codeplex.com/.
For a complete list of guidance that's available from the ALM Rangers, see the Visual Studio ALM Ranger Solutions Catalogue at https://aka.ms/vsarsolutions.
If you're interested in the Edward Deming and the Deming cycle, the article in Wikipedia at http://en.wikipedia.org/wiki/PDCA gives an introduction to the subject.
Jon Jenkins's talk "Velocity Culture" is at http://www.youtube.com/watch?v=dxk8b9rSKOo).
For more information about the Windows Automated Installation Kit go to https://www.microsoft.com/en-us/download/details.aspx?id=5753.
For more information about NuGet, go to https://www.nuget.org/.
For more information about SharePoint, go to https://office.microsoft.com/en-us/microsoft-sharepoint-collaboration-software-FX103479517.aspx.
The Community TFS Build Extensions are at http://tfsbuildextensions.codeplex.com/.
For more information about Web Deploy, go to the IIS website at https://www.iis.net/downloads/microsoft/web-deploy.
For more information about WiX, go to the website at http://wixtoolset.org/.
To learn about Lab Management standard environments, Creating a Standard Environment at https://aka.ms/CreatingStandardEnvironments.
Information about the Brian Keller VM is https://aka.ms/VS11ALMVM.
For more information about InRelease, see the website at http://www.incyclesoftware.com/inrelease/.
Chapter 2
The ALM Rangers have put together a collection of guidance and labs to help you use TFS for application lifecycle management. For more information, go to Visual Studio Team Foundation Server Requirements Engineering Guidance at http://vsartfsreguide.codeplex.com/.
The ALM Rangers have put together a collection of guidance and labs to help you understand how to customize and deploy Team Foundation builds. For more information, go to Team Foundation Build Customization Guides at http://vsarbuildguide.codeplex.com/.
To understand how to use the TFS Kanban board to understand the status of your project, see Work on the Kanban board at https://tfs.visualstudio.com/learn/work-on-your-kanban-board.
To learn how to customize the TFS Kanban board, see Kanban customizable columns, "under the hood" at https://blogs.msdn.com/b/visualstudioalm/archive/2013/03/04/kanban-customizable-columns-under-the-hood.aspx.
Chapter 3
For more information about BVTs (smoke testing), see http://en.wikipedia.org/wiki/Smoke_testing#Software_development.
For more information about semantic versioning, see http://semver.org/
For more information about using NuGet and the package restore feature, see https://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
The Community TFS Build Extensions are on CodePlex at http://tfsbuildextensions.codeplex.com/
Chapter 4
For guidance about automatic deployments, see the ALM Rangers DevOps Tooling and Guidance website at https://vsardevops.codeplex.com/.
To learn about InRelease, which allows you to automate your deployments from TFS, see their website at http://www.incyclesoftware.com/inrelease/.
For guidance about creating builds, see the ALM Rangers Team Foundation Build Customization Guide at http://vsarbuildguide.codeplex.com/.
For guidance about using Microsoft Test Manager, see the ALM Rangers Test Release Management Guidance at http://vsartestreleaseguide.codeplex.com/.
For guidance about Visual Studio test features, such as CodedUI, see the ALM Rangers Visual Studio Test Tooling Guides at http://vsartesttoolingguide.codeplex.com/.
Another good testing reference is Testing for Continuous Delivery with Visual Studio 2012, which is available at https://msdn.microsoft.com/en-us/library/jj159345.aspx.
For information about Active Directory Group Policy go to https://support.microsoft.com/kb/816102.
For information about System Center Service Manager and System Center Orchestrator, go to https://www.microsoft.com/en-us/server-cloud/system-center/default.aspx.
For information about Windows Installer, go to https://msdn.microsoft.com/library/windows/desktop/cc185688(v=vs.85).aspx.
For information about the WiX toolset, go to http://wixtoolset.org/.
For information about PsExec, go to https://technet.microsoft.com/sysinternals/bb897553.aspx.
For information about deployment orchestration models, see the "Deployment Scripting" section in Chapter 6 of Jez Humble and David Farley’s book, Continuous Delivery. To learn more about the preparation and management of useful test data suites, read Chapter 12. Learn more about the book at http://continuousdelivery.com/.
For information about SQL Server Data Tools, go to https://msdn.microsoft.com/data/tools.aspx.
For information about DBDeploy.NET, go to http://www.build-doctor.com/2010/01/17/dbdeploy-net/.
For information about Entity Framework Migrations, go to https://msdn.microsoft.com/data/jj591621.aspx.
Chapter 5
The book Principles of Product Development Flow by Donald G. Reinertsen has****a great deal of information about how to monitor and manage queues. Although it covers all types of product development, the principles it discusses also apply to software development. For more information, see the Reinertsen & Associates website at http://www.reinertsenassociates.com/.
There is another approach to calculating MTBF that uses a slightly different method. It measures the time between the moment when a defect is fixed to the moment when a new defect appears. By defining the metric this way, you learn the average time the application is available. For more information, see the Wikipedia article about mean time between failures at http://en.wikipedia.org/wiki/Mean_time_between_failures.
The Design for Operations website at http://dfo.codeplex.com/ provides both a tool and guidance for creating highly manageable applications.
For information about standard TFS reports, see Create, Customize, and Manage Reports for Visual Studio ALM at https://msdn.microsoft.com/library/bb649552.aspx.
For information about SCOM, see System Center Operations – 2012 Operations Manager at https://technet.microsoft.com/systemcenter/hh285243.
For information about how to use alerts with TFS, see How to Synchronize Alerts with TFS in System Center 2012 SP1 at https://technet.microsoft.com/library/jj614615.aspx.
For information about managing work items, see Process Guides and Process Templates for Team Foundation Server at https://msdn.microsoft.com/library/hh533801.aspx.
For information about using TFS Kanban boards to manage your backlog, see Manage your backlog with the Kanban board at https://msdn.microsoft.com/library/vstudio/jj838789.aspx.
For information, about using standard bug trend reports, see Bug Trends Report at https://msdn.microsoft.com/library/dd380674.aspx.
Chapter 6
For information on how to use Git with TFS, see Brian Harry's blog at https://blogs.msdn.com/b/bharry/archive/2013/06/19/enterprise-grade-git.aspx.
You can read more about branching in the context of continuous delivery in Jez Humble's article DVCS, continuous integration, and feature branches at http://continuousdelivery.com/2011/07/on-dvcs-continuous-integration-and-feature-branches/.
A good place to start learning about feature toggles is Martin Fowler's blog at http://martinfowler.com/bliki/FeatureToggle.html.
There is an extensive list of nonfunctional requirements in the Wikipedia article Nonfunctional requirement at https://en.wikipedia.org/wiki/Non-functional_requirement.
Virtualization, typically in the cloud, is the most convenient way to implement this automation but you can use physical machines if you have the right tools, such as the Windows Automated Installation Kit (AIK) available at https://www.microsoft.com/en-us/download/details.aspx?id=5753.
More information about A/B testing is available A/B testing on Wikipedia at http://en.wikipedia.org/wiki/A/B_testing.
One of the best-known toolsets for creating this type of controlled chaos is Netflix's Simian Army at http://techblog.netflix.com/2011/07/netflix-simian-army.html, which Netflix uses to ensure the resiliency of its own environments.
For an overview of how to use MTM, see What's New in Microsoft Test Manager 2012 at https://msdn.microsoft.com/magazine/jj618301.aspx.
Generally, you can use the TFS build drops folder as the default binaries repository but you may want to make an exception for some dependencies, such as libraries. For them, consider using the official NuGet feed in Visual Studio at www.nuget.org.
To install your own NuGet server and place all these dependencies in it, and then add the feed to Visual Studio available at https://www.nuget.org/packages/NuGet.Server/.
Use a release management tool whose purpose is to let you build once but deploy to multiple environments. One possibility is the DevOps Deployment Workbench Express Edition available at https://vsardevops.codeplex.com/.
For information about InRelease, which will be included with Visual Studio 2013 and is currently available as a preview see http://www.incyclesoftware.com/inrelease/inrelease-2013-preview/.
For more information on using Team Foundation to retrieve the status of ongoing and finished builds, and also trigger new ones , see Extending Team Foundation at https://msdn.microsoft.com/library/bb130146(v=vs.110).aspx.
For more information about the TFS OData API, see https://tfsodata.visualstudio.com/.
TFS Web Access can be extended by writing a plugin in JavaScript, although the API is still not well documented. Here's a blog post with a compilation of links to sites that have example plugins http://bzbetty.blogspot.com.es/2012/09/tfs-2012-web-access-plugins.html.
For more information about the tools available in Visual Studio Ultimate that help you to write web performance and load tests, see Testing Performance and Stress Using Visual Studio Web Performance and Load Tests at https://msdn.microsoft.com/library/vstudio/dd293540.aspx.
For more information on using a test rig that consists of at least one test controller to orchestrate the process, see Using Test Controllers and Test Agents with Load Tests at https://msdn.microsoft.com/library/vstudio/ee390841.aspx.
For more information on using SCVMM to ensure that the environments are automatically provisioned when they are needed, see Configuring Lab Management for SCVMM Environments at https://msdn.microsoft.com/library/vstudio/dd380687.aspx.
For more information about SCOM, see Operations Manager at https://technet.microsoft.com/library/hh205987.aspx.
For more information about how to integrate SCOM with TFS and other tools, see Integrating Operations with Development Process at https://technet.microsoft.com/library/jj614609.aspx.
For more information about using PreEmptive Analytics for Team Foundation Server to analyze silent failures and automatically create work items in TFS, see http://www.preemptive.com/products/patfs/overview.
For more information on using IntelliTrace in the production environment, see Collect IntelliTrace Data Outside Visual Studio with the Standalone Collector at https://msdn.microsoft.com/library/vstudio/hh398365.aspx.
For more information about symbol servers, see Publish Symbol Data at https://msdn.microsoft.com/library/hh190722.aspx.
For more information about profilers, see Analyzing Application Performance by Using Profiling Tools at https://msdn.microsoft.com/library/z9z62c29.aspx.
For information about using the nuget.exe command line tool, and the pack and push commands see https://docs.nuget.org/docs/reference/command-line-reference.
Appendix 1
ALM Rangers DevOps Tooling and Guidance at https://vsardevops.codeplex.com/.
Team Foundation Build Customization Guide at http://vsarbuildguide.codeplex.com/.
Visual Studio ALM Rangers Solutions Catalogue at https://aka.ms/vsarsolutions.
Visual Studio ALM Rangers Visual Studio Lab Management Guide at http://vsarlabman.codeplex.com/.
Installing Team Foundation Server and Visual Studio ALM at https://msdn.microsoft.com/library/dd631902.aspx.