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