Upload
matthewphillips
View
15
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
© 2007 Avanade UK Ltd. All rights reserved.
Improving the Software Development Lifecycle with Visual Studio Team System
Avanade UK Ltd
Matthew Phillips I Director, Applications & Integration
© 2007 Avanade UK Ltd. All rights reserved.
About Avanade
Avanade is the leading technology integrator specializing in the Microsoft enterprise platform. Our people help customers around the world maximise their IT investment and create comprehensive solutions that drive business results.
Agenda
Introduction to Visual Studio Team System– Solution Overview
– Metrics
– Quick dip into some key features
– Platform architecture
– Platform extensibility
Team Foundation Server extensibility examples– Example 1: Project Server Integration
– Example 2: Check-In Policies
– Example 3: Process Integration
Adoption Tips & Lessons Learned
Visual Studio Team System
Introduction
Visual Studio Team SystemApplication Life Cycle Management (ALM) Solution
Increase ProjectTransparency
Facilitate TeamCollaboration
Improve SoftwareQuality
Approachable and intuitive products
Tight integration across tools,process and roles
Single integrated serverfor collaboration
Real-time reporting fromdata warehouse
Audit trail for compliance
Improve predictability and reduce risk
Lightweight, customizable process
Integrated quality tools for each role
Reduce defects andsecurity vulnerabilities
Visual Studio Team System
Visual Studio Team Suite
MS
F Pro
cess
an
d G
uid
ance
Visual Studio Team Foundation Server
VisualStudio
IndustryPartners
SoftwareArchitects
SoftwareDevelopers
SoftwareTesters
DatabaseProfessionalsVisual
StudioTeam
ExplorerApplication Modeling
Infrastructure and Deployment
Modeling
Code Analysis
Performance Tuning
Security Analysis
Database Deployment
DatabaseChange Mgmt.
Database Testing
Performance Testing
Manual Testing
Test Case Management
Visual Studio Professional Edition
Change Management
Work Item Tracking
Reporting
Project Site
Integration Services
Project Management
Load Test Agent
Visio and UML Modeling
Class Modeling
Unit Testing
Code Coverage
Friction Free Metrics
Unobtrusive collection of source data
Retention of the full historical record
Ability to view metrics as the were in the past
Changes as your process changes
How Far Can We Get In The Available Time?
How Effective Is Our (Outsourced) Team?
Blind Spots
The X-axis identifies different components of your project; the bars show you the test pass rate for each component, while the points and line show the active bug count.
Overlaying code coverage and code churn for the components provides a very different perspective on the data.
So the Instore Pickup Kiosk code is in great shape right?
There's a danger of relying on too few metrics!
Compliance and Auditing
Integrated Project Portal
Project Planning
Team Explorer
Testing
Build And Deployment
Integrated Unit Testing
Code Profiling
Code Coverage
Static Code Analysis
Primary ATPrimary AT ServerServer
DatabaseDatabaseClusteringClustering
Team Foundation Data TierTeam Foundation Data Tier
Team Foundation App TierTeam Foundation App Tier
Build MachinesBuild MachinesVersion ControlVersion ControlProxyProxy
Report Report ClientClient
Team Foundation Client TierTeam Foundation Client Tier
App TierApp TierStandbyStandbyServerServer
Team Foundation Architecture
Team Foundation Server Extensibility Points
ReportClient
Team Foundation Data Tier
Team Foundation App Tier
Build MachineVersion ControlProxy
Team Foundation Client Tier
• Integrate services into Team Explorer
• Automate common activities • Expose TFS functionality in your
app• Write a custom checkin policy
• Write a custom web interface for another platform
• Hook Team Foundation events• Raise additional events• Manage authorization with TFS
groups and permissions
• Expose data in data warehouse
• Link to TFS “artifacts”• Surface additional
artifacts
Extending Visual Studio Team System
Example 1: Project Server Integration
Managing projects, resources, and related information for an entire enterprise requires a holistic view and integration of project management data with the software development lifecycle
The Enterprise Project Management (EPM) solution with Microsoft Office Project Server 2003 can help organizations effectively manage and coordinate people, projects, and processes
The Microsoft EPM solution provides tools for strong coordination and standardization between projects and project managers, centralized resource management, and high-level reporting on projects and resources
Through familiar tools and ease of integration with a broad range of programs in the Microsoft Office System, the EPM solution promotes broad participation for greater accuracy, accountability, and acceptance
Microsoft Office Project Server 2003Introduction
Microsoft Office Project Server 2003 and Microsoft Visual Studio 2005 Team System
Two powerful applications that are each used in different ways for management of software development projects
Up-to-date project information requires a seamless integration between the development environment and the project management tools
VSTS integrates with Project Professional 2003 for desktop use
Allows project managers to plan and manage projects on a local computer However, because there is no integration with Project Server, the project
data for each team is available only in a stand-alone plan There is no simple way to aggregate project data across multiple projects.
Visual Studio 2005Team System
MS Project Server
VSTSProject Server
Connector
VSTSProject Server
Connector
Work Item Tracking System
Reporting
VSTS Data
Warehouse
VSTS Team project data
ReportingWorkplanCreation
Project Server Data
Warehouse
Project ServerWork Plan data
Team Project Creation
Work Plan Creation
Synchronisation Work Items / Work PlanSynchronisation Work Items / Work Plan
VSTS cubes
Project Server cubes
VSTS cubes
+
Rich
er R
ep
ortin
g p
roject a
ctua
lsR
iche
r Re
po
rting
proje
ct actu
als
Import/ExportSynchro Guidance
Import/ExportSynchro Guidance
MS Excel based Work Plans
MS Project based Work Plans
VSTS – Project Server Integration
Benefits
Better visibility for project stakeholders Real time data for active projects, report at project and portfolio level
Better project management Tracks resource utilization and task status
Better resource management Synchronises resources
Better task tracking Real time, automatic updates on tasks
Extending Visual Studio Team System
Example 2: TFS Version Control Extensions
Introduction to Continuous Integration
Continuous Integration can help ensure the majority of integration bugs manifest themselves shortly after check-in
Usually immediately obvious which change caused the bug This greatly reduces the scope of the search for the bug
Provides a “red/green” health check of the software With no additional overheads as everything is automated
Leverages your investment in unit testing Automatically exercises the unit tests whenever something changes
The net result of Continuous Integration is increased productivity by reducing time spent chasing bugs
Adding Continuous Integration to VSTS
Team Foundation
Build
Team Foundation
Build
Check-in Notifications
Team FoundationVersion Control
Team FoundationVersion Control
Team FoundationVersion Control
Team FoundationVersion Control
Developer Workstation BDeveloper Workstation B
Developer Workstation ADeveloper Workstation A
Source Code
check-in
Source Code
check-in
ContinuousIntegration
Service
ContinuousIntegration
Service Initiates
Team Build
Email Notification (Reports, Errors…)
VSTS Custom Check-in Policies
Check-in policies provide policy enforceable QA and adherence to coding standards at the point of check-in
Examples include: Work item association
Enforces traceability between every code change and an associated work item
Comments policy Enforces comments for every check-in
Workspace-in-synch policy Ensures local workspace is up to date Prevents developers from integrating changes against stale code
Policy Storage Server (Version
Control)
Policy definition client
Plug in #1
Plug in #2
Team Explorer in VS.NET
Policy evaluation client
Plug in #1
Plug in #2
Source Control clients
New/modified policy definitions
Policy definitions appropriate for
check-in
Policy DefinitionPolicy Definition Policy EvaluationPolicy Evaluation
Custom Check-in Policy Design
Traceability between code and work items
Source files to check in …
…with Work Items done…
…and Check-in Notes and Policy Status
Extending Visual Studio Team System
Example 3: Custom Process Integration
Introduction
Process Template customization provides a way to integrate custom processes within a Team Project
Example customizations Custom work item types (e.g. bug, risk, issue, scenario etc.) Pre-populated work items Pre-populated documents Areas and iterations Reports Portal customization
Process Enacted by Tooling
Adopting Visual Studio Team System
Tips & Lessons Learned
Many areas to consider...
Adoption Planning
Training & Coaching
Roles and Responsibilities
Setting Clear Goals
Developing a Roadmap
Measuring Success
Operational Impact
Change Management
Lessons Learned
Migration Planning
Adoption Tips
Determine the goals of the new development environment and make sure you measure these goals (make them SMART)
Consider implementing the new environment next to the existing, don’t go for “big bang”
Success sells itself, start with smaller pilot projects
New frameworks and tools have an impact on the organization structure and ways of working
Make sure to implement configuration management properly
Think about change & release management
Do pilot projects and make sure to have Subject Matter Experts/Coaches available
Possible Goals
Cost reduction
Better outsourcing
Improve transparency/visbility to the business
Improve productivity
Improve predictability
Improve quality
Improve consistency
Compliance
Foundation for continuous improvement
Process maturity
….
Example Roadmap
41
Goal of Phase Confirm understanding of requirements
Prove value of solution Ensure Success
Deliverables Design solution
Plan infrastructure
Plan process improvements
Infrastructure set up
User training
Create assets
Build setup
Proof of concept
Implement process changes
Infrastructure rollout
User training
Migrate assets
Long term roadmap for improvements
Exit Criteria Define success criteria Validate success criteria
Process improvement
Design Solution Proof of Concept Deploy
VSTS Lessons Learned
Getting VSTS and Team Foundation Server accepted in production by the IT department isn’t always easy
There can be resistance to using Work Item Tracking by certain people (“administrative nonsense”) But using it is crucial for success
Some people don’t like objective reporting
A Business or IT project does not necessarily map one to one with a Team Project in VSTS
Think about Areas & Iterations and grouping dependent projects in a single Team Project
Questions?Questions?
Review