2006_07_12_lean

Upload: raviram-naidu

Post on 04-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 2006_07_12_lean

    1/113

    www.netobjectives.com Net [email protected]

    software developmentsoftware development

    l e a n -l e a n -

    a g i l ea g i l eLean Software Development

    Speed Quality Low Cost

  • 8/13/2019 2006_07_12_lean

    2/113

    7/12/20062 Copyright2005 Net Objectives

    Alan Shalloway

    CEO, Net Objectives, CSM, Author

    Net Objectives offers training/coaching in allaspects of agile development

    Lean, ScrumAgile Analysis, Design Patterns, TDD, XP

    Training/Coaching Design Patterns, LeanSoftware Development, Test-DrivenDevelopment

  • 8/13/2019 2006_07_12_lean

    3/113

    July 063 Copyright2005 Net Objectives

    Fast Flexible

    Flow

    The Context For This Seminar

  • 8/13/2019 2006_07_12_lean

    4/1137/12/20064 Copyright2005 Net Objectives

    Lean Software Development

    Lean Software Development has the goal of deliveringas much value to your customer as quickly as possible inthe most efficient manner possible. The keywords hereare speed and low cost. Accomplishing thisrequires your team to have a commitment to continuous

    process improvement. This requires management to both respect and empower the people involved. Only theteam can create an effective process management mustfacilitate this not control them. Only by continuouslyimproving your process, increasing quality of both your

    products and your process, can you sustain the highspeed and resulting low cost.

  • 8/13/2019 2006_07_12_lean

    5/1137/12/20065 Copyright2005 Net Objectives

    What Is Lean Software Development?

    A combination of:Lean Thinking Fast, Flexible Flow (Womack, Jones)

    Toyotas Lean Principles applied in the software world(Poppendiecks)Knowledge Based Software Development (Kennedy)

    Based on:Toyotas Lean Production

    Toyotas Lean Product DevelopmentDemingTheory of Constraints

    Includes Knowledge Management, Mindfulness

  • 8/13/2019 2006_07_12_lean

    6/1137/12/20066 Copyright2005 Net Objectives

    Special Thanks

    To Mary and Tom Poppendieck Course was originally based on their materials.Mary & Tom Poppendieck Lean Software

    Development

    Mary & Tom Poppendieck Implementing Lean Software Development: From Concept to

    Cash

    http://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=bookshttp://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=books
  • 8/13/2019 2006_07_12_lean

    7/1137/12/20067 Copyright2005 Net Objectives

    Why Learn It?

    Complete foundation for agile.

    What if you dont?

  • 8/13/2019 2006_07_12_lean

    8/1137/12/20068 Copyright2005 Net Objectives

    What Is Different About Lean?

    Focused on delivering value quickly.

    A commitment to process improvement.A commitment to the people involved.

    Focusing on the whole not decomposing intosteps.

    Paying attention to the temporal nature of events.Being customer centric.

  • 8/13/2019 2006_07_12_lean

    9/1137/12/20069 Copyright2005 Net Objectives

    Overview

    Value to the customer in a timely manner.

    Optimize the WholeDeliver Fast

    Must continuously improve processPeople drive thisManagement facilitates it

  • 8/13/2019 2006_07_12_lean

    10/1137/12/200610 Copyright2005 Net Objectives

    Value to the Customer

    Time is an important element.

    Net Present Value (NPV) of software is not

    based on interest rates.

    l

  • 8/13/2019 2006_07_12_lean

    11/1137/12/200611 Copyright2005 Net Objectives

    Deliver System in Stages(When Possible)

    Concentrate on the known, valuable, features

    Customers are more certain about the mostvaluable features

    Gives value sooner Creates clarity for whats nextDevelopment team gains knowledge as they go

    Lowers risk Of building what you dont need

    Of overbuilding what you do need

  • 8/13/2019 2006_07_12_lean

    12/1137/12/200612 Copyright2005 Net Objectives

    A Financial Model

    Software by Number by MarkDenne and Jane Cleland-HuangSelf-Funding

    Breakeven

    I n v e s t m e n t

    P a y b a c k

    P r o f i t

    Time

    C o s t

    Copyright2005 Poppendieck.LLC

  • 8/13/2019 2006_07_12_lean

    13/113

    7/12/200613 Copyright2005 Net Objectives

    Staged Releases

    Time

    C

    o s t

    Release 1 ProfitRelease 2 Profit

    Total Profit

    Copyright2005 Poppendieck.LLC

  • 8/13/2019 2006_07_12_lean

    14/113

    7/12/200614 Copyright2005 Net Objectives

    Increased Profit

    Time

    C o s t

    Profit

    Investment

    B r e a k e v e n

    SingleRelease

    S e l f - F u n d i n g

    B r e a k e v e n

    Software by Number by MarkDenne and Jane Cleland-Huang

    Staged

    Releases

  • 8/13/2019 2006_07_12_lean

    15/113

    7/12/200615 Copyright2005 Net Objectives

    Doing the Most Important Half

    Standard development sequence

    Suggested development sequence

    Most important half of a feature

    Less important half of a feature

  • 8/13/2019 2006_07_12_lean

    16/113

    7/12/200616 Copyright2005 Net Objectives

    Doing the Most Important 25%

    Standard development sequence

    Suggested development sequence

    Most important quarter of a feature

    Less important quarter of a feature

  • 8/13/2019 2006_07_12_lean

    17/113

    July 0617 Copyright2005 Net Objectives

    Fast Flexible

    Flow

    Paradigm of Lean

  • 8/13/2019 2006_07_12_lean

    18/113

    7/12/200618 Copyright2005 Net Objectives

    Stop-the-Line Culture

    1. Detect every ambiguityDont work-around even the smallest problem

    2. Stop the line immediatelyCorrect the immediate condition if necessary

    3. Look for the root causeWhy? Why? Why? Why? Why?

    4. Determine the best countermeasureUse many simple experimentsMeasure results

    5. Make the countermeasure permanentConstant improvement = constant change

    6. Do not allow for work arounds

    Work arounds leave problems intact

    Copyright2005 Poppendieck.LLC

  • 8/13/2019 2006_07_12_lean

    19/113

    7/12/200619 Copyright2005 Net Objectives

    Develop Thinking People

    Software development requires people to solve problems.The team must understand the problem.They must be empowered to find the best solution.If you cant trust your people, you are in trouble.Trust local knowledge!

    People build the process!

    Copyright2005 Poppendieck.LLC

  • 8/13/2019 2006_07_12_lean

    20/113

    7/12/200620 Copyright2005 Net Objectives

    Lean A New Paradigm

    4 industrial paradigms

    Craft

    1800Interchangeable Parts -

    1900Interchangeable People Assembly line

    2000Engaged, thinking people - Lean

  • 8/13/2019 2006_07_12_lean

    21/113

    www.netobjectives.com Net [email protected]

    software developmentsoftware development

    l e a n -l e a n -

    a g i l ea g i l e

    Lean Thinking Lean SoftwareDevelopment

    Speed Quality Low Cost

  • 8/13/2019 2006_07_12_lean

    22/113

    7/12/200622 Copyright2005 Net Objectives

    An Integration

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    D e v e l o p

    m e n t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r e

    D e v e l o p

    m e n t

    Lean Thinking: Banish Waste and Create

  • 8/13/2019 2006_07_12_lean

    23/113

    7/12/200623 Copyright2005 Net Objectives

    Lean Thinking: Banish Waste and CreateWealth in Your Corporation

    By Womack and Jones. 1996, 2003.

    Another way to look at lean includes both products and services.

    They define 5 principles:ValueThe Value StreamFlowPull

    Perfection

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Principles of Lean

  • 8/13/2019 2006_07_12_lean

    24/113

    7/12/200624 Copyright2005 Net Objectives

    Principles of LeanSoftware Development

    Optimize the Whole

    Eliminate Waste

    Build Quality In

    Defer Commitment

    Respect People Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

  • 8/13/2019 2006_07_12_lean

    25/113

    7/12/200625 Copyright2005 Net Objectives

    A Reassessment

    Speed

    Quality Low Cost

    All three are essential

    Starting with low cost:Has limited value

    Causes poor decisionsStarting with speed gives insights

    Requires quality for sustainabilitySpeed and quality results in lower cost

  • 8/13/2019 2006_07_12_lean

    26/113

    July 0626 Copyright2005 Net Objectives

    Fast Flexible

    Flow

    Value

    L Thi ki VALUE

  • 8/13/2019 2006_07_12_lean

    27/113

    7/12/200627 Copyright2005 Net Objectives

    Lean Thinking - VALUE

    Value is what the customer wants.

    What they are willing to pay for.What you are trying to produce.

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    I A il /S

  • 8/13/2019 2006_07_12_lean

    28/113

    7/12/200628 Copyright2005 Net Objectives

    In Agile/Scrum

    Focus on customer

    Requires a product owner

    L Thi ki THE VALUE STREAM

  • 8/13/2019 2006_07_12_lean

    29/113

    7/12/200629 Copyright2005 Net Objectives

    Lean Thinking THE VALUE STREAM

    The flow from beginning to end of creating the

    value.Often cuts across companies, virtually alwayscuts across organizations.

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    S ti l V l St

  • 8/13/2019 2006_07_12_lean

    30/113

    7/12/200630 Copyright2005 Net Objectives

    Sequential Value Stream

    Q85

    8 wksApprove

    5 min

    Q8

    2 wksRequest

    30 min

    Reqts2 wks value2 wks waste

    Q40

    8 wksSign Off

    1 hr

    Q8

    2 wks

    Q8

    2 wks

    Q32

    4 wksReview

    2 hrs

    Q8

    2 wks

    Q24

    2 wks

    Q18

    2 wks

    Deploy3 hrs

    65% DefectiveRepeat 3X

    20% RejectedRepeat 1X

    Analysis1.5 wks value

    1 wk waste

    Design1 wk value

    2 wks waste

    Code2 wks value.5 wks waste

    Test1 wk value.5 wk waste

    65% Defective

    Process Cycle Efficiency =Value Added Time

    Total Cycle Time= 17%=

    345 hrs

    2000 hrs

    20% Rejected

    Copyright2005 Poppendieck.LLC

    T l F

  • 8/13/2019 2006_07_12_lean

    31/113

    7/12/200631 Copyright2005 Net Objectives

    Temporal Focus

    Timing is important

    Focusing on delays uncovers problemsUltimately, we want to optimize the whole

    Focusing on:DelaysTask switching (which cause delays)

    gives insights into speeding up the process andeliminating waste.

    Principles of

  • 8/13/2019 2006_07_12_lean

    32/113

    7/12/200632 Copyright2005 Net Objectives

    pLean Software Development

    Optimize the Whole

    Eliminate Waste

    Build Quality In

    Defer Commitment

    Respect People Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Principle: Optimize the Whole

  • 8/13/2019 2006_07_12_lean

    33/113

    7/12/200633 Copyright2005 Net Objectives

    Principle: Optimize the Whole

    Vicious Cycle #2:Vicious Cycle #2:1. Testing is overloaded with work 2. Result: Testing occurs long after coding3. Result: Developers dont get immediate feedback 4. Result: Developers create more defects

    5. Result: Testing has more work. Systems have more defects.6. Result: Feedback to developers if delayed further. Repeat cycle.

    Vicious Cycle #1:Vicious Cycle #1:1. A customer wants some new features yesterday2. Developers hear: Get it done fast, at all costs!3. Result: Sloppy changes are made to the code base4. Result: Complexity of code base increases5.

    Result: Number of defects in code base increases6. Result: Exponential increase in time to add features

    Copyright2005 Poppendieck.LLC

    Myth: Optimize through Decomposition

  • 8/13/2019 2006_07_12_lean

    34/113

    7/12/200634 Copyright2005 Net Objectives

    Myth: Optimize through Decomposition

    DecompositionYou get what you measure

    You cant measure everythingStuff falls between the cracksYou add more measurementsYou get local sub-optimization

    ExampleMeasure Cost, Schedule, & Scope

    Quality & Customer Satisfactionfall between the cracksMeasure these too!

    AggregationYou get what you measure

    You cant measure everythingStuff falls between the cracksYou measure UP one levelYou get global optimization

    ExampleMeasure Cost, Schedule, & Scope

    Quality & Customer Satisfactionfall between the cracksMeasure Business Value withP&L or ROI instead.

    From to ! From to!

    Measure UP

  • 8/13/2019 2006_07_12_lean

    35/113

    7/12/200635 Copyright2005 Net Objectives

    Measure UP

    Span of InfluenceHold people accountable for

    what they can influenceMeasure at the team levelFosters collaboration

    Product Manager Everyone in the company

    knows that their job dependsupon delighting customers.

    Span of ControlHold people accountable for what

    they can control Measure at the individual levelFosters competition

    Testing Manager We cant let testers write

    tests before developers writecode. If we did that, thedevelopers would simply

    write code to pass the tests!Copyright2005 Poppendieck.LLC

  • 8/13/2019 2006_07_12_lean

    36/113

    July 0636 Copyright2005 Net Objectives

    Fast Flexible

    Flow

    FLOW

    Lean Thinking FLOW

  • 8/13/2019 2006_07_12_lean

    37/113

    7/12/200637 Copyright2005 Net Objectives

    Lean Thinking - FLOW

    Improving flow increases value as well as

    decreasing waste.All impediments to flow are waste.

    Just-in-Time Flow

  • 8/13/2019 2006_07_12_lean

    38/113

    7/12/200638 Copyright2005 Net Objectives

    Just-in-Time Flow

    Value should be added in a smooth flow

    There should be no impedimentsSteps should not be required to waitThere should never be large inventories or queues

    Large queues and inventories hide problems to flowPoor flow does not allow for quick deliveryPoor flow does not allow for flexibility

    Hides quality problemsCopyright2005 Poppendieck.LLC

    Principles of

  • 8/13/2019 2006_07_12_lean

    39/113

    7/12/200639 Copyright2005 Net Objectives

    Lean Software Development

    Optimize the Whole

    Eliminate Waste

    Build Quality In Defer Commitment

    Respect People Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Principle:

  • 8/13/2019 2006_07_12_lean

    40/113

    7/12/200640 Copyright2005 Net Objectives

    Eliminate Waste

    Waste is anything that does not add customer valueWaste is anything that does not add customer valueCustomers wouldnt choose to pay for it.Doesnt add to the knowledge needed to develop a product.

    Waste is anything that has been started but is not being used in production.

    Waste is anything that delays developmentor keeps people waiting.

    Waste is any extra featuresthat are not needed now.

    Waste is making the wrong thingor making the thing wrong.

    Copyright2005 Poppendieck.LLC

    Eliminate Waste

  • 8/13/2019 2006_07_12_lean

    41/113

    7/12/200641 Copyright2005 Net Objectives

    Eliminate Waste

    Put on Customer Glasses

    Copyright2005 Poppendieck.LLC

    The Seven Wastes

  • 8/13/2019 2006_07_12_lean

    42/113

    7/12/200642 Copyright2005 Net Objectives

    The Seven Wastes

    The Seven Wastes of ManufacturingThe Seven Wastes of Manufacturing-- Shigeo ShingoShigeo Shingo

    1. Inventory2. Processing

    3. Overproduction4. Motion

    5. Transportation6. Waiting

    7. DefectsCopyright2005 Poppendieck.LLC

    The Seven Wastes

  • 8/13/2019 2006_07_12_lean

    43/113

    7/12/200643 Copyright2005 Net Objectives

    The Seven Wastes

    1. Partially Done Work 2. Paperwork

    3. Extra Features

    The 7 Wastes ofThe 7 Wastes ofSoftware DevelopmentSoftware Development

    The Seven Wastes of ManufacturingThe Seven Wastes of Manufacturing-- Shigeo ShingoShigeo Shingo

    1. Inventory2. Processing

    3. Overproduction4. Motion

    5. Transportation6. Waiting

    7. Defects

    The task then is to refine the code base tobetter meet customer need. If that is not clear,the programmers should not write a line of code.Every line of code costs money to write and moremoney to support. It is better for the developersto be surfing than writing code that won't beneeded. If they write code that ultimately is notused, I will be paying for that code for the lifeof the system, which is typically longer than myprofessional life. If they went surfing, they wouldhave fun, and I would have a less expensivesystem and fewer headaches to maintain.

    -- Jeff Sutherland, CTO PatientKeeperCopyright2005 Poppendieck.LLC

    The Seven Wastes

  • 8/13/2019 2006_07_12_lean

    44/113

    7/12/200644 Copyright2005 Net Objectives

    The Seven Wastes

    1. Partially Done Work 2. Paperwork

    3. Extra Features4. Task Switching

    5. Handoffs6. Delays

    7. Defects

    The 7 Wastes ofThe 7 Wastes ofSoftware DevelopmentSoftware Development

    The Seven Wastes of ManufacturingThe Seven Wastes of Manufacturing-- Shigeo ShingoShigeo Shingo

    1. Inventory2. Processing

    3. Overproduction4. Motion

    5. Transportation6. Waiting

    7. DefectsCopyright2005 Poppendieck.LLC

    Principles ofL S f D l

  • 8/13/2019 2006_07_12_lean

    45/113

    7/12/200645 Copyright2005 Net Objectives

    Lean Software Development

    Optimize the Whole

    Eliminate Waste Build Quality In

    Defer Commitment

    Respect People Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Ask Any Development Team

  • 8/13/2019 2006_07_12_lean

    46/113

    7/12/200646 Copyright2005 Net Objectives

    y p

    Q: Where do you spend most of your time?A: Fixing bugs

    Why?Because the quality of their code is poor.

    Because 60-80% of the work done on a software product is inmaintenance , yet we dont focus on this during its developmentBecause Waterfall methods is not long-term thinking it is short-

    term thinking: Get it out as soon as possible without regard to thecustomers opinion or the codes quality

    But Developers Are Wrong( t l t b t thi )

  • 8/13/2019 2006_07_12_lean

    47/113

    7/12/200647 Copyright2005 Net Objectives

    (at least about this)

    They dont actually spend much time fixing bugs

    They spend their time in finding bugsBecause their code is hard to understand.Their code is inter-connected and hard to modifyA lot of this happens because of the Emperors Clothesmentality that they are doing it right the first time and

    wont have to change it.

    Move Inspection Forward

  • 8/13/2019 2006_07_12_lean

    48/113

    7/12/200648 Copyright2005 Net Objectives

    p

    The job of testing is to prevent defects If you are focused on finding defects you are not doing your job.

    A quality process builds quality into the code

    If you routinely find defects during verification your process is defective.

    Defects are not caused by developers Defects are caused by a systemwhich allows defects. Defects are a management problem.

    Copyright2005 Poppendieck.LLC

    Types of Testing

  • 8/13/2019 2006_07_12_lean

    49/113

    7/12/200649 Copyright2005 Net Objectives

    yp g

    AcceptanceAcceptanceTestsTests

    Business Intent(Design of the Product)

    UsabilityUsabilityTestingTesting

    ExploratoryExploratoryTestingTesting

    UnitUnit

    TestsTestsDeveloper Intent

    (Design of the Code)

    PropertyProperty

    TestingTestingResponse,Security

    Scaling,

    F r o m

    B r i a n

    M a r i c k

    Technology Facing

    Business Facing

    S u p p o r t

    P r o g r a m m

    i n g

    C r i t i q u e

    P r o d u c t

    Automated Manual

    Automated Tool-Based

    Copyright2005 Poppendieck.LLC

    Testing Is Validation

  • 8/13/2019 2006_07_12_lean

    50/113

    7/12/200650 Copyright2005 Net Objectives

    g

    We have to validate

    That we understand what is neededThat we did what we wantedThat the product is of sufficient quality

    We must push testing up early.Tests improve the conversation betweencustomers and developers.

    Tests become executable specifications.

    Why Test?

  • 8/13/2019 2006_07_12_lean

    51/113

    7/12/200651 Copyright2005 Net Objectives

    The job of tests, and the people that develop and run tests,is to prevent defects, not to find them. A quality assuranceorganization should champion processes which build qualityinto code from the start, rather than test quality in later.This is not to say that verification is unnecessary. Finalverification is a good idea; its just that finding defects

    should be the exception, not the rule, during verification. Ifverification routinely triggers test-and-fix cycles, then thedevelopment process is defective.

    - Implementing Lean Software Development: From Concept to Cash,Mary and Tom Poppendieck.

  • 8/13/2019 2006_07_12_lean

    52/113

    July 0652 Copyright2005 Net Objectives

    Fast

    Flexible

    Flow

    PULL

    Lean Thinking - PULL

  • 8/13/2019 2006_07_12_lean

    53/113

    7/12/200653 Copyright2005 Net Objectives

    Pull in simplest terms means that no one

    upstream should produce a good or service untilthe customer downstream asks for it, but actuallyfollowing this rule in practice is a bit morecomplicated.

    - Lean Thinking, Womack and Jones.

    Empirical or Deterministic?

  • 8/13/2019 2006_07_12_lean

    54/113

    7/12/200654 Copyright2005 Net Objectives

    Software Development is inherently a non-

    deterministic process.Doesnt mean cant be controlled.

    Means cant be managed completely through prediction.Must react and adapt.Basis for Scrum and other Agile methods.

    Principles ofLean Software Development

  • 8/13/2019 2006_07_12_lean

    55/113

    7/12/200655 Copyright2005 Net Objectives

    Lean Software Development

    Optimize the Whole

    Eliminate Waste Build Quality In

    Defer Commitment

    Respect People Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Principle 4: Defer Commitment

  • 8/13/2019 2006_07_12_lean

    56/113

    7/12/200656 Copyright2005 Net Objectives

    p

    Typically, decisions are made too early .

    We dont want to make decisions that arbitrarilyconstrain our solution

    Happens if dont have all the informationDefer decisions that we dont need to make now

    Dont wait too longThat wouldnt be responsible or safe!

    Copyright2005 Poppendieck.LLC

    Early Decisions Cause Waste

  • 8/13/2019 2006_07_12_lean

    57/113

    7/12/200657 Copyright2005 Net Objectives

    Premature decisions wont have all theinformation available later.Getting information before its needed means:

    Youll need to get it again later You wont use the most up to date information later

    Deciding When To Decide

  • 8/13/2019 2006_07_12_lean

    58/113

    7/12/200658 Copyright2005 Net Objectives

    PilotsIn Pilot training, we learned that when we had tomake a decision, we should first decide when thedecision should be made, then when the time comes,make the decision based on the availableinformation.

    Military

    One of the most important thing I taughtyoung recruits is that when they were threatened,they should decide on the timebox for a response, and

    not respond until the end of the timebox.Copyright2005 Poppendieck.LLC

    Lean Thinking - PERFECTION

  • 8/13/2019 2006_07_12_lean

    59/113

    7/12/200659 Copyright2005 Net Objectives

    Provides the vision for continuously improving

    your value stream to increase flow, decreasewaste and add value to the customer.

    Improve Process

  • 8/13/2019 2006_07_12_lean

    60/113

    7/12/200660 Copyright2005 Net Objectives

    Discover what customer needs.

    Go to root causeAlways have a process

    But improve itProcess become baseline for changeMust incorporate knowledge management techniquesto both discover and retain knowledge

    Applying Lean thinking

  • 8/13/2019 2006_07_12_lean

    61/113

    7/12/200661 Copyright2005 Net Objectives

    Applying Lean thinking to manufacturing creates

    a Production System which creates many of thesame type defect free, but which canaccommodate many typesApplying Lean Thinking to Softwaredevelopment creates a Production Process which

    accommodates and creates many types ofsoftware near defect free

    Principles ofLean Software Development

  • 8/13/2019 2006_07_12_lean

    62/113

    7/12/200662 Copyright2005 Net Objectives

    Lean Software Development

    Optimize the Whole

    Eliminate Waste Build Quality In

    Defer Commitment

    Respect People Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    Copyright2005 Poppendieck.LLC

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Principle:Respect People

  • 8/13/2019 2006_07_12_lean

    63/113

    7/12/200663 Copyright2005 Net Objectives

    p p

    Only after American carmakers had exhausted

    every other explanation for Toyotas success an undervalued yen, a docile workforce, Japanese culture, superior automation were they finally able to admit that Toyotas realadvantage was its ability to harness the intellect

    of ordinary employees.Management Innovation by Gary Hamel, Harvard Business Review , February, 2006

    Copyright2005 Poppendieck.LLC

    Enable Local Decisions

  • 8/13/2019 2006_07_12_lean

    64/113

    7/12/200664 Copyright2005 Net Objectives

    When to Plant MaizeLocal authority Squanto

    Advice plant corn when the oak leaves were the size of a squirrels earActually, many factors involved this just the trigger

    Universal Measure Fanners AlmanacTypical local edition would be planting corn in May after the first fullmoon or after May 20.Requires adjustment, even by region.

    Is safer but loses planting timeSeafaring Captains use Pilots when get close to a harbor Airlines

    Flight AttendantsCopyright2005 Poppendieck.LLC

    Myth:There is One Best Way

  • 8/13/2019 2006_07_12_lean

    65/113

    7/12/200665 Copyright2005 Net Objectives

    y

    Frederick Winslow Taylor:Grandfather of the ProcessPolice

    Taylors View of EfficiencyEmployers get higher profitsWorkers get higher pay

    But Scientific ManagementAffronts human dignity

    Discourages worker creativity

    Copyright2005 Poppendieck.LLC

    The Eighth Waste Lost Knowledge

  • 8/13/2019 2006_07_12_lean

    66/113

    7/12/200666 Copyright2005 Net Objectives

    Knowledge discovered but not shared

    Person who needed it didnt look Person who knew it wasnt consulted

    Knowledge forgotten

    Principles ofLean Software Development

  • 8/13/2019 2006_07_12_lean

    67/113

    7/12/200667 Copyright2005 Net Objectives

    p

    Optimize the Whole

    Eliminate Waste Build Quality In

    Defer Commitment

    Respect People Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    Copyright2005 Poppendieck.LLC

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Software Development As ProductDevelopment ~c

  • 8/13/2019 2006_07_12_lean

    68/113

    7/12/200668 Copyright2005 Net Objectives

    p

    Software is more of a discovery process.

    Parallels the work of designing a product prior tomanufacturing.A useful definition of Product Development is that itis the collective activities, or system, that a companyuses to convert its technology and ideas into a streamof products that meet the needs of customer and thestrategic goals of the company Product Developmentfor the Lean Enterprise, Michael Kennedy.

    Principle:Create Knowledge

  • 8/13/2019 2006_07_12_lean

    69/113

    7/12/200669 Copyright2005 Net Objectives

    One Year Later.

    Get requirementsPlan it all out

    Scientific Method

    Do something, see how itworked

    Alan MacCormack

    Harvard Business School

    A Tale of Two Projects

    Not ConsistentModify Hypothesis

    ConsistentPublish Results

    New Knowledge

    Obser-vations

    Predic-tionsTests

    Hypothesis

    Copyright2005 Poppendieck.LLC

    One Year Later

  • 8/13/2019 2006_07_12_lean

    70/113

    7/12/200670 Copyright2005 Net Objectives

    Team that figured it outPoor productivity

    Poor market acceptancePoor expert quality rating

    Team that tried and learnedGreat market success

    Alan MacCormack Harvard Business School

    Copyright2005 Poppendieck.LLC

    Iterative Development

  • 8/13/2019 2006_07_12_lean

    71/113

    7/12/200671 Copyright2005 Net Objectives

    Review Meeting

    featuresdesirable

    list of Prioritized

    Backlog:

    Deployment

    Stories

    Planning Meeting

    Daily

    One Iteration

    Ahead

    Every 2-4

    Weeks

    Iteration

    Execution

    Iteration

    Planning

    Deployment- Ready

    Software

    Copyright2005 Poppendieck.LLC

    Principles ofLean Software Development

  • 8/13/2019 2006_07_12_lean

    72/113

    7/12/200672 Copyright2005 Net Objectives

    Optimize the Whole

    Eliminate Waste Build Quality In

    Defer Commitment

    Respect People

    Create Knowledge

    Deliver Fast

    Speed

    Quality Low Cost

    Copyright2005 Poppendieck.LLC

    F a s t F l e x i b l e

    F l o w

    Lean-Agile

    L e a n

    S o f t w

    a r e

    e v e l o

    p m e n

    t A g i l e

    K n o w

    l e d g e

    B a s e

    d S o f

    t w a r

    D e v e l o p

    m e

    Case Study - PatientKeeper

  • 8/13/2019 2006_07_12_lean

    73/113

    7/12/200673 Copyright2005 Net Objectives

    Speed to market45 cycles while competition does one

    Maintenance releases once or twice a week

    New feature releases every month New applications released every quarter

    Predictable Delivery Never a late releaseProblems are seen long before the release dateThe company self-organizes around the problems

    Pull from DemandPriorities reorganized on a weekly basis by CEO, sales, and account managementCustomer impact and schedule impacts are dealt with at the time of the decision

    No Abnormalities because rapid cycle time:Eliminates buggy software because you die if you don't fix thisFixes the install process because you have to install 45 releases a year Improves the upgrade process because of a constant flow of mandatory upgrades

    It forces standardization of software via new features rather than customization

    Jeff SutherlandCTO PatientKeeper

    Copyright2005 Poppendieck.LLC

    Myth:Haste Makes Waste

  • 8/13/2019 2006_07_12_lean

    74/113

    7/12/200674 Copyright2005 Net Objectives

    Companies that compete on the basis of speed:Enjoy a significant cost advantage relative to peers

    A 25-30% cost advantage is typical.Dell claims a 50% cost advantage.

    Have extremely low defect ratesIt is impossible to go fast unless quality is high.Attacking quality issues is the first step for going faster.

    Develop a deep customer understandingFast companies can take an experimental approach to

    product developmentFast companies fail fast and learn quickly

    Have a sustainable competitive advantage.Copyright2005 Poppendieck.LLC

  • 8/13/2019 2006_07_12_lean

    75/113

  • 8/13/2019 2006_07_12_lean

    76/113

    www.netobjectives.com Net [email protected]

    software developmentsoftware development

    l e a n -l e a n -a g i l ea g i l e

    Lean-Agile Connection Agility In The Context of Lean

    Lean Process

  • 8/13/2019 2006_07_12_lean

    77/113

    7/12/200677 Copyright2005 Net Objectives

    Lets contrast a software development process based on the notion you can plan ahead (classic push) with one based on Lean (a classic pull system).

    Building Functionality With The WaterfallMethodology

  • 8/13/2019 2006_07_12_lean

    78/113

    7/12/200678 Copyright2005 Net Objectives

    Waterfall method has us do the following:Significant requirements conversationsVirtually complete analysis of the use casesDevelop an architecture for the applicationCreate local designsImplement the designs

    Test the code (if there is time remaining)

    Waterfall: Use Cases, Stories and Architecture

  • 8/13/2019 2006_07_12_lean

    79/113

    7/12/200679 Copyright2005 Net Objectives

    Class1

    Class2

    Class3

    Class4 Class5

    Class1

    Class2

    Class3

    Class4 Class5

    Define our use casesComplete our analysisBreak out into stories

    Analyzed Architected Designed

    CdCc

    Ca

    Cb

    Class1

    Class2

    Class3

    Class4 Class5

    U s e C a s e s

    S t o r i e sArchitect the System

    Refine the design

    Waterfall: From Architecture Through Test

  • 8/13/2019 2006_07_12_lean

    80/113

    7/12/200680 Copyright2005 Net Objectives

    Define our use casesComplete our analysisBreak out into stories

    Analyzed Architected Designed Coded Tested

    Architect the System

    Refine the designFinish CodingFinish Testing

    U s e C a s e s

    S t o r i e s

    Waterfall: Wheres The Problem?

  • 8/13/2019 2006_07_12_lean

    81/113

    7/12/200681 Copyright2005 Net Objectives

    Stories by work typeTimeline of workWheres the waste?

    Analyzed Architected Designed Coded Tested

    Delays

    Task SwitchingWork in progress

    S t o r i e s

    Predictability

  • 8/13/2019 2006_07_12_lean

    82/113

    7/12/200682 Copyright2005 Net Objectives

    Future product development tasks are driven primarily by the results of the prior tasks, andtherefore cant be predetermined. A better

    paradigm is to distribute the planning and control

    to those who understand and can react to theinterim results.

    Lean: Story Centric ProcessIteration Planning

  • 8/13/2019 2006_07_12_lean

    83/113

    7/12/200683 Copyright2005 Net Objectives

    Define our use casesInitial analysisIdentify some stories

    S t o r i e sSelect stories to work on

    Do Commonality-Variability Analysis

    U s e C a s e s

    Lean: How To Pick Stories

  • 8/13/2019 2006_07_12_lean

    84/113

    7/12/200684 Copyright2005 Net Objectives

    Pick Stories to:Mitigate risk

    Help select system architectureTo build application architecture

    Customer feedback requiredBuild most valuable software for customers

    Lean: Iteration Build The Stories

  • 8/13/2019 2006_07_12_lean

    85/113

    7/12/200685 Copyright2005 Net Objectives

    Stories by work typeTimeline of work

    Analyzed

    ArchitectedDesigned

    Coded

    Tested

    S t o r i e s

    No delaysNo task-switchingLittle work in progress

    Opportunity to AdjustNew stories become availableStories become re-prioritized

    Lean Thinking In Agile

  • 8/13/2019 2006_07_12_lean

    86/113

    7/12/200686 Copyright2005 Net Objectives

    Incremental product (stories) built a la teamswarm work cells.Use TOC to improve the process as you movealong the project.People have no flexibility in following the

    process, but they have complete flexibility in

    defining the processat least within the context of management goals andguidelines.

    The Lean-Agile Connection

  • 8/13/2019 2006_07_12_lean

    87/113

    7/12/200687 Copyright2005 Net Objectives

    Use Lean Thinking to:Help decide/speed the process in which projects to build

    Value Stream Maps

    Create cross-functional teamsThink Work-CellsOptimizing the whole

    Use Lean Software Development:Build stories in a low-cost, high quality manner

    Use agile methods to:Iterations with replanningSynchronize stories

    Create Management Visibility

    The Purpose of Iterations

  • 8/13/2019 2006_07_12_lean

    88/113

    7/12/200688 Copyright2005 Net Objectives

    Iterations allow us to:Coordinate separate storiesCoordinate planning sessionsGet feedback to customers at predictable times

    Synchronize story productionCreate visibility to management.

    Iterations give the opportunity to adjust betweenthem.

    Flow in Software

  • 8/13/2019 2006_07_12_lean

    89/113

    7/12/200689 Copyright2005 Net Objectives

    Get a feature describedDefine test for its acceptanceBuild itTest it

    Validate it

    Remove impediments from this flow

    Requires system of small, prioritized, stories.

  • 8/13/2019 2006_07_12_lean

    90/113

    www.netobjectives.com Net [email protected]

    software developmentsoftware development

    l e a n -l e a n -a g i l ea g i l e

    Impediments to Lean

  • 8/13/2019 2006_07_12_lean

    91/113

    91 Copyright , 2006 Net Objectives 5/15/2006

  • 8/13/2019 2006_07_12_lean

    92/113

    Command And Control

  • 8/13/2019 2006_07_12_lean

    93/113

    7/12/200693 Copyright2005 Net Objectives

    ViolatesRespect peopleCreate knowledgeDefer commitment

    Eliminate waste (causes waste)

    Ignores reality that software development is not a

    deterministic process

    Work-Arounds Vs. Fixing Root Causes

  • 8/13/2019 2006_07_12_lean

    94/113

    7/12/200694 Copyright2005 Net Objectives

    Continues wasteful practices

    Disrespects peoples timeCreates an attitude that eliminating waste isntimportantCant improve ongoingly

    Perhaps the Biggest

  • 8/13/2019 2006_07_12_lean

    95/113

    7/12/200695 Copyright2005 Net Objectives

    Software is different from other industriesWe therefore believe we cant learn from otherindustriesWe therefore cant learn about lean because even

    though it works elsewhere, it wont work here

    Imagine

    Back in the 80s when it was clear Toyota was doing

  • 8/13/2019 2006_07_12_lean

    96/113

    7/12/200696 Copyright2005 Net Objectives

    Back in the 80s, when it was clear Toyota was doingsomething different, instead of this attitude:Oh, thats because they are Japanese, they work harder andlisten to what their managers tell them besides We therefore cant use what they have developed

    We said:Oh, they are doing something correctly. Maybe we shouldlearn their techniques, thoughts, process, paradigm, and seeif we can improve our own.

    What would the automotive industry look like now?

    Now imagine, what if we in software development say What can we learn from Lean, now?Where will we be in 20 years?

    Influence Diagram

  • 8/13/2019 2006_07_12_lean

    97/113

    7/12/200697 Copyright2005 Net Objectives

    ll e a n -

  • 8/13/2019 2006_07_12_lean

    98/113

    www.netobjectives.com Net [email protected]

    software developmentsoftware development

    l e a n -a g i l ea g i l e

    Thank You! More Information: www.netobjectives.com and

    www.poppendieck.com

    A Short List of Books1. Taiichi Ohno Toyota Production System

  • 8/13/2019 2006_07_12_lean

    99/113

    7/12/200699 Copyright2005 Net Objectives

    2. Mary & Tom Poppendieck Lean Software Development

    3. Mary & Tom Poppendieck Implementing Lean Software Development: FromConcept to Cash

    4. Michael Kennedy Product Development in the Lean Enterprise

    5. Mike Cohn Agile Estimating and Planning

    6. Mugridge & Cunningham Fit for Developing Software

    7. William Bridges Managing Transitions

    8. Geoffrey Moore Dealing with Darwin

    Copyright2005 Poppendieck.LLC

    Net Objectives Who We Are

    Vision : Effective software development without suffering

    http://www.amazon.com/exec/obidos/ASIN/0915299143/ref=ase_thenorthwestleanhttp://www.amazon.com/gp/reader/0738208248/ref=sib_dp_pt/103-9805499-1641469http://www.amazon.com/gp/product/images/0321437381/ref=dp_image_0/103-9805499-1641469?%5Fencoding=UTF8&n=283155&s=books
  • 8/13/2019 2006_07_12_lean

    100/113

    7/12/2006100 Copyright2005 Net Objectives

    Vision : Effective software development without suffering.Mission : To assist companies in maximizing the businessvalue returned from their efforts in software development

    and maintenance. We do this by providing training,coaching, and consulting that both directly assists andempowers our customers to create and sustain this ability.

    Our staff: Includes several recognized experts in the area ofScrum, Use Cases and Design Patterns.Our expertise includes:

    Lean Software DevelopmentAgile methods (Scrum, XP, RUP)Agile AnalysisDesign Patterns

    Test-Driven Development

    Net Objectives Community of Practice

    We provide a public forum for discussion of topics

  • 8/13/2019 2006_07_12_lean

    101/113

    7/12/2006101 Copyright2005 Net Objectives

    We provide a public forum for discussion of topicsincluding:Design patterns

    Agile methods (including XP, Scrum, RUP)Use casesEmergent design

    We also have several books under development on-line forreview by the community.Go to http://www.netobjectivesgroups.com for moreinformation.To subscribe to our e-zine, go tohttp://www.netobjectives.com/subscribe.htm and fill out ouronline subscription form.

    Upcoming Free Seminars

    http://www.netobjectivesgroups.com/http://www.netobjectives.com/subscribe.htmhttp://www.netobjectives.com/subscribe.htmhttp://www.netobjectives.com/subscribe.htmhttp://www.netobjectivesgroups.com/
  • 8/13/2019 2006_07_12_lean

    102/113

    7/12/2006102 Copyright2005 Net Objectives

    Executive Briefing On Agile Software

    Development June 7, Seattle

    See http://www.netobjectives.com/events/pr_main.htm

    for more information

    Upcoming Public Coursesin California

    f

    http://www.netobjectives.com/events/pr_main.htmhttp://www.netobjectives.com/events/pr_main.htm
  • 8/13/2019 2006_07_12_lean

    103/113

    7/12/2006103 Copyright2005 Net Objectives

    ScrumMaster Certification Aug 7-8The Product Owner: Managing Agile Requirements Aug 9-10

    Design Patterns Explained Aug 15-17ScrumMaster Certification Oct 10-11The Product Owner: Managing Agile Requirements Oct 12-13

    All courses 9am-5pm

    See http://www.netobjectives.com/events/pr_main.htmfor more information

    Overview of Training Lean Software Development

    Lean Software Development: A Practitioners CourseLean Software For Managers

    http://www.netobjectives.com/events/pr_main.htmhttp://www.netobjectives.com/events/pr_main.htm
  • 8/13/2019 2006_07_12_lean

    104/113

    7/12/2006104 Copyright2005 Net Objectives

    Lean Software For ManagersAgile/Scrum

    Certified ScrumMaster TrainingCertified Product Owner: Managing Agile Requirements

    Introduction to ScrumAgile AnalysisEffective Use Case AnalysisAgile Use Case Analysis

    Design Patterns

    Design Patterns ExplainedTest-Driven Development

    Test-Driven Development: Iterative Development With Refactoringand Unit-Testing

    Effective Programming

    Effective Object-Oriented Analysis and DesignEffective Agile ProgrammingASP.NET

    Effective ASP.NETTest-Driven ASP.NET

    Integrated CustomAgile Software Development with Design Patterns

    Business/Corporate PerspectiveLean Software Development

    Lean Software Development: A Practitioners Course. Of themany methods that have arisen to improve software development,

  • 8/13/2019 2006_07_12_lean

    105/113

    7/12/2006105 Copyright2005 Net Objectives

    Lean is emerging as one that is grounded in decades of workunderstanding how to make processes better. Lean thinkingfocuses on giving customers what they want, when and where thewant it, without a wasted motion or wasted minute. This 2-daycourse teaches how to apply lean principles such as: RapidResponse, Constant Learning, Built-in Quality, Local Responsibilityand Global Optimization to software development by workingthrough real problems with your peers . This course is based onthe work of Mary and Tom Poppendieck.

    Lean Software For Managers What do PatientKeeper, a hospitaldata management system, and Zara, a high fashion clothing chain,have in common with Dell Computer and Toyota MotorCorporation? All four companies are overwhelming their

    competition with a constant flood of new products that seem to beexactly what customers want, even as they set the standard forquality and value. How do they do it? To these companies, LeanThinking is a way of life: Rapid Response, Constant Learning,Built-in Quality, Local Responsibility and Global Optimization arepart of the culture.

    Project Management Perspective Agile/Scrum

    Certified ScrumMaster Training. Agile project management is asradically different from traditional project management as agile

  • 8/13/2019 2006_07_12_lean

    106/113

    7/12/2006106 Copyright2005 Net Objectives

    processes are different from traditional methodologies. One of the mostpopular agile methods is called Scrum, and this course is aboutmanaging Scrum projects. Rather than plan, instruct and direct, theagile project manager (called the ScrumMaster) facilitates, coaches andleads. In this course you are certified as a ScrumMaster and learn howto make a development team, a project, or an organization agile. Thecourse consists of lecture, hands-on discussions and exercises, casestudies, and examples used to educate you in the way of theScrumMaster.

    Certified Product Owner: Managing Agile Requirements. Iterativedevelopment has proven itself to be successful but, managing businessexpectations and driving development is still hard. We demonstrate howto strike this balance. Further, we explore the benefits andresponsibilities of the Product Owner, arguably the hardest job in

    software development. The existence of a qualified, empowered,Product Owner with analytic support is one of the major success factorsfor processes.Introduction to Scrum. Learn why Scrum is an easy to apply agilesoftware development method that can apply to large and smallorganizations alike. All students who successfully complete this coursebecome Certified Scrum Masters.

    Technical Perspective Agile Analysis

    Effective Use Case Analysis. Use Cases are the best tool known forcapturing, documenting, and validating the functional requirements for

  • 8/13/2019 2006_07_12_lean

    107/113

    7/12/2006107 Copyright2005 Net Objectives

    capturing, documenting, and validating the functional requirements fora system. Unfortunately, trying to capture a system's use cases all atonce often leads to a severe case of "analysis paralysis". Our approachto use case development is an incremental one that allows us to

    develop, refine, and validate use cases as we move to more detailedsoftware requirements. We call this technique the Ever-Unfolding Story,and it is the subject of this course.Agile Use Case Analysis. Agile software development is based on asimple concept: work on the most important things first, and iterativelylook for what is 'now' the most important thing. By doing this adevelopment team is able to adapt to changes as they occur, andmaximize effectiveness of the development effort. We use the term"Agile Use Cases" to refer to an incremental technique for iterativelydeveloping Use Cases and refining them into software requirementsusing the Ever-Unfolding Story. Agile Use Cases provide for frequent

    validation of the requirements, thus supporting agile development.These courses are similar in content, but with different focus, the first is for larger,more traditional, projects; while the second is designed to support agiledevelopments. Each of these 3-day courses consists of lecture and hands-onexercises, and the use case portion is largely based on Alistair Cockburn's book"Writing Effective Use Cases" - winner of the Jolt Productivity Award for 2001.

    Technical PerspectiveDesign Patterns,

    Test-Driven DevelopmentDesign Patterns Explained: A New Perspective on Object-Oriented

    Design. This 3-day course goes beyond merely teaching several designI l h h i i l d i h k d i

  • 8/13/2019 2006_07_12_lean

    108/113

    7/12/2006108 Copyright2005 Net Objectives

    Test Driven Development patterns. It also teaches the principles and strategies that make designpatterns good designs. This enables students to use these advanceddesign techniques in their problems whether design patterns are even

    present. After teaching several patterns and the principles underneaththem, the course goes further by showing how patterns can worktogether to create robust, flexible, maintainable designs.

    Test-Driven Development: Iterative Development With

    Refactoring and Unit-Testing. 3 days. The practice of Agile SoftwareDevelopment requires, among other things, a high degree of flexibilityin the coding process. As we get feedback from clients, stakeholders,and end users, we want to be able to evolve our design and

    functionality to meet their needs and expectations. This implies anincremental process, with frequent (almost constant) change to thecode we're working on. Refactoring, the discipline of changing codewithout harming it, is an essential technique to enable this process. Unittesting, which ensures that a given change has not caused an

    unforeseen ripple effect in the system, is another.

    Technical PerspectiveEffective Programming

    Effective Object-Oriented Analysis and Design. This 5-day courseis taught in C++, C#, and/or Java. C++, C#, and Java are powerful

  • 8/13/2019 2006_07_12_lean

    109/113

    7/12/2006109 Copyright2005 Net Objectives

    programming languages. Their true value emerges only if they areapplied with good object-oriented practices. Without these, they can bedifficult languages to maintain and extend. Although many people

    understand the basics of object-oriented programming (polymorphism,interfaces, encapsulation, ...) they don't understand how to use theseeffectively. This course starts with a better way to do analysis than istraditionally taught. It follows up with 14 practices that both enablebetter object-oriented coding as well as create a better understandingof object-oriented design. These practices come from both designpatterns and new agile coding methods. (This course is about 40% lab)

    Effective Agile Programming. Requirements change. This is the new

    (or not so new) mantra of software development. Changingrequirements mandate changeable code. This 3-day course deals withhow we write changeable code. It covers issues of code quality, corecoding practices, basic object-orientation, refactoring and unit-testing. It then discusses the issue of how to deal with existing legacycode.

    Language Support ASP.NET Training

    Effective ASP.NET. Microsoft's ASP.NET is a powerful new technology

    for developing web applications. Its very power of being a simple toolfor building robust applications also gives it the tendency to generatei t ight if t d i t l Th bl b gi

  • 8/13/2019 2006_07_12_lean

    110/113

    7/12/2006110 Copyright2005 Net Objectives

    maintenance nightmares, if not used appropriately. The problems beginwhen the application grows beyond a few simple pages. Solid designtechniques must be used to keep such applications flexible andmaintainable. We take the time to clearly reveal how web applicationswork, and how they differ from traditional GUI or console-basedapplications.Test-Driven ASP.NET. Test-Driven Development (TDD) is a powerfultool for combining software design, testing, and coding to increasereliability and productivity. With ASP.NET, however, Microsoft hascreated a tool that doesn't easily lend itself to test-driven development.Furthermore, the ease of creating ASP and ASP.NET applications has ledto established applications that don't have any tests, making changesdifficult and risky. Savvy developers have been looking for ways toapply test-driven development to both new and existing code so they

    can make changes quickly and safely. In this course, we teach you howto use NUnitAsp to perform test-driven ASP.NET. We show you "bestpractices" for performing test-driven development of new ASP.NET andthen dive into the challenges and solutions of adding tests to existingcode. We provide guidance in test-driven development, NUnitAsp, andthrow in lots of pithy comments derived from years of experience witharchitecting web applications.

    Customized Integrated

  • 8/13/2019 2006_07_12_lean

    111/113

    7/12/2006111 Copyright2005 Net Objectives

    Agile Software Development with Design Patterns. This 5-day course analyzes what it means to be an agile project, andprovides a number of best practices that enhance agility(focusing on XP). After teaching several patterns and theprinciples underneath them, the course goes further by showinghow patterns can work together with agile developmentstrategies to create robust, flexible, maintainable designs.

    Bibliography

  • 8/13/2019 2006_07_12_lean

    112/113

    7/12/2006112 Copyright2005 Net Objectives

    Best search engine for buying books: www.bestbookbuys.com

    Full bibliography at http://www.netobjectives.com/bib . Includes:

    Articles by us

    Streamzines by us

    Recommended reading list

    Toyota Production System

    http://www toyota co jp/en/vision/production sys

    http://www.netobjectives.com/bibhttp://www.netobjectives.com/bibhttp://www.toyota.co.jp/en/vision/production_system/video.htmlhttp://www.toyota.co.jp/en/vision/production_system/video.html
  • 8/13/2019 2006_07_12_lean

    113/113

    7/12/2006113 Copyright2005 Net Objectives

    http://www.toyota.co.jp/en/vision/production_system/video.html

    http://www.toyota.co.jp/en/vision/production_system/video.htmlhttp://www.toyota.co.jp/en/vision/production_system/video.htmlhttp://www.toyota.co.jp/en/vision/production_system/video.htmlhttp://www.toyota.co.jp/en/vision/production_system/video.html