This is the posting of a slide deck I delivered at TechEd South Africa 2007. For URL’s to each of the.

Download Report

Transcript This is the posting of a slide deck I delivered at TechEd South Africa 2007. For URL’s to each of the.

This is the posting of a slide deck I delivered at TechEd South Africa 2007.
For URL’s to each of the resources referenced in this presentation please see
the speaker’s notes on each slide.
Additionally, see www.accentient.com/widgets.aspx for a wealth of VSTS tools,
add-ons, and other such helpful resources.
Brian Keller
Brian Keller
Technical Evangelist
[email protected]
Agenda
• Team Foundation Server
– Setup
– Team Projects
– Client configurations
– Power Tools
– Policies / Process
– Reporting
– Branching & Merging
• Code Quality
• Requirements Management
Installing Team Foundation Server
• Read the manuals.
• Seriously.
• Read the manuals first.
Team Foundation Guidance
• Team Foundation Server Installation Guide
• Team Foundation Server Administrator’s
Guide
• Team Foundation Server Operations Guide
(NEW!)
• Pricing & Licensing Whitepaper
• Migrating? (we’ll cover this later)
“Non-setup” Options
• Just kicking the tires?
– Download a VPC.
– See my blog for faster download options.
• Outsource your TFS setup/maintenance
– www.tfsnow.com – 1st commercial TFS hoster
(based in AUS)
– www.codeplex.com – for shared source
projects
Best Practices Analyzer
TFS Admin Power Tool
Team Projects
• “Limit” of 500 MSF for Agile or 250 MSF
for CMMI
• Not a hard limit
– Does affect performance of TFS clients
• Usually err towards fewer Team Projects
– Main exception: Different Process Templates
• Whitepaper: “Guidance for Structuring
Team Projects” by Doug Neumann
TFS Clients: Optimize for Roles
•
•
•
•
•
•
•
•
•
•
Team Explorer 2005 / 2008
MSSCCI Provider
Excel / Project Standard / Pro
TeamPrise
VSTS Web Access
SharePoint
TeamLook
TeamCompanion
SvnBridge
Roll your own using the TFS Object Model
– Do NOT write to the Web services directly
*Any access of TFS requires a CAL
Team Foundation Power Tools
• V1.3 release in September
• Lots of essential tools
–
–
–
–
–
–
–
–
–
–
Online
Rollback
Annotate
Treediff
Custom Check-in Policies
TestToolsTask for MSBuild
Best Practices Analyzer
Work Item Templates
Process Template Editor
More…
Check-In Policies
•
•
•
•
•
•
•
Work Items
Code Analysis
Testing
Changeset Comments*
Work Item Query*
Custom Path*
Forbidden Patterns*
*Ships with TFPT v1.2 and above
Process Guidance
"With Visual Studio Team System,
we thought we were buying
developer tools; what we got
was a culture changing tool."
John Szurek
Enterprise Architect
What About my Processes?
Partner
Process/ Tools
Link
Avanade
SLP using VSTS
http://avanade.com/_uploaded/pdf/avanadeslpwhitepaper262
852.pdf
Cognizant
FDD for VSTS
http://www.cognizant.com/html/content/microsoft/techfddvsts.
asp
Conchango
Scrum for Team System
http://www.scrumforteamsystem.com
Fujitsu
Macroscope for Team System
http://www.fujitsu.com/us/services/consulting/method/macrosc
ope/index_p2.html
Ivar Jacobson
Consulting
Essential UP for Team System
http://www.ivarjacobson.com
Object Consulting
Process MeNtOR TeamGuide
http://www.processmentor.com/TeamGuide/Default.aspx
Osellus
IRIS Process Author/ Content
Bridge for VSTS
http://www.osellus.com/products/
Process Template Editor
• Graphically edit process templates:
– Work Item Types
• E.g. Forms, Workflow, Fields
– Default Team Project settings
• E.g. Roles & Permissions, “Starter” Work Items
and Iterations
• Tip: Reports may need rework.
• Tip: Adding required fields to projects
underway may require you to backfill data.
PTE installed with Team Foundation Power Tools v1.2 and above
How Much Work is Left?
Planned
Work
Completed
Work
How Productive is the Team?
How Much Unplanned Work is
There?
What is the Quality of the
Software?
Tests
Inconclusive
Tests
Failed
Tests
Passed
Code
Churn
Active
Bugs
How Effectively Are We Finding,
Fixing and Closing Bugs?
Recognizing Signs of
Underestimation
Slow progress leading to cuts in
planned work, but not enough
cuts
Steady rates of
progress, but slope too
shallow
Recognizing Test Bottlenecks
Bulge in resolved.
Insufficient resources or
inadequate quality from
development
Recognizing Sloppy
Development Practices (1 of 2)
Growing “Fault Feedback
Ratio” – bugs requiring
multiple handling
Recognizing Sloppy
Development Practices (2 of 2)
Falling code coverage
Fewer passing and
more inconclusive
tests
Rising code churn
Recognizing Scope Creep
“Dark Matter”
emerging during the
iteration
Planned work is
squeezed out
Reporting
• Buy Sam’s book
• Get to know the built-in
reports
• Customize reports to suit your
organization and process
– SSRS, Excel
– New docs on MSDN
• Use many dimensions to draw
conclusions
Reporting
• Use Work Item Tracking!
• Integrated Check-In
– Consider Check-In Policies
• Link Requirements/Scenarios to Tests
• Publish Test Results
Branching & Merging
• TFS Branching & Merging
guide on CodePlex
• Branch for:
– Isolation
– Archival
• Tip: Labels are not
immutable.
Branching & Merging
• Branching too often:
– Can lead to pain during merging.
• Not branching often enough:
– Harder to stabilize
• Tip: Configure Visual Studio to use your
favorite merge / compare tools (e.g.
WinMerge).
Traditional Promotion Modeling
• Source baselines of varying quality
foo.cs
12
Test
Prod
bar.cs
10
19
17
18
20
Dev
19
21
Team Foundation Promotion Modeling
• Branches of varying quality
$/…/Dev
$/…/Test
$/…/Prod
foo.cs
9
12
14
15
19
21
25
bar.cs
9
10
15
16
20
22
25
foo.cs
13
17
23
26
bar.cs
13
17
23
26
foo.cs
18
24
27
bar.cs
18
24
27
Migrating to Team Foundation
• We ship tools for:
– Visual SourceSafe
– ClearCase / ClearQuest
• TFS Migration & Sync Toolkit
– Uses provider model to interface with 3rd party
SCC / WIT systems
– Several approaches:
• 1-way, 1-time
• 1-way, many times
• 2-way mirror (scheduled or real time)
• Tip: Is “Get Latest” an option for you?
• Team Foundation Server 2008
– The results are in: 2X faster than 2005!
– Better Scalability
• Single Server: Up to 450 users
• Dual-Server: Up to 3600 users
– Support for WSS 3.0 / MOSS 2007
– Windows Server 2008 & SQL Server 2008
– SQL Named Instances
– Port Flexibility
– Destroy
• Team Foundation Server 2008
– Continuous Integration Built In
• Build scheduling (Manual, Every check-in,
“Rolling”, Scheduled)
• Build Queue
• Retention Policy
• .VSMDI not required for BVT’s
– Annotate
– Treediff
– Get Latest on Checkout
– More… (see Brian Harry’s blog)
Upgrading to TFS 2008
• Backup -> Run Setup
– Uninstall (usually) not required
• Dozens of customers already running
TFS2008 in production
• http://blogs.msdn.com/sudhir/
• Before you upgrade
– Custom Check-in Policies?
• See Ed Hintz’ blog
– 3rd party TFS tools?
• Ensure compat w/ TFS2008
Code Reviews
• Encourage Static Analysis first
• Shelving
– Stores changes on server without committing
them to branch
– Shelvesets can be shared
• Community add-in: TFS Code Review
– Uses work items for code review workflow
– Check-in associated to code review work item
Unit Testing
• Use Code Metrics to target areas of high
cyclomatic complexity for simplification (New
in 2008)
• Parameterize your tests and feed with data
(Improved in 2008)
• Code Coverage helps ensure you are writing
the right tests – but don’t rely too heavily on
this.
• Use unit tests as BVT’s.
• Warning: VSTS 2008 tests not compatible
with VSTS 2005.
Web Testing
• Tests Web scenarios
• Should be granular down to the user story
level
• Can be made modular (e.g. Sign-in + Browse
+ Sign-out)
• Note: Executes at the HTTP(s) layer, not
presentation layer.
• Add validation logic to help ensure correct
data.
• Can be parameterized (Improved for 2008)
• AJAX support (New in 2008)
Load Testing
• Tests scalability
• Can be applied to Web tests or unit tests
(or both)
• Guidance on MSDN for testing strategy
• Hotmail.com case study
• NCAA “March Madness” case study
Building
• Use Team Foundation Server 2008!
• Use differing build frequencies for different purposes
– Rolling / Every Check-in for near-real time notification of
build breaks
•
•
•
•
•
•
Run BVT’s (usually unit tests)
Consider 32-bit vs. 64-bit
Get creative with your notifications
Team Build Tray Icon
Be careful about punishing build breakers
If your CI breaks, fix it.
– Less frequent (daily/weekly?) builds for integration /
manual tests
•
•
•
•
Scout the build
Update build status
Publish test results
Use reports
– “Named builds” for user-acceptance testing
DBPro Service Release 1
• 3 Major Features:
– 3 & 4 part names
• Through “Database References”
• Reduces number of warnings
– Filegroup Support
– SQLCmd $Variable Support
• Adds support for SQL Server 2005 SP2
and Windows Vista
• Requires Visual Studio 2005 SP1
DBPro Power Tools
• Refactoring improvements:
–
–
–
–
Move Schema Refactoring
Disambiguate Schema Refactoring
Wild Card Expansion Refactoring
sp_rename & move schema deployment script generation
• MSBuild task improvements:
– Schema Compare Build Task
– Data Compare Build Task
– SQL Script Pre-Processor Task
• Expands variables and include files
– SQL Extended Property Build Task
• Used for getting and setting object level
versioning information
TeamSpec from Personify
Show
• Word
• TFS sync bar
stpBA from stpsoft
BA draws screens in Visio
Show:
• Many stencils in the left hand toolbar
• Screen in the main surface
stpBA from stpsoft
stpBA from stpsoft
Dev team reviews the prototype
Build a version of the app that users can look at
Show
• TFS client
• List of scenarios open in the query results (or would it be requirements?)
• In the work item preview you can see a thumbnail preview of the
walkthrough screen
What is cool
• Changes BA made flow to team (single
system for managing requirements
enables everyone on the team to accss the
“big picture”)
• Devs have links to everything, including
thumbnails of the screens!
ALM Assessment
• www.microsoft.com/almassessment
• Measure your development organization
and develop action plan for ALM
investments.
Resources
• Brian Harry’s blog
http://blogs.msdn.com/bharry
• Brian Keller’s blog
http://blogs.msdn.com/briankel
• Team System Dev Center
http://msdn.microsoft.com/teamsystem
• MSDN Forums
http://forums.microsoft.com/msdn
• Email me
[email protected]