Sam Guckenheimer [email protected] Microsoft Corporation.

37

Transcript of Sam Guckenheimer [email protected] Microsoft Corporation.

Page 1: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.
Page 2: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Turning Walls Into BridgesSam [email protected] Corporation

Page 3: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

All Processes Are Rooted In Fear (Kent Beck)

Page 4: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Dev Dev Dev Dev Dev

The ‘90s: Basic Tools

Early tools focused on isolated tasks, such as source control

Dev Dev Dev Dev Dev

Page 5: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

The ‘00s: Value Up Software Engineering

Trustworthy Transparency bridges the team

PM Devs DB Test Arch

PM Devs DB Test Arch

Page 6: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Changing the ParadigmLean Application Lifecycle

Reduction of Waste →Small batches

Short cycles

Flow of Value →Working software Quality first

Page 7: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Changing the Paradigm

Traditionally, we decompose tasks and measure completion This is the cost accounting tradition

Alternatively, we account for customer value incrementally delivered This is the Lean Manufacturing and Theory of Constraints model

Work Down

Rem

ain

ing W

ork

PlanTask 1Task 2Task 3Task 4 Va

lue

Value Up

Page 8: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

How Far Can We Get In The Available Time?

Work planned

Work completed

Page 9: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

What Is Our Software Quality?

Test rates (pass, inconclusive, fail) shown in bars

Against code coverage, …

code churn, …

and active bugs

Page 10: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

A Venerable Truth

Happy families are all alike; every unhappy family is unhappy in its own way.

Tolstoy, Anna Karenina

Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему.

Page 11: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Signs Of Unhappiness

UnderestimatingUneven Task DecompositionSolution Stuck in TestingDevelopment Practices Too LooseInadequate Unit TestingTests Passing; Solution Doesn’t WorkToo Little TestingBuild FailuresScope CreepResource Leaks

Page 12: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Underestimating

Steady rates of progress, but slope too shallow

Slow progress leading to cuts in planned work, but not enough cuts

Page 13: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Solution Stuck In Testing

Bulge in resolved →Insufficient resources or inadequate quality from dev

Page 14: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Development Practices Too Loose

Growing “Fault Feedback Ratio” – bugs requiring multiple handling

Page 15: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Inadequate Unit Testing

Rising Code Churn

Falling Code CoverageFewer Passing and More Inconclusive Tests

Page 16: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Scope Creep

“Dark matter” emerging during iteration

Planned work is squeezed out

Page 17: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Process Enacted By Tooling

Page 18: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Process Enacted In Cycles

Page 19: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Uncovered code by method

The lines in question

What Code Hasn’t Been Tested?

Unit tests for both application and database tiers

Page 20: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Down To The Individual Check-In

Check-in dialog captures the workitems resolved with the code(and tests) delivered

Policy makes sure that the association is made(and unit tests and code analysis have been run)

Page 21: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Build Verification Test results as part of the build process

Who checkedin what?

Automated release note: Why the work was delivered

And Up To The Team Build

Page 22: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Load test captures both test-generated data and metrics on the servers under test

Identify Performance Under Load In Time To Act…

Running the test with profiling pinpoints hotspots in code

Page 23: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Supporting Heterogeneous Development

Web Access Client for NON-development roles

Eclipse integration as partner solution for

heterogeneous environments

Page 24: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

We Document For The Auditor

…because there is a complete audit trail on all the tasks, code

and tests…

Capturing evidencedoes not have to be a

manual process, ...

Page 25: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

demoHow Microsoft Uses VSTS

Page 26: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Actual Feature Flow In Orcas (VS 2008)

Initial planning spike

Beta 1 planning review

Beta 2 review

Tightened process rules @ Beta 1 reduce WIP

Additional tightening @ Beta 2

Page 27: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Quality Gates

Quality Gates act as extended check-in policies, governing the quality of feature delivery into the main source code branch

Page 28: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Value Props, Experiences, And Features

Features are designed from Value Propositions and Experiences

Page 29: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Drilldown: Value Prop → Feature Status review rolls up features and

experiences back into value props to assess release readiness

Drilldown from value prop shows detailed feature status

Page 30: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Others Prefer To Review In VS…

Same value prop…

Page 31: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Or In Excel….

Same value prop…

Page 32: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Value Up: How It Feels

Page 33: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

The right thingDone rightIn the right way

PM

Arch

Test

Devs

DB

Looking Forward: The ‘10s

PMO Operations Designers Customers Business Analyst

PMOOperationsDesigners CustomersBusiness Analyst

PM

Arch Test Devs

DB

Page 34: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

How It Feels

The Wall Becomes a Bridge

Page 35: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Visual Studio Team System

Page 36: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.

Naked Self-PromotionFor More Information…

Page 37: Sam Guckenheimer samgu@microsoft.com Microsoft Corporation.