Team Foundation Server Overview

Team Foundation Server
Overview
Randy Pagels
Developer Technology Specialist
Developer Platform & Evangelism | Heartland District
Microsoft Corporation | Detroit, MI
Streamline the Process
OVERVIEW OF PRODUCT
What is Team Foundation Server?
Development Roles and Responsibilities
Requirements Management
• QoS Management
• Requirements Analysis
Portfolio Management
• Project Organization
• Stakeholder
Communication
Customer Support
• Infrastructure Arch
• Infrastructure Deploy
Test Cast Management
•
Manual
•
Load
•
Automated
BA
Architecture
Design
• Analysis &
Design
• Design for
Deployment
Project Planning
• Task Assignment
• Bug Tracking
CIO
PM
Dev
Arch
UI Layout
• Design
• Prototyping
• Flow Modeling
Programming
• Code Analysis
• Unit Testing
• Version
Control
Test
Oper
Design
DBA
Database Design
• Source Control
• Test Data Generation
• Schema Management
Process Focused
Version Control
Process
Templates
Work Item Tracking
Integrated
SharePoint
Check-in
Build Automation
Manage work
Customizable Check-in
Reporting
Bugs, Tasks,
Policies
Shelving
Continuous
Requirements, Integration
Stories, Risks,
Scheduled
etc.
Very Extensible Ad Hoc
Shelveset
Decision
Support
Track Project
Progress
Dashboards
Team Foundation Server
Team Foundation Server Componets
Team Foundation Server Focus Areas
Plan and
Manage Your
Project
Work Item
Tracking
Process
Guidance &
Automation
Understand
Parallel
Development
Version
Control
Branch
Visualization
Build
Management
No More “No
Repro” Bugs
Test Case
Management
IntelliTrace
Microsoft
Test Manager
(MTM)
Report on
Your
Portfolio
Dashboards
Reports
Lab
Management
TFS Version Control Fundamentals
Changesets
Check-in
policies
Workspaces
Shelving
Identifying
Code Changes
Branching &
Merging
Pillar #1 - Manage Your Code
VERSION CONTROL
Changesets
Logical container of data related to check-in
•
•
•
•
•
•
•
File and branch information
Links to work items
Check-in notes
Comments
Policy compliance
Metadata (date, time, user)
Unit of atomic checkin
Uniquely identified
• Numeric identifier
• Incremental
Represents a point in time of source repository
Check-in Policies
• Soft requirements for
check-in
• Extensible
• Can be overridden
• …but tracked
Work Item Association
Testing
Clean Build
Comments
Code Analysis
Shelving
− Set aside pending changes
without checkin
− Optionally revert to unmodified
files
− Restore shelved changes by
“unshelving”
− Unshelve other user’s changes
− Power of task branching with
less overhead
Task switching
Peer reviews
Backup WIP
Sharing WIP
Identifying Code Changes
Compare/Diff
Files
(instance or
different)
Trees
(folder
structures)
Custom Diff
Tools
Per
workstation
Per file type
Annotate
Intra-file
historical
comparison
Branches
Integration with other TFS Components
• Create various build
scenarios
• Build reports show
associated changeset
• Gated check-in
• Automatically reports
velocity, code churn
• Easily associate code
to work items
• Provides traceability
Build
Work Item
Tracking
Portal &
Reporting
Process
Guidance &
Automation
• Influences version
control structure
Pillar
#2 - Work
Manage Your Work
Plan Your
WORK ITEM TRACKING
Work Item Tracking
Track any “Item of Record”
• Bug, task, user story, requirement, scenario, change request, issue, etc.
Customizable
• Dialog, fields, workflow, states, transitions, etc.
Accessible
• Visual Studio, MS Excel, MS Project, Team Web Access
Related
• Link to work items, version control, test results, etc.
Pillar #3 – Automating your builds
Health of the Project and Heartbeat of the Team
BUILD MANAGEMENT & AUTOMATION
Build Automation
Extension of MS
Build
Several
scenarios
supported
Provides build
reporting back
to TFS
Integrated
testing
• Integrated Windows Workflow
•
•
•
•
Continuous Integration
Scheduled
Gated / Shelveset
Ad-hoc
• Pass / Fail
• Trend data
• Any automated test
Gated Check-in
•
•
•
•
•
Intercepts check-ins
Queues a server build
to validate changes
Only changes that build
successfully get
committed
Definition of a “success”
is customizable
Users can also queue a
build of a shelveset for
“opt-in” validation
Edit Code
Check in
Build and
Test
Fix
available?
Yes
Find root
cause
Did build
succeed?
No
Yes
No
Team
blocked
Edit code
Gated
check-in
Automate
d build
Ready
for test
Commit
Changes
Did build
succeed?
Yes
No
Streamline the Process
ARCHITECTURE
TFS Architecture
Team Foundation Server (Farm)
Data Tiers
Load Balancer
TFS Application
Configuration DB
Application Tiers
Collection 1
Team Project X
TFS Application
Collection 2
Team Project Y
TFS Application
Application Tiers
SharePoint
Server
Report
Server
Build
Servers
Team Project Collections
•
Team Project Collections
•
•
•
•
Server Consolidation
•
•
•
•
Tightly coupled group of related software assets
Acts as a container providing the needed isolation
The movable and administrable unit
Upgrade in Place
Detach the Team Project Collection
Attach the Team Project Collection
Manage Complexity / Achieve Agility
•
•
•
•
•
Scale out Application Tier resources
Scale out Data Tier Resources
Team Project Encapsulation
Project Mobility
Lower cost of Administration
High Availability Deployment
Primary Site
Build
Servers
Secondary Site
Application Tier
Application Tier
Warm
Standby
Data Tier
SQL Cluster
Mirroring
SAN
Warm
Standby
Data Tier
SQL Cluster
SAN
Build
Servers
Streamline the Process
DEPLOYMENT OPTIONS
Team Foundation Service
Terms of the TFS Preview
•
We provide the service,
you provide the feedback
•
You can “go live”
•
Support via the MSDN forums
•
Data is upgraded automatically
•
Best effort uptime – we are learning
Server vs. Service
Work Items, Source Control, & Build
Agile Product/Project Management
Test Case Management
Heterogeneous Development
Near-zero setup and administration
Collaborate with anyone, from anywhere
Virtual Test Lab Management
SharePoint Integration
Data Warehouse & Reporting
Server
Service
Streamline the Process
SECURITY CAPABILITIES
Security and Permissions
•
•
•
Active Directory support
Fine-grained permission sets
Set permissions on
• Team Project Collections
• Team Projects
• Build Definitions
• Version Control
• Areas and Iterations
• Folder level
• File level
• Branch Level
• …etc.
Secure Extranet Deployment
TFS
Data Tier
Internet
Internal Network
Run As Internal
Domain User
DMZ
TFS
App Tier
Internal Clients
ISAPI Filter for
Basic Auth
External
Client
TFS requires
specific
trust
relationships between the
computers that host its logical
tiers.
External
User
Accounts
Extranet Domain
Trust
Internal
User
Accounts
Internal Domain
Streamline the Process
SUPPORTED PLATFORMS
TFS Architecture
Business User
Tester
Dev Team (Local)
Dev Team (Remote)
Build Servers
Win 2008/2012 Server
IIS 7.0
DT
AT
Version Control
Proxy (Remote)
Active Directory
SQL Server 2008/2012
Team Foundation Server
HTTP / S
TCP/IP
Streamline the Process
INTEGRATION CAPABILITIES
For Non-.NET Development
Visual Studio Team Everywhere enables enterprise companies to standardize on
Application Lifecycle Management that covers the needs of both .NET and Java
development teams.
Eclipse plug-in for TFS ~ Rich client (Java-based) ~ Command-Line
Integration with Project Server
• Provides bi-directional data synchronization
between TFS and PS by linking tasks and work
items
• Supported, Localized and Documented
Integration with HP Quality Center
Bug History & Updates
Quality Center
QC<->TFS
Sync Tool
TFS
Bug History & Updates
Testers
• Developers work in TFS
• Testers work in Quality Center
• They collaborate via bug reports (defects)
Developers
Visual SourceSafe Upgrade Wizard
•
•
•
•
New with Team Foundation Server 2012
Tool built into the TFS 2012 Administration Console
Wizard-based tool to walk through the upgrade process
One-time, one-way upgrade of VSS codebase to TFS
•
Upgrade your code projects, files, version history, labels, and user information from Visual
SourceSafe to Team Foundation Server (TFS)
Resources
•
VSS Upgrade Wizard
•
•
Understand How VSS Upgrade Tools Convert Your Data
•
•
http://msdn.microsoft.com/en-us/library/vstudio/jj612883.aspx
http://msdn.microsoft.com/en-us/library/vstudio/ms253166.aspx
Prepare to Upgrade from Visual SourceSafe
•
http://msdn.microsoft.com/en-us/library/vstudio/ms253127.aspx
Conversion
Streamline the Process
INTEGRATION WITH SCOM
(SYSTEM CENTER OPERATIONS MANAGER)
Demo
Project Visibility
Streamline the Process
REPORTING CAPABILITIES
Reporting Structure
Configuration DB
Collection 1
Team Project X
Team Project Y
Collection 2
Team Project X
Team Project Y
Collection 3
Team Project X
Team Project Y
Data Warehouse
Relational Warehouse
Analysis Services Cube
Visualizing the Cube
Task
Test Case
Bug
Active
Resolved
Closed
Ready
Work Items
User Story
State
Streamline the Process
EXCEL REPORTS
Simplified Reporting
• Reports using SQL
Server Reporting
Services
• Detailed and thorough
• Workbook queries
with Microsoft
Office Excel
• Fast and flexible
Excel Reporting
• Included Excel Reports
– Project Management
– Bug Backlog Management
– Build Management
– Test Management
• Excel Report Generation
Excel Reports - Project Management
• Burndown
• Task Progress
• User Story
Progress
• Issue Trends
Excel Reports – Bug Backlog Management
Bug Progress
Bug Trends
Bugs by Priority
Bugs by
Assignment
• Bug Reactivations
•
•
•
•
Excel Reports – Build Management
• Code Coverage
• Code Churn
• Build Status
Excel Reports – Test Management
•
•
•
•
•
Test Plan Progress
Test Case Readiness
User Story Test Status
Test Activity
Failure Analysis
Excel Report Generation
• Create directly from Work Item query
• Generates
– Table of contents
– PivotTable & PivotChart reports
• Report options
– Current reports
– Trend reports
Excel Report Generation
• Current
– Work Item Count
• Work item Type
• Assigned To
• State
• Trend
– Work Item Count
• Work Item Type
• Assigned To
• State
Streamline the Process
SQL SERVER REPORTING SERVICES
TFS Reporting Experience
SQL REPORTING SERVICES REPORTS
Reports Available Based on Process Template
Agile & CMMI
• Bugs
• Bug Status
• Bug Trends
• Reactivations
• Builds
• Build Quality Indicators
• Build Success Over Time
• Build Summary
• Project Management
• Burndown and Burn Rate
• Remaining Work
• Status on All Iterations
• Unplanned Work
• Tests
• Test Case Readiness
• Test Plan Progress
Agile
• Project Management
• Stories Overview
• Stories Progress
CMMI
• Project Management
• Requirements Progress
• Requirements Overview
Scrum
• Release Burndown
• Sprint Burndown
• Velocity
Bug Status Report
•
•
•
•
Is the team fixing bugs
quickly enough to finish on
time?
Is the team fixing high
priority bugs first?
What is the distribution of
bugs by priority and severity?
How many bugs are assigned
to each team member?
Bug Trends Report
•
•
•
How many bugs is the team
reporting, resolving, and
closing per day?
What is the overall trend at
which the team is processing
bugs?
Are bug activation and
resolution rates declining
toward the end of the
iteration as expected?
Reactivations Report
•
•
•
How many bugs are being
reactivated?
How many user stories are
being reactivated?
Is the team resolving and
closing reactivated bugs at
an acceptable rate?
Build Quality Indicators Report
•
•
•
What is the quality of the
software?
How often are tests passing,
and how much of the code is
being tested?
Based on the code and test
metrics, is the team likely to
meet target goals?
Build Success Over Time Report
•
•
•
What parts of the project have produced software that is ready to be tested?
What parts of the project are having trouble with regressions or bad checkins?
How well is the team testing the code?
Build Summary Report
•
•
•
•
•
What is the status of all builds over time?
Which builds succeeded?
Which builds have a significant number of changes to the code?
How much of the code was executed by the tests?
Which builds are ready to install?
Burndown and Burn Rate Report
•
•
•
Is the team likely to finish the
iteration on time?
Will the team complete the
required work, based on the
current burn rate?
How much work does each
team member have?
Remaining Work Report
•
•
•
•
•
What is the cumulative flow of
work?
Is the team likely to finish the
iteration on time?
Is the amount of work or
number of work items in the
iteration growing?
Does the team have too much
work in progress?
How is the team doing in
estimating work for the
iteration?
of Items
Work
# Hours
of Work
Status on All Iterations Report
•
•
•
•
Is steady progress being made across all iterations?
How many stories did the team complete for each iteration?
How many hours did the team work for each iteration?
For each iteration, how many bugs did the team find, resolve, or close?
Stories Overview Report (Agile)
•
•
•
•
How much work does each story require?
How much work has the team completed for each story?
Are the tests for each story passing?
How many active bugs does each story have?
Stories Progress Report (Agile)
•
•
•
How much progress has the team made toward completing the work for each story?
How much work must the team still perform to implement each user story?
How much work did the team perform in the last calendar period?
Requirements Progress Report (CMMI)
•
•
•
How much progress has the team made toward completing the work for each
requirement?
How much work must the team still perform to implement each requirement?
How much work did the team perform in the last calendar period?
Requirements Overview Report (CMMI)
•
•
•
•
How much work does each Requirement require?
How much work has the team completed for each Requirement?
Are the tests for each Requirement passing?
How many active bugs does each Requirement have?
Release Burndown (Scrum)
•
•
How much work remains in the release?
How quickly is your team working through the product backlog?
Sprint Burndown (Scrum)
•
•
•
•
How much work remains in the sprint?
Is your team on track to finish all work for the sprint?
When will your team finish all work for the sprint?
How much work for the sprint is in progress?
Unplanned Work Report
•
•
How much work was
added after the
iteration started?
Is too much work
being added during
the iteration?
Test Case Readiness Report
•
•
•
•
When will all the test cases be ready to run?
Will all the test cases be ready to run by the end of the iteration?
How many test cases must the team still write and review?
How many test cases are ready to be run?
Test Plan Progress Report
•
•
•
•
•
•
How much testing has the
team completed?
Is the team likely to finish
the testing on time?
How many tests are left to
be run?
How many tests are passing?
How many tests are failing?
How many tests are
blocked?
Streamline the Process
DASHBOARDS
Dashboards
• Quickly find important
information about team
projects
• Show project data, support
investigation, & help teams
perform common tasks more
quickly.
• Leverage SharePoint products
through Web Parts
– Excel Web Access
– Team Web Access
Dashboards
•
•
•
•
•
•
•
My Dashboard
Project Dashboard
Progress Dashboard
Quality Dashboard
Test Dashboard
Bugs Dashboard
Build Dashboard
My Dashboard
• What is the next set of Tasks, Bugs, or
Test Cases that I should act on?
• What is the status of the team's most
recent builds?
Project Dashboard
• Is the team likely to finish the iteration on time?
• Will the team complete the planned work
based on the current burn rate?
• What were the most recent check-ins?
Burn Rate
Work Item Breakdown
Burndown
Progress Dashboard
•
•
•
•
•
Is the team likely to finish the iteration on time?
Will the team complete the planned work based on
the current burndown?
How much progress has the team made on
implementing user stories in the past four weeks?
How quickly is the team identifying and closing
Issues?
What were the most recent check-ins?
Quality Dashboard
•
•
•
•
•
•
Is the test effort on track?
Is the team testing the appropriate functionality?
Are the team's bug fixes of high quality?
Are tests stale?
Does the team have sufficient tests?
Are any bottlenecks occurring?
Test Dashboard
•
•
•
•
•
•
Is the authoring of Test Cases on track?
Has the team defined Test Cases for all User Stories?
What are the proportions of Test Cases that are passing,
failing, and blocked?
Do test failure metrics indicate a problem that requires
further investigation?
What is the status of last night's build?
What are the most recent check-ins?
Bugs Dashboard
•
•
•
•
•
How quickly is the team resolving and closing bugs?
Is the team fixing bugs quickly enough to finish on time?
How many bugs is the team reporting, resolving, and
closing per day?
Is the team resolving priority 1 bugs before priority 2 and
3 bugs?
Does any team member have a backlog of priority 1 bugs
that warrant redistribution?
Build Dashboard
•
•
•
•
•
•
How volatile is the code base?
How much of the code is the team testing?
How high is the quality of the builds?
Is the quality increasing, decreasing, or staying constant?
Which builds succeeded?
Which builds have a significant number of changes to the code?
Streamline the Process
MICROSOFT TFS USAGE
Microsoft TFS Environment
Servicing organizations such as MSIT, DevDiv, Windows, SQL, AdCenter,
MSN/Windows Live, Bing Mobile, Windows Azure, MEDPG, and HED
Northern Ireland
Redmond
Scotland
Fargo
France
Hawaii
North Carolina
Visual Source Safe migration
Internal Usage
Instances
Team Project Collections
Team Projects
Active Unique Users
Work Items
Source Code Files
Shanghai
as of June 2012
52
313
10,101
42,687
15,502,244
191,608,280
Builds Per Month
3,023,416
Test Cases
3,023,416
Availability
99.83% uptime
6 proxy servers configured serving
a load of 100,000,000+ requests
per week.
700 GB SAN ea.
Hyderabad
Hardware-64-Bit Server 2008 R2
App Tier: 8-way, 2x HP ProLiant with
16GB of RAM running on 64-Bit
Windows Server 2008 R2
Data Tier-Single Instance: 24-way, 2x
HP with 128GB of RAM
Failover cluster configuration
400 dedicated spindles equaling 60 TB
Summary
• Use familiar tools for planning & tracking project status
–
–
–
–
Project
Project Server
Excel
Web
–
–
–
–
Visual Studio
Excel
Reporting website
SharePoint
• Reporting available to everyone
• Comprehensive, powerful, flexible reporting mechanisms
System Requirements
Team Foundation Client Tier
Windows 7 SP1 (x86 and x64)
Windows 8 (x86 and x64)
Windows Server 2008 R2 SP1 (x64)
Windows Server 2012 (x64)
Team Foundation Application Tier
64-bit version of Windows Server 2008 SP2
64-bit version of Windows Server 2008 R2 SP1
64-bit version of Windows Server 2012
64-bit or 32-bit versions of Windows 7 with SP1
64-bit or 32-bit versions of Windows 8
Version Control
Proxy
Build Machine
32-bit versions of
Windows Server 2003 SP2
Windows Server 2003 R2
Windows Server 2003 R2
SP2
64-bit version of
Windows Server 2008
Windows Server 2008 R2
64-bit version of
Windows Server 2012
Windows Server 2008
with SP2
Windows Server 2008 R2
Team Foundation Data Tier
SQL Server
SQL Server
SQL Server
SQL Server
2008, R2 Express or Standard
2008, R2 Enterprise Edition with SP 1 CU1
2012, Express or Standard
2012, Enterprise Edition
HTTP/HTTPS
.NET remoting