Sam Guckenheimer Microsoft Corporation
(Kent Beck)
Dev Early tools focused on isolated tasks, such as source control Dev
Trustworthy Transparency bridges the team PMDevsDBTestArch PM DevsDBTest Arch
Lean Application Lifecycle
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 Remaining Work Plan Task 1 Task 2 Task 3 Task 4 Value Value Up
Work planned Work completed
Test rates (pass, inconclusive, fail) shown in bars Against code coverage, … code churn, … and active bugs
Happy families are all alike; every unhappy family is unhappy in its own way. Tolstoy, Anna Karenina Все счастливые семьи похожи друг на друга, каждая несчастливая семья несчастлива по-своему.
Underestimating Uneven Task Decomposition Solution Stuck in Testing Development Practices Too Loose Inadequate Unit Testing Tests Passing; Solution Doesn’t Work Too Little Testing Build Failures Scope Creep Resource Leaks
Steady rates of progress, but slope too shallow Slow progress leading to cuts in planned work, but not enough cuts
Bulge in resolved → Insufficient resources or inadequate quality from dev Bulge in resolved → Insufficient resources or inadequate quality from dev
Growing “Fault Feedback Ratio” – bugs requiring multiple handling
Rising Code Churn Falling Code Coverage Fewer Passing and More Inconclusive Tests
“Dark matter” emerging during iteration “Dark matter” emerging during iteration Planned work is squeezed out
Uncovered code by method The lines in question Unit tests for both application and database tiers
Check-in dialog captures the work items resolved with the code (and tests) delivered Policy makes sure that the association is made (and unit tests and code analysis have been run)
Build Verification Test results as part of the build process Who checked in what? Automated release note: Why the work was delivered
Load test captures both test- generated data and metrics on the servers under test Running the test with profiling pinpoints hotspots in code
Web Access Client for NON-development roles Eclipse integration as partner solution for heterogeneous environments
…because there is a complete audit trail on all the tasks, code and tests… Capturing evidence does not have to be a manual process,...
How Microsoft Uses VSTS
TFS 2008 SP1 25 instances in Production 15,761 Active Users in last 7 days 3,004 Team Projects TFS 2008 SP1 Usage Statistics 3,253,657 Work Items(1.3M 2/08) 54,212,547 Source Files(29.3M 2/08) 706,957 Team Builds (95K 2/08) TFS 2010 Internal Release 3 instances in Production running early Rosario bits 1,175 Active Users in last 7 days 15 Team Projects Microsoft Developer Division, Office, & Windows dogfooding Rosario since April 2007 Rosario Usage Statistics 216,899 Work Items(114K 2/08)
Initial planning spike Beta 1 planning review Beta 2 review Tightened process Beta 1 reduce WIP Additional Beta 2
Quality Gates act as extended check-in policies, governing the quality of feature delivery into the main source code branch
Features are designed from Value Propositions and Experiences
Status review rolls up features and experiences back into value props to assess release readiness Drilldown from value prop shows detailed feature status
Same value prop…
The right thing Done right In the right way PM Arch Test Devs DB PMO OperationsDesignersCustomersBusiness Analyst PMO Operations Designers Customers Business Analyst PM Arch Test Devs DB
The Wall Becomes a Bridge
For More Information…