54
Visual Studio ALM: Lessons Learned Through Dogfooding Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Embed Size (px)

Citation preview

Page 1: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Visual Studio ALM: Lessons Learned Through Dogfooding Brian HarryTechnical FellowMicrosoft Corporation

SESSION CODE: DPR206

Page 2: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

AgendaLessons Learned Through Dogfooding

OverviewTFS at MicrosoftGetting started on a releaseDevelopment Tracking and ReportingValidation

Page 3: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Visual Studio 2010

Page 4: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Visual Studio ALM Progression

V1 - TransparencyV2 - Bringing together development & testV3 - ?

Page 5: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

TFS at MicrosoftMay 2010 Growth TotalsUnique Active Users

+2,128 22,430

Total Active Users

+1,072 25,208

Projects +128 5,028Work Items -30,206 6,679,715Source Code Files

+1,773,773

91,337,562Metric TFS 2008 RTM

TFS 2010 RTM Ratio

TFS Instances 24 40 1.7XUnique Active Users

7,453 22,430 3X

Projects 1,209 5,028 4.2XWork Items 1,096,318 6,679,715 6.1XSource Code Files 24,952,519 91,337,562 3.7X

Page 6: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

TFS at Microsoft

Page 7: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

TFS in Developer Division

3,839 Recent users18.7TB Storage826,234,724 Files1,594,094 Checkins839,595 Work Items

At least 10 different locations, including 4 “major” ones

Page 8: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

DevDiv TFS Topology

Page 9: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

AgendaLessons Learned Through Dogfooding

Getting started on a releasePlanning

Page 10: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

The Challenge

What We’ve Learned

Planning And Tracking

Is the organization aligned? How are we doing against biz objectives? Are we making progress on the right things?

Align the organization around key objectives Leverage TFS to reflect the planning process Use TFS Office integration for daily tracking Use TFS for end to end traceability and reporting

Page 11: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Our Process – VS 2010

Features

Feature Groups

Value proposition

Main objectives Pillars

Value Props

Feature Groups

Deliverables Deliverables

Feature Groups

Deliverables

Value Props

Feature Groups

Deliverables

Page 12: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Value Propositions

Deliverables

Page 13: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Features

Deliverables

Page 14: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Tracking Tasks In Microsoft Excel

Page 15: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Tracking Tasks In Microsoft Project

Page 16: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Iteration Reviews – Business

Page 17: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

AgendaLessons Learned Through Dogfooding

Getting started on a releaseDevelopment

Organizing the WorkBranching

Page 18: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

The Challenge

The Solution

Organizing the Work

Incredibly difficult to drive a release with 2,000 people. High degree of churn. Complex interdependencies. Inexorable schedule

“Feature Crews” Mini-development organization Semi-autonomous Accountable for delivering quality

Page 19: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Checkpoints Keep Focus

Checkpoint 0 – ScopeCheckpoint 1 – PlanCheckpoint 2 – DemoQuality gates & Merge

Page 20: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Establishing Architecture

Page 21: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

SCRUM Is Very Popular

Page 22: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Quality as You Go

Development and test are simultaneousDevelopers & Testers share responsibilityDevelopers & Testers share tools

Test planningUnit testingFunctional testingManual testingPerformance testingStress testing

Page 23: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Test Planning

Page 24: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Unit Testing

Page 25: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Manual Testing

Page 26: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Performance & Stress Testing

Page 27: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Dashboards Provide Visibility

Page 28: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Builds

Every checkin built & verifiedBuildCode AnalysisCheckin tests

Nightly builds provide QA updates

Page 29: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Quality Gates Prevent Chaos

Carry no debt in feature developmentFeature Must Pass “Quality Gates” on Finish before

Feature completeTest CompleteAll Bugs FixedSecurity PlanStatic Code AnalysisCode CoverageNo Performance RegressionsLocalization TestingAPI Reviews

Feature may merge to active branch only when Quality Gates are met

Page 30: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

2005 Debt vs. 2008 Debt

VS 2005 Beta 1Product Bugs only

VS 2008 Beta 1ALL bug debt

Page 31: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206
Page 32: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

The Challenge

The Solution

Branch Strategy

Massive division – 2,000+ people Code churning at every level

Isolation and Integration Isolate major feature areas in branches Automate branch quality checks Rhythm of regular merges Handles integration complexity

Page 33: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Source/Branch Structure

1 branch per productGated checkin procedureVBLs build in parallelNightly test suites verify branch healthRegular schedule for merges Stringent criteria for merges to main

$/DEV10/Main

$/DEV10/PU/<BranchName>

$/DEV10/feature/<BranchName>

$/DEV10/PU/<BranchName>

$/DEV10/feature/<BranchName>

Page 34: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

AgendaLessons Learned Through Dogfooding

Getting started on a releaseDevelopment Tracking and Reporting

Trustworthy TransparencyTop Tracking Metrics

Page 35: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

The Challenge

The Solution

Trustworthy Transparency

Each team needs to optimize process differently for their needs Leadership teams need central rollup to trackprogress.

Fantastic hub-spoke federated model…All teams use TFS for central trackingEach team uses best process for its needsSingle reporting system

Page 36: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Iteration Reviews – Business

Page 37: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Iteration Reviews – Business

Page 38: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Iteration Reviews – Product Unit

Page 39: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Iteration Reviews – Product Unit

Page 40: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

AgendaLessons Learned Through Dogfooding

Getting started on a releaseDevelopment Tracking and Reporting

Trustworthy TransparencyTop Tracking Metrics

Validation

Page 41: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

The Challenge

The Solution

Validation

How do you make sure a public release is high quality?

Integration testing Overall Gut Feel “OGF” Stress testing Slowdown the churn

Page 42: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Shutdown Process

Full test passZero Bug Bounce (ZBB)Zero Resolved Bounce (ZRB)Tell ModeVerification test passAsk ModeEscrow

Page 43: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Tracking Bugs – Aggregate

Page 44: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Tracking Bugs – Rates

Page 45: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Tracking Bugs – By Feature Area

Page 46: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Tracking Bugs – By Person

Page 47: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Exit Criteria Summary

Page 48: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Summary

We have rolled our learnings back into our toolsWe have encountered problemsWe have learnedWe have rolled our learnings back into the tool

We Believe In These ToolsScales to Massive Commercial DevelopmentWidely tested

I hope you can learn and benefit from our experience

Page 49: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Track Resources

Resource 1

Resource 2

Resource 3

Resource 4

Page 50: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Resources

www.microsoft.com/teched

Sessions On-Demand & Community Microsoft Certification & Training Resources

Resources for IT Professionals Resources for Developers

www.microsoft.com/learning

http://microsoft.com/technet http://microsoft.com/msdn

Learning

Page 51: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Complete an evaluation on CommNet and enter to win!

Page 52: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

Sign up for Tech·Ed 2011 and save $500 starting June 8 – June 31st

http://northamerica.msteched.com/registration

You can also register at the

North America 2011 kiosk located at registrationJoin us in Atlanta next year

Page 53: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

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

Page 54: Brian Harry Technical Fellow Microsoft Corporation SESSION CODE: DPR206

JUNE 7-10, 2010 | NEW ORLEANS, LA