For Internal Use Only | © evosoft GmbH
TFS 2012
Team Foundation Server 2012
For Internal Use Only | © evosoft GmbH
Agenda
• Overview• Version Control System• Build Automation• Work Item Tracking• Other Improvements• Upgrade
For Internal Use Only | © evosoft GmbH
• Application Lifecycle Management• Application Lifecycle Management (ALM) is a continuous process
of managing the life of an application through governance, development and maintenance.
• Product Lifecycle Management• PLM is the process of managing the entire lifecycle of a product
from its conception, through design and manufacture, to service and disposal.
• Siemens PLM product (http://www.plm.automation.siemens.com)• Dassault Systèmes (www.3ds.com)
Definitions
Overview
For Internal Use Only | © evosoft GmbH
• Waterfall model• Classic V-Model
Application Lifecycle Management
Overview
For Internal Use Only | © evosoft GmbH
• Incremental development
Overview
Application Lifecycle Management (cont.)
For Internal Use Only | © evosoft GmbH
Application LifeCycle Management (cont.)
• SCRUM
• 1.Indentify overall scope (product backlog)• 2.Do some sizing as a team• 3.Break scope down into chunks driven by risk and value• 4.Take chunk and work on it as a team• 5.Discuss status daily• 6.Deliver a chunk of working software
Overview
For Internal Use Only | © evosoft GmbH
Team Foundation Server 2012
Overview
For Internal Use Only | © evosoft GmbH
Team Foundation Server At a Glance
Process Focused
Process
Templates
SharePoint
Customizable
Version Control
Integrated
Check-in
Check-in
Policies
Shelving
Work Item Tracking
Manage work
Bugs, Tasks,
Requirements,
Stories, Risks,
etc.
Very Extensible
Build Automation
Continuous
Integration
Scheduled
Ad Hoc
Reporting
Decision
Support
Track Project
Progress
Te
am
Fo
un
da
tio
n S
erv
er
Overview
For Internal Use Only | © evosoft GmbH
Architecture
Data Tier
DataWarehouse
VersionControlWork Items Team Build
SQL Server
Windows SharePoint Services Web Services
Application Tier
SQL Reporting Services
Client Interface
VisualStudio
Team ExplorerMS Project
MS Excel
TFS SDK
Command Line
BuildEnvironment
BuildProcess
Version ControlProxy
VersionControlProxy
Service
Overview
Client
For Internal Use Only | © evosoft GmbH
Team Foundation Server DeploymentDev Team (Local)
Dev Team (Remote)Business User
TCP/IPHTTP / S
Windows Server 2008 R2 SP1SQL Server 2008 R2 SP1IIS 7.0
Team Foundation Server
Build Server
Version Control Proxy (Remote)Active Directory
Overview
For Internal Use Only | © evosoft GmbH
Agenda
• Overview• Version Control System• Build Automation• Work Item Tracking• Other Improvements• Upgrade
For Internal Use Only | © evosoft GmbH
Version Control
• Provides• A place to store the source code, images, build scripts, and so on, that are
needed to build your software project.• The capability to track the history of changes to those files, and to view the
state of the file at various points in the software lifecycle.• Mechanisms and tooling to make it easy to work in parallel with a team of
software developers on the same project.
• Common Version Control Products• Visual SourceSafe• Apache Subversion• Distributed Version Control Systems (Git, Mercurial etc.)• Rational Clear Case• Team Foundation Server
Version Control System
For Internal Use Only | © evosoft GmbH
What’s new with TFS 2012?
• Suspend work• Server vs. Local workspaces• Conduct code reviews• Compare files and Resolve conflicts• Branching&Merging: Baseless merge
Version Control System
For Internal Use Only | © evosoft GmbH
Suspend work
• Up to TFS 2010 only Shelvesets• Set aside pending changes without check in
• Optionally revert to unmodified files• Restore shelved changes by “unshelving”• Unshelve other user’s changes
• Power of task branching with less overhead
• NEW: MERGE ON UNSHELVE• Unshelve is now a merge as well• Pending changes mustn’t be undone anymore
Scenarios
Developer
Switch Tasks
BackupWork-In-Progress
CheckpointWork-In-Progress
Share Work-In-Progress
Perform Code Review
Version Control System
For Internal Use Only | © evosoft GmbH
Suspend work (cont.)
• Available in Visual Studio Premium or Ultimate• This action saves your work to Team Foundation Serv er
• Changes to code • Tests• Other files• Important cues
Version Control
For Internal Use Only | © evosoft GmbH
Server vs. Local Workspaces
• Server workspaces• Map Server to Local• Per User, Per Workstation• Changes in Workspace create “Pending Changes”• Also Used for Builds
Version Control System
For Internal Use Only | © evosoft GmbH
Server vs. Local Workspaces (cont.)
• Local workspaces• Major goal
• easily work offline • Use add, rename, detele, undo operations
• Default is local workspace in TFS 2012• Modify-Merge-Commit style
version control (the Subversion style)• Local workspace is the „master”• Not yet Distrbuted Version Control System
(but it is definetly the future)• Similiar to TFS proxy
Version Control System
For Internal Use Only | © evosoft GmbH
Server vs. Local Workspaces (cont.)
• Server workspace is better choice• Performance degreases as the number of items in a local
workspace increases.• A workspace that contains a very large number of files requires
definitiv more space on hard disk (since a kind of cache is locally available)
• Old clients, like VS 2010 / 2008 / 2005 etc. are also used• The „Enable get latest on check-out” option is in server workspace
available.
• Pending changes of team members who use local works paces are not visible to other team members in Source Control Explorer.
Version Control System
For Internal Use Only | © evosoft GmbH
Code reviews
• Up to now• No support in Visual Studio• Productive projects have established their own code review
processes and implemented their own code review tools (VS add-on or separated web application) for peer- and walkthrough reviews.
• Necessity for large software products• Audits• FDA regulations
• Now available with Visual Studio 2012 Premium or Ul timate
Version Control System
For Internal Use Only | © evosoft GmbH
Code reviews (cont.)
• Code Review Requests• For changesets retrospectively• For pending changes „on-the-fly”• Supports more reviewers• Process
• Developer creates a request• Reviewer accepts it• Reviewer executes the review• Sends feedbacks
Version Control System
For Internal Use Only | © evosoft GmbH
Code reviews (cont.)
• Code Review Response• Reviewer can’t be the same as the developer requesting a review
• At least these review responses are going to be automatically rejected
• Rich UI support for executing reviews• Comments• Code changes as well
Version Control System
For Internal Use Only | © evosoft GmbH
Code reviews (cont.)
• Request and Response are Work Item Types• Accessable from Work Item Queries
Version Control System
For Internal Use Only | © evosoft GmbH
Code reviews (cont.)
• Declarable as Check-in Policy• Through „Work Item Query Policy”• Shared team query for requests which have been closed at least
by one response with closed status <> Declined
Version Control System
For Internal Use Only | © evosoft GmbH
Compare files and Resolve conflicts
• Up to now• Relative simple editor for compare• Same editor was used to resolve merge conflicts • Productive projects bought 3rdparty file compare tools, like KDiff3
or Beyond Compare• But compare and merge tool should have been the same,
otherwise diverse merge conflicts were reported
Version Control System
For Internal Use Only | © evosoft GmbH
Compare files and Resolve conflicts (cont.)
• Diff editor
Version Control System
For Internal Use Only | © evosoft GmbH
Compare files and Resolve conflicts (cont.)
• Resolve conflicts• Annotate is now available• AutoResolve can be separately defined for file types• Heuristics are much better
• although auto merge feature was already enhanced in TFS 2010• Now comparable with Git behavior („gold standard”)
Version Control System
For Internal Use Only | © evosoft GmbH
Compare files and Resolve conflicts (cont.)
• Merge Tool
Version Control System
For Internal Use Only | © evosoft GmbH
Branching & Merging
• Branch• A branch is a copy of a set of files in a different part of the repository.• This allows two or more teams of people to work on the same project at
the same time, checking in changes as they go, but without interfering with the other teams
• TFS creates only a record pointing to branching files � creating a branch is very fast
• „Path space” branching
• Merge• Between two branches• Join-up your code (Synch)• Cherry Picking changesets (include or omit) � NOT RECOMMENDED!• Ability to show changes that have not been merged
Version Control System
For Internal Use Only | © evosoft GmbH
Branching & Merging (cont.)
• Possible Branch Relationships in TFS• Parent-Child-Sibling• Forward Integration / Reverse Integration• Baseless Merge � WAS NOT RECOMMENDED!
Version Control System
For Internal Use Only | © evosoft GmbH
Branching & Merging (cont.)
• Real-world example• Industrial product• 25-30 projects; ~1000 developers• Source
• >1 GB (only c# files considered)• ~30 Mio LOC
• Branches• 1 main• 30 integration, inc. RTM-branches• >100 development
• Branching model• Kind of feature branching with project-specific scopes• Microsoft recommandation: 4-level hierarchy
Version Control System
For Internal Use Only | © evosoft GmbH
Branching & Merging (cont.)
• Real-world branch structure• Based on severity the bugs are corrected on different branches.• The more critical an issue is the more close to production branch it
shall be corrected
Version Control System
For Internal Use Only | © evosoft GmbH
Branching & Merging (cont.)
• Baseless merge via UI• Not only the whole branch, but cherry-picking merges• Version control item history is preserved• Helpful:
• Moving changesets easily• Isolate risk using branches
Version Control System
For Internal Use Only | © evosoft GmbH
Agenda
• Overview• Version Control System• Build Automation• Work Item Tracking• Other Improvements• Upgrade
For Internal Use Only | © evosoft GmbH
Build Automation Overview
• Build Automation• Build automation is the process of streamlining your build process so that
it is possible to assemble your application into a usable product with a simple, single action
• It includes• Compiling source code into binaries• Packaging binaries into installable modules such as MSI files, XAP
files, JAR files, DMG images, and so on• Running tests• Creating documentation• Deploying results ready for use
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Build Automation Overview
• Build Scripting Languages• Make• Apache Ant („Another Neat Tool”) from Sun Microsystems• Apache Maven – Open Source project management and build
automation tool• Nant (.NET Ant)• MSBuild
• Build Automation Servers for periodically build run s• CruiseControl• CruiseControl .NET• Hudson• Team Foundation Server
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Logical Architecture• The web services used by the controller and agent are using
Windows Communication Foundation (WCF-Services)
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Build Definition (Parameters of Build Process Templ ate)• Process Section in Visual Studio 2012
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Build Triggers• Manual• Continuous Integration
• monitors every check - in affecting the build files and causes a new build to be queued
• Helps to determine „Who broke the build? ”
• Rolling Builds• Similiar to CI• Group together several check–ins and queues a new build
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Build Triggers• Gated Check – in
• was introduced in TFS 2010• Check-in is firstly converted into Shelveset• Shelveset is merged together with the current version on build-
controller• Shelveset is only accepted if build is successful• Then shelveset is converted back to changeset and files are being
checked-in.
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Build Triggers• Gated Check – in (cont.)
• Schedule• Daily• Nightly• Weekly
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Build Triggers• Batched Gated Check – in
• Required if CIs are taken very often place• If build times are too long
• E.g. one of our productive projects build time is 4 hours• Although incremental builds can speed up build time, but not as effective
as required
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Build Triggers• Batched Gated Check – in
• Workflow• A build starts with all the batched build requests (merged up together).
For example, let's say there are three build requests in the batch.• If the build succeeds , all three requests are checked into Team
Foundation Version Control.• If the build fails , all three build requests are returned to the build queue;
but this time they will each be built individually.• Each build request will execute individually , allowing the build process to
isolate which request(s) caused the earlier build failure• Those requests that succeed in building will be checked in, while those
that fail will be rejected.
• AutoMerge improvements were necessary
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Team Foundation Build
• Build definitions in Team Explorer
Team Foundation Build
For Internal Use Only | © evosoft GmbH
Agenda
• Overview• Version Control System• Build Automation• Work Item Tracking• Other Improvements• Upgrade
For Internal Use Only | © evosoft GmbH
What’s new with TFS 2012?
• SCRUM process template out-of-box• Plan, track and manage work visually• Feedbacks• Storyboards• Portfolio management: Microsoft Project and Project Server
Work Item Tracking
For Internal Use Only | © evosoft GmbH
SCRUM process template
• In TFS 2010 as extra template could be downloaded (from MSDN)• Available Work Items in SCRUM Process Template v2.0.
• Bug• Code review types• Feedback types• Impediment• ProductBacklogItem• SharedStep• Task• TestCase
Work Item Tracking
For Internal Use Only | © evosoft GmbH
Plan, Track and manage work visually
• Enormous improvements in TFS Web Access• Motivation: Urban Turtle add-in for TFS 2010 web access• Two extra tabs „Planning board” and „Task board” for SCRUM
Work Item Tracking
For Internal Use Only | © evosoft GmbH
Plan, Track and manage work visually (cont.)
• Product backlog and sprint planning are available i n Web Access
Work Item Tracking
„Add Panel” for Requirements or Bugs
Drag&Drop for changing priority
For Internal Use Only | © evosoft GmbH
Plan, Track and manage work visually (cont.)
• Balance capacity• Days Off
Work Item Tracking
Capacity planning in TFS 2010 was Excel-based
For Internal Use Only | © evosoft GmbH
Plan, Track and manage work visually (cont.)
• Daily stands-up with task boards• Kanban or other whiteboards are not necessary any more
Work Item Tracking
Real-time editable
For Internal Use Only | © evosoft GmbH
Plan, Track and manage work visually (cont.)
• Real-time Burndown calculation
Work Item Tracking
For Internal Use Only | © evosoft GmbH
Feedbacks
• Used to collect feedbacks from appropriate stakehol ders• The same mimic as in Code reviews (request and responses)• Request formular can be filled out in TFS Web Access
Work Item Tracking
For Internal Use Only | © evosoft GmbH
Feedbacks (cont.)
• For Responses• Microsoft Feedback Client (for free) for recording rich and
actionable data• Similiar to Microsoft Test Manager (running tests)
Work Item Tracking
For Internal Use Only | © evosoft GmbH
Storyboards
• Highlights for requirement engineering• For developers to better understand user stories• Find easily the feature specifications
Work Item Tracking
For Internal Use Only | © evosoft GmbH
Portfolio Management
• Microsoft Project Server supported versions• 2007 SP3• 2010 SP1• 2013
Work Item Tracking
For Internal Use Only | © evosoft GmbH
Agenda
• Overview• Version Control System• Build Automation• Work Item Tracking• Other Improvements• Upgrade
For Internal Use Only | © evosoft GmbH
Team Project Administration
• Several settings are propagated to TFS Web Access• Iterations and Areas
Other improvements
Current- , Past- and Future sprints are calculated from these values
For Internal Use Only | © evosoft GmbH
Team Project Administration (cont.)
• Several settings are propagated to TFS Web Access• Security
Other improvements
For Internal Use Only | © evosoft GmbH
Team Project Administration (cont.)
• Several settings are propagated to TFS Web Access• Project Alerts • In prior version a TFS power tools must be installed
Other improvements
For Internal Use Only | © evosoft GmbH
Team Foundation Service
• Predecessor was the codeplex• https://tfs.visualstudio.com/en-us/ is now out of preview• Up to 5 users is free (WIT, Version Control, Builds )
Other improvements
For Internal Use Only | © evosoft GmbH
Agenda
• Overview• Version Control System• Build Automation• Work Item Tracking• Other Improvements• Upgrade
For Internal Use Only | © evosoft GmbH
Upgrade
• Upgrade and access scenarios• SQL Server 2012 is not mandatory
• Any SQL Server 2008 editions can be used with TFS 2012
• Forward and reverse compatibility• From VS 2010 a TFS 2012 instance is accessable• VS 2012 can also connect to TFS 2010 server
Upgrade
For Internal Use Only | © evosoft GmbH
Questions
Team Foundation Server 2012
For Internal Use Only | © evosoft GmbH
Thank you for your attention!
Team Foundation Server 2012
József VadkertiExpertSenior Architect
evosoft Hungary Kft.Kaposvár u. 14-18.H-1117 Budapest
Tel: +36 1 381-6866