advertisement
Premier Club Log In/Registration
  Include Code  Search Tips
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   SKILLBUILDING  |   TIP BANK  |   SOURCEBANK  |   FORUMS  |   NEWSLETTERS
Browse DevX
Download the sample application for this article.
Partners & Affiliates
advertisement
advertisement
Average Rating: 5/5 | Rate this item | 1 user has rated this item.
 Print Print
 
Add Continuous Integration Capabilities to Team Foundation Server
Continuous Integration is an agile process that rebuilds a project whenever the underlying code changes. Find out how to modify your Team Foundation Server projects' "build types" to implement continuous integration features such as automatic builds, testing, and problem notification. 

advertisement
he era of agile software development is upon us. Chances are, if your development shop doesn't already practice some form of agile development, you're probably competing with a company that does. The rapid-release nature of the agile mindset alongside the idea of releasing features incrementally and frequently inherently increases the risk of introducing unforeseen problems into the software. The charge for any development manager working in these conditions is to find such problems early and provide processes to handle them appropriately.


If anything is clear about the agile philosophy of software development, it is that it requires new and efficient processes for finding bugs early and handling them efficiently; rapid communication of problems and events is critical. These problems have always existed, even in more traditional models of software development, but longer delivery cycles made them less urgent.

It is important to point out that while the term "agile" may have been coined in the software development industry, the problems inherent to managing fast-moving processes are not software-specific. In other industries such as auto manufacturing and national retailing (think Wal-Mart) corporate inventories are dependent on carefully orchestrated supply chains. Industry leaders have long recognized that "lean thinking" can be a considerably more efficient business model. The idea is that by keeping less stock on the shelf, and by acquiring or manufacturing goods just-in-time, companies are able respond more quickly to changes in consumer demand, have fewer wasted goods that go unpurchased, and reduce storage and inventory costs. By letting customer demand drive purchasing, suppliers can provide the right items in the appropriate quantities precisely when and where they are needed.

Without strict governance of the processes and constant communication about faults in the supply chain, the entire system becomes very unstable. With little or no reserve stores of supplies and goods, problems in the chain have to be fixed quickly to prevent shortages. Stopped assembly lines and empty retailer shelves must be avoided at almost all costs. The software construction industry must implement similar processes to manage the rapid changes in the software. Further, like a healthy supply chain, problems in the software must be detected early and often to ensure that such problems do not cause problems for the project by either delaying the release date or reducing software quality.

Two processes that provide big payoffs for developers are unit testing and continuous integration. I covered unit testing for Visual Studio Team System in a previous article. This article shows you how to implement a continuous integration process that will rebuild the software project every time new code is checked into the project. The benefit that continuous integration brings to the development process is early detection of problems with the "quality" of the software. In this case, quality is judged by the success of the build and the success of unit tests run against the new build. While other tools are available that serve similar purposes, we will use the tools provided by Team Foundation Server. This article will not specifically discuss the Team Build tool provided by Team Foundation Server but rather show how to run Team Build automatically.

Author's Note: Perhaps the best philosophical reference available for continuous integration is Martin Fowler's web page aptly titled "Continuous Integration." While not the seminal article on the subject, Fowler's page is heavily referenced in many discussions about continuous integration and provides practical guidance on why it is important and how to make it work.

This article reuses the sample project code provided in my earlier article on unit testing, retrofitting the project code so it rebuilds automatically when changed code gets checked in. First, download the code and create a new team project named DevXLibrary. In the rest of this article I'll show you how to create and automate a team build type for the project.

Page 1 of 4


advertisement
  Next Page: Creating the Team Build Type
Page 1: The Case for Continuous IntegrationPage 3: Automating the Build Process
Page 2: Creating the Team Build TypePage 4: Run the Build
advertisement
Advertising Info  |   Member Services  |   Permissions  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About


JupiterOnlineMedia

internet.comearthweb.comDevx.commediabistro.comGraphics.com

Search:

Jupitermedia Corporation has two divisions: Jupiterimages and JupiterOnlineMedia

Jupitermedia Corporate Info


Legal Notices, Licensing, Reprints, & Permissions, Privacy Policy.

Advertise | Newsletters | Tech Jobs | Shopping | E-mail Offers

Solutions
Whitepapers and eBooks
Microsoft Article: HyperV-The Killer Feature in WinServer ‘08
Avaya Article: How to Feed Data into the Avaya Event Processor
Microsoft Article: Install What You Need with Win Server ‘08
HP eBook: Putting the Green into IT
Whitepaper: HP Integrated Citrix XenServer for HP ProLiant Servers
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 1
Intel Go Parallel Portal: Interview with C++ Guru Herb Sutter, Part 2--The Future of Concurrency
Avaya Article: Setting Up a SIP A/S Development Environment
IBM Article: How Cool Is Your Data Center?
Microsoft Article: Managing Virtual Machines with Microsoft System Center
HP eBook: Storage Networking , Part 1
Microsoft Article: Solving Data Center Complexity with Microsoft System Center Configuration Manager 2007
MORE WHITEPAPERS, EBOOKS, AND ARTICLES
Webcasts
Intel Video: Are Multi-core Processors Here to Stay?
On-Demand Webcast: Five Virtualization Trends to Watch
HP Video: Page Cost Calculator
Intel Video: APIs for Parallel Programming
HP Webcast: Storage Is Changing Fast - Be Ready or Be Left Behind
Microsoft Silverlight Video: Creating Fading Controls with Expression Design and Expression Blend 2
MORE WEBCASTS, PODCASTS, AND VIDEOS
Downloads and eKits
Sun Download: Solaris 8 Migration Assistant
Sybase Download: SQL Anywhere Developer Edition
Red Gate Download: SQL Backup Pro and free DBA Best Practices eBook
Red Gate Download: SQL Compare Pro 6
Iron Speed Designer Application Generator
MORE DOWNLOADS, EKITS, AND FREE TRIALS
Tutorials and Demos
How-to-Article: Preparing for Hyper-Threading Technology and Dual Core Technology
eTouch PDF: Conquering the Tyranny of E-Mail and Word Processors
IBM Article: Collaborating in the High-Performance Workplace
HP Demo: StorageWorks EVA4400
Intel Featured Algorhythm: Intel Threading Building Blocks--The Pipeline Class
Microsoft How-to Article: Get Going with Silverlight and Windows Live
MORE TUTORIALS, DEMOS AND STEP-BY-STEP GUIDES