43
© 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

Improving The Software Development Lifecycle With Visual Studio Team System

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Improving The Software Development Lifecycle With Visual Studio Team System

© 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

Page 2: Improving The Software Development Lifecycle With Visual Studio Team System

© 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.

Page 3: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 4: Improving The Software Development Lifecycle With Visual Studio Team System

Visual Studio Team System

Introduction

Page 5: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 6: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 7: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 8: Improving The Software Development Lifecycle With Visual Studio Team System

How Far Can We Get In The Available Time?

Page 9: Improving The Software Development Lifecycle With Visual Studio Team System

How Effective Is Our (Outsourced) Team?

Page 10: Improving The Software Development Lifecycle With Visual Studio Team System

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!

Page 11: Improving The Software Development Lifecycle With Visual Studio Team System

Compliance and Auditing

Page 12: Improving The Software Development Lifecycle With Visual Studio Team System

Integrated Project Portal

Page 13: Improving The Software Development Lifecycle With Visual Studio Team System

Project Planning

Page 14: Improving The Software Development Lifecycle With Visual Studio Team System

Team Explorer

Page 15: Improving The Software Development Lifecycle With Visual Studio Team System

Testing

Page 16: Improving The Software Development Lifecycle With Visual Studio Team System

Build And Deployment

Page 17: Improving The Software Development Lifecycle With Visual Studio Team System

Integrated Unit Testing

Page 18: Improving The Software Development Lifecycle With Visual Studio Team System

Code Profiling

Page 19: Improving The Software Development Lifecycle With Visual Studio Team System

Code Coverage

Page 20: Improving The Software Development Lifecycle With Visual Studio Team System

Static Code Analysis

Page 21: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 22: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 23: Improving The Software Development Lifecycle With Visual Studio Team System

Extending Visual Studio Team System

Example 1: Project Server Integration

Page 24: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 25: Improving The Software Development Lifecycle With Visual Studio Team System

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.

Page 26: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 27: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 28: Improving The Software Development Lifecycle With Visual Studio Team System

Extending Visual Studio Team System

Example 2: TFS Version Control Extensions

Page 29: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 30: Improving The Software Development Lifecycle With Visual Studio Team System

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…)

Page 31: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 32: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 33: Improving The Software Development Lifecycle With Visual Studio Team System

Traceability between code and work items

Source files to check in …

…with Work Items done…

…and Check-in Notes and Policy Status

Page 34: Improving The Software Development Lifecycle With Visual Studio Team System

Extending Visual Studio Team System

Example 3: Custom Process Integration

Page 35: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 36: Improving The Software Development Lifecycle With Visual Studio Team System

Process Enacted by Tooling

Page 37: Improving The Software Development Lifecycle With Visual Studio Team System

Adopting Visual Studio Team System

Tips & Lessons Learned

Page 38: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 39: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 40: Improving The Software Development Lifecycle With Visual Studio Team System

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

….

Page 41: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 42: Improving The Software Development Lifecycle With Visual Studio Team System

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

Page 43: Improving The Software Development Lifecycle With Visual Studio Team System

Questions?Questions?

Review