Lean Principles, Agile Techniques and Team System Joel Semeniuk Imaginet Microsoft MVP – Team...

Post on 24-Dec-2015

216 views 0 download

Tags:

Transcript of Lean Principles, Agile Techniques and Team System Joel Semeniuk Imaginet Microsoft MVP – Team...

Lean Principles, Agile Techniques and Team SystemJoel SemeniukImaginetMicrosoft MVP – Team SystemMicrosoft Regional Director

History Lesson

Kiichiro ToyodaSon of Sakichi Toyoda

Taiichi Ohno

Answered the Challenge – Developed a Method

Evolved Into Toyota Production System

1927: Toyoda Automatic Loom Works revolutionized the Loom – key, high precision, interchangeable parts

1945: Challenge Company to catch up to

America

Two Pillars of TMS

• Just-in-Time Flow• Completely against conventional wisdom• Found it to be the only model to effectively manage

complexity

• Autonomiation• Jidoka• Work is organized such that the slightest abnormality

is immediately detected• Once detected, work stops, cause of problem remedied

before work resumes• Organization has reflexes – respond instantly and

correctly to events without having to go to the “brain” for instruction.

From Then to Now

• TPS was ignored until oil crisis of 1973

• Slowdown filtered out average companies

• Soon, Japan was out producing America

Evolution

TPS Just InTime

Lean

LeanSuppl

y Chain

Prod Dev

Lean Software Development

Team System Review

Myth 1: Early Specs Reduce Waste

• Tell me everything you need up front because it will save us time reworking mistakes.

Not Adding

Value

Preventin

g Valu

e

Waste

Principle 1: Eliminate Waste

Recognize Value

Recognize Waste

Eliminate Waste

Principle 1: Eliminate Waste

Value Changes

Constantly

Principle 1: Eliminate Waste

Waste

Partially Done Work

Extra Features

RelearningHandoffs

Task Switching

Delays

Defects

P1: Partially Done Work• Also Called “Inventory”• Goal – develop, integrated, test, document,

deploy in a single, rapid flow• Examples :• Uncoded documentation – stale requirements• Unsynchronized code – unmerged branches in

source control• Untested code – writing code without a way to

detect defects creates partially done work• Undocumented code – done as code is written• Undeployed code – deploying as soon as possible

incrementally

P1: Partial Work – Good Practices

•Use fixed short duration iterationsDO•Tight control over branching and mergingDO•Always have a way of detecting defectsDO•Document code as it is writtenDO•Deploy as soon as the code is writtenDo

P1: Extra Features

• No Value? Don’t Develop It!• What’s bad about extra features?

Added Complexity

Added

Work

Added Maint

Added

Debug

P1: Extra Features – Good Practices •Use common senseDO

•Focus on customer’s job – !featuresDO•Be bias against adding featuresDO•Architect with good patternsDO

P1: Relearning• Forgetting

• People forget things• Make the same mistake twice• Rediscover things we have forgotten

• Ignoring• Not involving the right people during the

development process

• Problem• Documenting all design decisions as they are

made• This documentation is never looked at again• So, we just stop documenting all together

P1: Relearning – Good Practices

•Just in Time Learning•Do not have an inventory of things to forget

DO

•Continually involve the usersDO

•Capture learningDO

P1: Handoffs

• How do you hand off? Documentation?

• Tactical knowledge is key• Handoffs degrade tactical knowledge

P1: Handoff – Good Practices

•Reduce handoffsDO

•Use design-build teamsDO

•High bandwidth communicationDO

•Early releasesDO

P1: Task Switching

• Distracting & detracts from the result of both tasks

• Wasting time “resetting” context - Human’s aren’t CPU’s

• Humans are most efficient at 2 concurrent tasks

• Over 3 tasks and overall proficiency goes down

1 2 3 40

5

10

15

20

Efficiency

P1: Task Switching – Good Practices

•Rotate in/out maintenanceDO

•Carve off time during a day where team handle defects vs new featuresDO

•Set aside time to triage workDO

•Try to maintain a single code baseDO

P1: Delays

• Waiting for people who have information is wasteful

Question

Immediate

Answer

No

Waste

P1: Delays – Good Practices

• Complete, collocated teams DO

• Short iterations with regular feedbackDO

• Make sure knowledge source is available when and where neededDO

• If information isn’t immediately available• Stop, Switch, GuessDO

P1: Defects• Code + set of tests that do not let defects back

into code• Proves that the code does what we think it should

do and doesn’t fail the way we anticipate• Sign of a healthy agile team – very low defects

• Mistake proof code• Find defects early and ensuring they don’t come back

• Inspection to prevent defects is required• Inspection to find defects is a waste• Test harness allows safety net for further changes

P1: Defects – Good Practices

•Prevent or find defectsDO•Unit testingDO•Test Driven DevelopmentDO•Check-in policiesDO•Gated CheckinsDO•Continuous IntegrationDO•Continuous DeploymentDO

Reduce Waste and VSTSUnit Testing and Code Coverage*

Continuous Integration &

Extensible Build

Code Review Work Item

Traceability

Triage

Iteration Based Scheduling

Alerts

Unplanned Work

Prioritization

Myth 2: The Job of Testing is to Find Defects

Principle 2: Build Quality In

• Build quality in from the start• Avoid creating defects in the first place• Inspection to prevent defects is required• Inspection to find defects is a waste

• If you can’t prevent defects – inspect often

• When you find a defect• Fix it immediately• Put in a test so that it doesn’t come back

•Prevent or find defectsDO•Unit testingDO•Test Driven DevelopmentDO•Check-in policiesDO•Gated CheckinsDO•Continuous IntegrationDO•Continuous DeploymentDO

P2: Build Quality In – Good Practices

Built In Quality and VSTSUnit Testing and Code Coverage

Check-in Policies

Automated Web Testing

Extensible Build and Deploy

Myth 3: Predictions Create Predictability

• Plans MUST be an accurate prediction of the future, that is what planning is for – to accurately predict the future!!!!

Principle 3: Create Knowledge• Predictions about future will be wrong

if:• Complex• Detailed• About the Future• About an Uncertain Environment

• You can still be reliable even with uncertainty

• Predictions are not facts

P3: Knowledge – Good Practices

• Reduce response timeDO•Embrace software development as a knowledge creating processDO•Detailed design during codingDO•Expect design will evolveDO•Lock down design prematurelyDO NOT

P3: Knowledge – More Good Practices

•Early release of minimum featuresDO•Daily builds and integration testsDO•Choose a leader with experience and instinctsDO•Modular architectureDO•Optimize the Software Development ProcessDO

Knowledge and VSTSProcess

Improvement WIKI

Continuous Integration

Process Template

Modifications

Tracking Variance

with Work Items

Myth 4: Planning is Commitment• Planning is required, especially on

large government projects – how else can we get what we want?

Principle 4: Defer Commitment• “In preparing for battle I have

always found that plans are useless, but planning is indispensable”

Dwight Eisenhower

P4: Defer Commitment – Good Practices

•Decisions – wait until you have most infoDO•Try to make all decisions reversibleDO•System doesn’t need 100% flexibilityDO•Experiment with options, be openDO•Ensure planning not commitmentDO•Plan thoughtfully, commit sparinglyDO

Defer Commitment and VSTS “Spike”

Branches

Tracking Options

Myth 5: Haste Makes Waste

• You must take your time, plan, and ensure you do it right the first time…

Principle 5: Deliver Fast

• Companies that compete on time usually have significant cost advantage over competitors

FACT

P5: Deliver Fast – Good Practices

•Use tight feedback loopsDO

•Use Repeatable and reliable speed = quality and low wasteDO

•Have engaged, thinking people who make good decisions and help each other outDO

•Have standards! But constantly experiment to find better waysDO

Deliver Fast and VSTS

Process Guidance

Coding Conventions

Code Build Deploy

Code Analysis

Myth 6: There is one best way• For everything….

Principle 6: Respect People

• There is no “one best way”• There is no process that can’t get better• Never-ending continuous improvement

should be found in every team/organization

• Cornerstone to continuous improvement = PEOPLE

• Software engineering is primarily a PEOPLE process – embrace it

P6: 3 Cornerstones• Embrace Entrepreneurial Leader• Foster engaged, thinking people• Focuses efforts on creating a

great productDO

• Embrace Expert Technical Workforce• Continually develop and nurture

technical experience as a culture

DO

• Responsibility-Based Planning and Control• Give team general plans, reasonable goals

and trust to self-organize• Develop reflexive organization where

people think for themselves around common set of principles

DO

Respect People Review

Assigning Work Items to a Team

Myth 7: Optimize by Decomposition

Principle 7: Optimize the Whole• Optimizing parts <> optimize the

whole• Find a higher measure that will drive

the right results for the lower level metrics

P7: Optimize – Good Practices

•Value based process improvementDO•Refocus entire value stream often DO•Don’t be afraid to re-prioritize – look at all of the requirements as a wholeDO•Make time to TriageDO•Sprint Planning is a good exampleDO•Continually evolve your processesDO•Gather and processes metricsDO

Optimize the Whole and VSTSContinually

evolve work items

Continually Evolve Process

Templates

Reflect with Reports and

Analytics

Recap: The 7 Principles Are

• Eliminate Waste• Build Quality In• Create Knowledge• Defer Commitment• Deliver Fast• Respect People• Optimize the Whole

Some things I didn’t say

• Eliminate waste ≠ no documentation

• Amplify Learning ≠ keep changing your mind

• Decide as late as possible ≠ procrastinate

• Deliver as fast as possible ≠ rush and produce sloppy results

• Empower the team ≠ abandon leadership

• Build in quality ≠ big, upfront design

• Optimize the whole ≠ ignore details

Other Related Practices• Seeing Waste• Value Stream Mapping• Self-Based Development• Pull Systems• Queuing Theory• Motivation• Measurements

This All Fits TogetherLean

References For You

Of Course….

ME!

Book signing at 5:30

on Thursda

y

Thoughts? Questions?