Visual Studio Team System Agile Development within VSTS teams 30 - Eben de Wit... · SHIPPED NOV...

3
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION. Eben de Wit Eben de Wit Developer Advisor Developer Advisor Microsoft South Africa Microsoft South Africa [email protected] [email protected] Visual Studio Team System Visual Studio Team System Agile Development within VSTS teams Agile Development within VSTS teams How we did it How we did it What we learned What we learned Resources Resources Visual Studio Visual Studio Productivity Productivity Powerful Powerful Ease of use Ease of use World class IDE World class IDE Broad reach Broad reach Developer Architect Project Manager Tester Designer VS Team System VS Team System Expand to development team Expand to development team Business results from IT Business results from IT Team productivity and Team productivity and collaboration collaboration Integrated quality Integrated quality Developer Business Analyst PMO Operations CIO Application Support Architect Project Manager Tester Designer Developer Visual Studio Team Suite Visual Studio Team Suite MSF Process and Guidance MSF Process and Guidance Visual Studio Team Foundation Server Visual Studio Team Foundation Server Visual Studio Industry Partners Software Software Architects Architects Software Software Developers Developers Software Software Testers Testers Database Database Professionals Professionals Visual Studio Team Explorer Application Application Modeling Modeling Infrastructure and Infrastructure and Deployment Deployment Modeling Modeling Code Analysis Code Analysis Performance Performance Tuning Tuning Security Analysis Security Analysis Database Database Deployment Deployment Database Change Database Change Management Management Database Testing Database Testing Performance Performance Testing Testing Manual Testing Manual Testing Test Case Test Case Management Management Visual Studio Professional Edition Visual Studio Professional Edition Change Management Change Management Work Item Tracking Work Item Tracking Reporting Reporting Project Site Project Site Integration Services Integration Services Project Management Project Management Load Test Agent Load Test Agent Visio and UML Modeling Visio and UML Modeling Class Modeling Class Modeling Unit Testing Unit Testing Code Coverage Code Coverage

Transcript of Visual Studio Team System Agile Development within VSTS teams 30 - Eben de Wit... · SHIPPED NOV...

Page 1: Visual Studio Team System Agile Development within VSTS teams 30 - Eben de Wit... · SHIPPED NOV 2006 Mission: Incorporate Database Professionals into the software lifecycle and provide

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Eben de WitEben de WitDeveloper AdvisorDeveloper AdvisorMicrosoft South AfricaMicrosoft South [email protected]@microsoft.com

Visual Studio Team SystemVisual Studio Team System

Agile Development within VSTS teamsAgile Development within VSTS teamsHow we did itHow we did it

What we learnedWhat we learned

ResourcesResources

Visual StudioVisual Studio•• ProductivityProductivity•• PowerfulPowerful•• Ease of useEase of use•• World class IDEWorld class IDE•• Broad reachBroad reach

Developer

Architect

ProjectManager

Tester

Designer

VS Team SystemVS Team System•• Expand to development teamExpand to development team

•• Business results from ITBusiness results from IT•• Team productivity and Team productivity and

collaborationcollaboration•• Integrated qualityIntegrated quality

Developer

Business

Analyst

PMO

Operations

CIO

ApplicationSupport

Architect

ProjectManager

Tester

Designer

Developer

Visual Studio Team SuiteVisual Studio Team Suite

MS

F P

roce

ss a

nd G

uida

nce

MS

F P

roce

ss a

nd G

uida

nce

Visual Studio Team Foundation ServerVisual Studio Team Foundation Server

VisualStudio

IndustryPartners

SoftwareSoftwareArchitectsArchitects

SoftwareSoftwareDevelopersDevelopers

SoftwareSoftwareTestersTesters

DatabaseDatabaseProfessionalsProfessionalsVisual

StudioTeam

ExplorerApplication Application ModelingModeling

Infrastructure and Infrastructure and Deployment Deployment

ModelingModeling

Code AnalysisCode Analysis

Performance Performance TuningTuning

Security AnalysisSecurity Analysis DatabaseDatabaseDeploymentDeployment

Database Change Database Change ManagementManagement

Database TestingDatabase Testing

Performance Performance TestingTesting

Manual TestingManual Testing

Test Case Test Case ManagementManagement

Visual Studio Professional EditionVisual Studio Professional Edition

Change ManagementChange Management

Work Item TrackingWork Item Tracking

ReportingReporting

Project SiteProject Site

Integration ServicesIntegration Services

Project ManagementProject Management

Load Test AgentLoad Test Agent

Visio and UML ModelingVisio and UML Modeling

Class ModelingClass Modeling

Unit TestingUnit Testing

Code CoverageCode Coverage

Page 2: Visual Studio Team System Agile Development within VSTS teams 30 - Eben de Wit... · SHIPPED NOV 2006 Mission: Incorporate Database Professionals into the software lifecycle and provide

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Continuous Attention to Technical Continuous Attention to Technical ExcellenceExcellence

RefactoringRefactoring

Unit TestingUnit Testing

Database RefactoringDatabase Refactoring

Database Unit TestingDatabase Unit Testing

Static AnalysisStatic Analysis

Code MetricsCode Metrics

Projects Built around Trusted Projects Built around Trusted IndividualsIndividuals

Team Coding StandardsTeam Coding Standards

Continuous Integration BuildContinuous Integration Build

Team Progress Reports for full Team Progress Reports for full transparency and insighttransparency and insight

Rapid, Continuous Delivery of Useful Rapid, Continuous Delivery of Useful SoftwareSoftware

Iteration Planning (Agile)Iteration Planning (Agile)

Scenario and Test planningScenario and Test planning

Release criteria preRelease criteria pre--defineddefined

Integrated single view of source control, Integrated single view of source control, progress and test data for understandingprogress and test data for understanding

Close Communication between Close Communication between Business & Development TeamBusiness & Development Team

Excel & Visual Studio integration for Excel & Visual Studio integration for project planningproject planning

LowLow--process planning toolsprocess planning tools

Page 3: Visual Studio Team System Agile Development within VSTS teams 30 - Eben de Wit... · SHIPPED NOV 2006 Mission: Incorporate Database Professionals into the software lifecycle and provide

© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Change ManagementChange ManagementProject Based DevelopmentProject Based Development

Project ModelProject Model that represents schema as objects providing a that represents schema as objects providing a ““personal sandboxpersonal sandbox”” for offline development that lives within a for offline development that lives within a Visual Studio SolutionVisual Studio Solution

Team CollaborationTeam Collaboration with Work Item and Process Integration with Work Item and Process Integration with Team Foundation Serverwith Team Foundation Server

Automated Change SupportAutomated Change SupportRename RefactoringRename Refactoring with the ability to preview pending with the ability to preview pending changes prior to executionchanges prior to execution

Comparison ToolsComparison Tools (Schema & Data Compare) allow (Schema & Data Compare) allow comparisonscomparisons & synchronization of schema and data with & synchronization of schema and data with design/test/production databases design/test/production databases

Source/Version ControlSource/Version Control of all database objects with of all database objects with the ability to reverse engineer a database to the ability to reverse engineer a database to bring it under Source Controlbring it under Source Control

CreateCreate a new Database at the target location or a new Database at the target location or UpdateUpdate an Existing an Existing SchemaSchema

Database Unit TestingDatabase Unit TestingLeverages theLeverages the Test Project InfrastructureTest Project Infrastructure

GenerateGenerate ““Real and MeaningfulReal and Meaningful”” Data ValuesData Values through the through the ability to import information such as Row Counts and ability to import information such as Row Counts and histograms from a real databasehistograms from a real database

Data Generator provides Data Generator provides Repetitive Dataset GenerationRepetitive Dataset Generation for for tests based on saved settingstests based on saved settings

Build / DeploymentBuild / DeploymentMSBuild Integration MSBuild Integration for Database for Database Deployments/Builds based on Projects Deployments/Builds based on Projects

SHIPPED NOV 2006SHIPPED NOV 2006

Mission: Incorporate Database Professionals into the software li fecycle and provide them with a foundation for change management and process integra tion.

Mission: Incorporate Database Professionals into the software li fecycle and provide them with a foundation for change management and process integra tion.

StatisticsStatistics

# on Team: 39 # on Team: 39

Duration of Project: 15 monthsDuration of Project: 15 months

Team StructureTeam Structure

3 scrum teams (daily mtg)3 scrum teams (daily mtg)

1 scrum of scrums w/leads (weekly)1 scrum of scrums w/leads (weekly)

Each scrum team had leadsEach scrum team had leads

Release PlanningRelease Planning

4 week sprints, 14 week sprints, 1--2 weeks for planning in 2 weeks for planning in between sprintsbetween sprints

Team defined overall sprint goals, each Team defined overall sprint goals, each subteam defined sprint goalssubteam defined sprint goals

Team defined highTeam defined high--level milestones for the level milestones for the releaserelease

SHIPPED NOV 2006SHIPPED NOV 2006

Scrum Team PlanningScrum Team Planning

Subteams had a product backlog, built the sprint Subteams had a product backlog, built the sprint backlog from the product backlog each sprintbacklog from the product backlog each sprint

Team designed 1Team designed 1--2 iterations in front 2 iterations in front

of developmentof development

Defined quality gates for each sprintDefined quality gates for each sprint

Docs Docs –– ““as little as possible and no lessas little as possible and no less””

PostPost--mortem after each sprint, planning and mortem after each sprint, planning and team costing before team costing before

each sprinteach sprint

Execution MtgsExecution Mtgs

Sprint teamSprint team--wide meeting (ALL)wide meeting (ALL)

Daily team scrum mtg (SCRUM TEAM)Daily team scrum mtg (SCRUM TEAM)

Weekly scrum of scrums (LEADS)Weekly scrum of scrums (LEADS)

Leads triage (later in cycle) (SCRUM LEADS)Leads triage (later in cycle) (SCRUM LEADS)

SHIPPED NOV 2006SHIPPED NOV 2006

Agile definitely works best in smaller teams. Agile definitely works best in smaller teams. We broke the unit down into smaller scrums, We broke the unit down into smaller scrums, but maybe even more was warranted in certain but maybe even more was warranted in certain cases.cases.

Set a vision for the release at every level, Set a vision for the release at every level, then get everyone involved in improving itthen get everyone involved in improving it , , involving every level of the teaminvolving every level of the team

Write very clear scenariosWrite very clear scenarios

Define teamDefine team --wide milestone goals wide milestone goals (moderate (moderate working sprint to sprint)working sprint to sprint)

Clearly defined exit criteria is key Clearly defined exit criteria is key –– raise the raise the bar at each iterationbar at each iteration

Communication of decisions is critical Communication of decisions is critical ––capture and record informal communication of capture and record informal communication of decisionsdecisions

““ Turn the crankTurn the crank ”” early and often on the full early and often on the full release process release process –– critical for high release bar / critical for high release bar / comprehensive ship processescomprehensive ship processes

Automate as many quality gates as possible Automate as many quality gates as possible and watch them attentively (canary in the mine)and watch them attentively (canary in the mine)

Emphasis on Emphasis on ““ estimated work to estimated work to completioncompletion ”” rather than on rather than on ““work work completecomplete”” was very importantwas very important

Getting QA engaged earlier in the Getting QA engaged earlier in the process process is very important in order to is very important in order to ensure that the product was testable from ensure that the product was testable from the get go. We didnthe get go. We didn’’t do a very good job t do a very good job of that in V1.of that in V1.

The importance of unit testing the The importance of unit testing the code cannot be overemphasized. code cannot be overemphasized.

Code coverage for code coverage sake Code coverage for code coverage sake does not quality code make! does not quality code make! Unit Unit testing for code validation and verification testing for code validation and verification rather than for sheer code coverage is rather than for sheer code coverage is much more valuable!much more valuable!

DonDon’’t stop for tools evaluations t stop for tools evaluations –– we we ship code, not internal tools!ship code, not internal tools!

SHIPPED NOV 2006SHIPPED NOV 2006

•• Team System:Team System:•• http://msdn2.microsoft.com/enhttp://msdn2.microsoft.com/en--

us/teamsystem/default.aspxus/teamsystem/default.aspx

•• Team System Blogs:Team System Blogs:•• http://msdn2.microsoft.com/enhttp://msdn2.microsoft.com/en--

us/teamsystem/aa718761.aspxus/teamsystem/aa718761.aspx

•• MSF for Agile:MSF for Agile:•• http://msdn2.microsoft.com/enhttp://msdn2.microsoft.com/en--

us/teamsystem/aa718801.aspxus/teamsystem/aa718801.aspx

•• James Newkirk James Newkirk –– Visual Studio Team System: Better Visual Studio Team System: Better Software Development for Agile TeamsSoftware Development for Agile Teams

•• Scrum for Visual Studio Team SystemScrum for Visual Studio Team System•• http://scrumforteamsystem.com/http://scrumforteamsystem.com/ © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.