Team Foundation Server the answer to all project management problems? Richard Fennell Director
Agenda The Need for TFS Core Components of TFS Add-ins and the API The future – Orcas and beyond
Software Projects Need... Source Code Control Work Item tracking Project Management Document repositories Communications Remote Access
ExcelProject Operations, QA and Help Desk Non-Microsoft Developer Team System Web Access Visual Studio Team System Application Life Cycle Management (ALM) Solution
Team System Architecture Dev Team (Local) Dev Team (Remote) Business User Build Server Version Control Proxy (Remote) Active Directory TCP/IP HTTP / S Win 2003 Server SQL Server 2005 IIS 6.0 Team Foundation Server
System Requirements
Versions Team Foundation Server 1.0 – early 2006 Team Foundation Server 1.0 SP1 – late 2006 Team Foundation Server Orcas Beta 1 – Q Team Foundation Server 2008 – late 2007 or early 2008
Installation Tips Read and follow the MSDN walk-thru Do not deviate from the walk-thru Not even for a moment And keep trying over and over Using a VPC for the front end server can help as you can commit/roll back as you go.
Installation Tips Make sure there are no domain/group policies you have forgotten If the reporting service configuration stage fails make sure you drop (and delete) the DB files Use the log files if you have problems Use AD groups for security
TFS & VSS Differences Architecture – TFS: client/server, VSS: client-side Security – Windows/AD vs. VSS based security Reliability – VSS database integrity can be compromised – TFS uses SQL Server Scalability – TFS can support up to 2000 user per instance and data size is limited only by physical media & SQL Server limits ( in the terabytes)
TFS & VSS Differences TFS does NOT perform a “get latest” on checkout – “get latest” and “check out” are 2 separate ops – “get latest” is explicit in TFS, controlled by the user – Provides a consistent snapshot of code TFS does NOT add a file until checked in
Migration from VSS to TFS VSSConverter migration tool Imports VSS repository into TFS Command line interface Can migrate most VSS repositories easily – VSS Shared files are copied – VSS Pinned items are labeled as “PINNED” in TFS
Workspaces Workspaces provide Isolated areas A single PC can have many workspaces Workspaces are a powerful tool with branching
Branching Allows parallel development But for anything that you don't want to service or patch, labelling is sufficient. For a release that you do want to service or patch, branching is the way to go. Using merging, you can move changes between branches.
Branching
demo demo Visual Studio & TFS
TFS Tools & Add-ins
Visual Studio Power Toys MSSCCI provider for other IDEs Team Foundation Power Toys – Tfpt.exe command line tools – Process Template Editor – Check In Policy Pack – Test Tools Build Task
Cool Tool – Attrice Team Foundation Sidekicks
demo demo Attrice Team Foundation Sidekicks
Cool Tool - TeamPlain Web Access
demo demo Teamplain – Web Access
Cool Tool - eScrum
demo demo eScrum
Integration with Project Server Project Server 2007 VSTS Connector available on CodePlex
Customisation Process Template Editor – Power Toys TFS Event Handlers – Attach to TFS’s eventing Service and register for an event such as CheckInEvent – Write a web service to that ‘does something’ when event trigger – See my DDD4 presentation on Continuous Integration for a sample.NET API
Using the TFS API Team Explorer installs all the DLLs are in the GAC, but doesn’t registered them for Visual Studio Can write own desktop clients to do anything you can in Team Explorer or the command line
demo demo API
Other Cool Tools SVNBridge – Allows SubVersion client to access TFS Conchango’s Scrum Project Guidance Pack Personify Design’s TeamLook Outlook Addin Microsoft Israel’s Team System Outlook Addin TeamPrise Client Suite – TFS access from Macs, Linux and Eclipse IDE NB all clients still need a Team Explorer CAL
So what is missing in TFS 1.0? TFS Work Item Hierarchy WSS 3.0 Support Disconnected working is limited I am sure other people have other issues.....
The Future for TFS Release Types – Servicing : Service Packs etc. – Out of Band releases: Power Toys – Major Releases: Visual Studio 2008
Visual Studio 2008 Administration Share Point 2007 support Enable use of a separate Share Point farm. Support for SQL Named Instances “Longhorn” server support Sync Large Groups (~30,000 or more) Installation on a domain controller Non-default ports & web sites Simplify installation Upgrade from TFS 2005
Visual Studio 2008 Version Control Add support for checkin policy overrides to the warehouse (an oversight from V1). Annotate & Folder Diff Destroy Get Latest On Checkout Workspace improvements Performance & Scale improvements Migration toolkit between TFS and other systems
Visual Studio 2008 Build Support multi-threaded builds with the new MSBuild. Continuous Integration Improved ability to specify what source, versions of source, and other build properties. Improved ability to manage multiple build machines. Stop and delete builds from within VS. Simplified ability to specify what tests get run as part of a build. The ability to store build definitions anywhere in the version control hierarchy
Cool Tool - Team Build Ticker
demo demo Team Build
So is TFS the answer to all project management problems?
Good VSTS Resources Patterns & Practices Team Development with TFS Guide – “How Do I?” Video for Visual Studio Team System – Microsoft Visual Studio Team System Virtual Labs – Team System Widgets –
Good VSTS Blogs Brian Harry (Product Unit Manager for Team Foundation Server ) – Rob Caron (Lead Product Manager for Developer Content Strategy at Microsoft) – Roy Osherove (Blog on TFS, Agile and Testing) –
For Further Information My random thoughts ‘But it works on my PC!’ You can also get in touch via: – WebSite –