KEMBAR78
Agile and Lean Software Development | PPTX
Agile and Lean
Software Development
      Tathagat Varma
        Sr. Director
           Yahoo!
Discussion Topics

•   SDLC
•   Waterfall
•   Agile
•   Lean
•   Kanban
•   Lean Startup
the world around us…yesterday!
Microsoft Windows timeline




https://en.wikipedia.org/wiki/Timeline_of_Microsoft_Windows
Other major OS and tools timeline




https://en.wikipedia.org/wiki/Solaris_(operating_system)   https://en.wikipedia.org/wiki/Bugzilla
A typical support timeline




http://itconvergence.blogspot.in/2012/10/oow-12-elison-extradata-oracle-r122.html
As a contrast, what are consumer
    internet companies doing?
• Continuous Integration -> Continuous Delivery ->
  Continuous Deployment
• On „good days‟, Flickr releases a new version every half an
  hour (Jun 20, 2005)
• IMVU pushes a revision of code to the website every nine
  minutes (Feb 10, 2009)
• The other day we passed product release number 25,000 for
  WordPress. That means we‟ve averaged about 16 product
  releases a day, every day for the last four and a half years!
  (May 19, 2010)
• A new version of Google Chrome now due every six weeks
  (Jul 22, 2010)
• Facebook does code push twice a day (Aug 4, 2012)
adoption @ net speed!!!




https://lh4.googleusercontent.com/-SQ1ugOgu8Ds/TimaHjH0VpI/AAAAAAAAApU/za0BhEjhoio/w402/google%2Bplus%2Bgrowth%2B20mil.png   http://thesamerowdycrowd.wordpress.com/2011/12/26/a-moment-of-our-time/
darwin at work on internet
                               2006                                                                  2009




http://www.flickr.com/photos/stabilo-boss/93136022/sizes/o/in/photostream/   http://rossdawsonblog.com/weblog/archives/2009/05/rapid_turnover.html
yet, our product development sucks!




http://blog.amplifiedanalytics.com/2011/07/musing-on-difference-between-successful-product-innovation/   http://www.nickblack.org/2009/10/how-brand-trust-affects-new-products.html
Let’s understand the ‘craft’ first…
       • Sheer joy of making things
       • Pleasure of things that are useful to other people
       • Fascination of fashioning complex puzzle-like objects of
         interlocking moving parts and watching them work in
         subtle cycles
       • Joys of always learning, which sprints from the non-
         repeating nature of the task
       • Delight of working in such a tractable medium




The Mythical Man Month – Fred Brooks, 1975
software development life cycles

•   Ad-hoc
•   Serial
•   Iterative
•   Incremental
•   Iterative/Incremental
risk management in SDLCs
notion of ‘progress’ vs. time
Waterfall Model

• Wrongly inspired by assembly-line
  manufacturing processes of the day
• Economics supported “measure twice, cut
  once” leading to up-front planning and BDUF
• Single-pass, sequential process with hand-offs
  and feedback loops between adjoining phases
• Transition to next phase only upon completion
  of current phase
Waterfall Software Development




                                            Limitations and Assumptions

       1. Wrong analogy: Software development ≠ Production
       2. Customers know EVERYTHING upfront and that requirement won’t change
       3. Legacy from the past: implicitly assumes CPU time is costly, so focuses on doing
          everything upfront to minimize ‘machine time’ for trial and error
       4. “Wicked Problem”: Designers and developers know how exactly how to build
       5. Very long feedback cycles not suitable for today’s pace of innovation
Picture from http://damonpoole.blogspot.in/2009/07/traditional-development-game-of.html
As a result, software is…



    Costly
             Buggy
     Late
and the costs…?




http://leadinganswers.typepad.com/leading_answers/estimating/
http://www.agileforall.com/dyk/
Holy Grail of Software Development

             • Better: higher
               quality, more
               reliability, higher
               performance, more
               usable…
             • Faster: speedier
               development
             • Cheaper: no budget
               overruns
But the reality?
Preamble to Agile Movement

Software Crisis, 1965-85: The major cause of the
software crisis is that the machines have become
several orders of magnitude more powerful! To put
it quite bluntly: as long as there were no
machines, programming was no problem at all;
when we had a few weak computers, programming
became a mild problem, and now we have gigantic
computers, programming has become an equally
gigantic problem. — Edsger Dijkstra, The Humble
Programmer
Software Crisis
The causes of the software crisis were linked to the
overall complexity of hardware and the software
development process. The crisis manifested itself in
several ways:
•   Projects running over-budget.
•   Projects running over-time.
•   Software was very inefficient.
•   Software was of low quality.
•   Software often did not meet requirements.
•   Projects were unmanageable and code difficult to maintain.
•   Software was never delivered.
and the response?




Frameworks, Standards and Certifications
…and the result?…good start…
…but poor finish!
Why?
The World had changed! Software increasingly
became more business-critical, and delays, cost
overruns and poor quality were significantly less
acceptable then before!

• Process: Long-lead development process ineffective in
  a dynamic and global world
• Management: Command and control model
  unsuitable for fostering collaboration required to
  solve complex problems
• Technology: Advancements in computers, compiler
  technology and debugging and testing tools greatly
  improved the economics of software development
What is the most important part in these
            two machines?




        “The Brakes!!!”
     They let you go faster…
Agility vs. Discipline?




http://www.ibm.com/developerworks/rational/library/edge/08/feb08/lines_barnes_holmes_ambler/
Advent of Agile and Lean Methodologies
•   1970: Royce critiques Waterfall and offers improvement ideas
•   1986: Barry Boehm proposes Spiral Model
•   1971: Harlan Mills proposes Incremental Development
•   1987: Cleanroom Software engineering
•   1991: Sashimi Overlapping Waterfall Model
•   1992: Crystal family of methodologies
•   1994: DSDM
•   1995: Scrum
•   1996: Rational Unified Process framework
•   1997: Feature Driven Development
•   1999: Extreme Programming Explained
•   2001: Agile Manifesto is born
•   2003: Lean Software Development
•   2005: PM Declaration of Interdependence
•   2007: Kanban-based software engineering
•   2008: Lean Startup
•   2009: Scrumban
•   20xx: Something new !?! (hopefully!)
What is agile really all about?

                               • Empowered individuals
                               • Collaboration
             Motivated         • Democratic decision-making
             Individuals         and transparency


   Self-
organizing                     • Shorter feedback cycle
    x-                         • Manage changing priorities
functional                     • Increased productivity
  Teams
                    Agile
                  Businesses
                               • Higher ROI
                               • Faster time to market
                               • Better User Experience
Why is it so hard?




52 39 34          %
Organizational Culture
                                         %
                         Resistance to Change
                                                              %
                                                Management Support
test-code-refactor loop
feedback loop in agile lifecycles
agile lifecycle – big picture
from daily builds to project
Scrum
What’s happening here?




http://ayagebeely.blogspot.in/2008_08_01_archive.html
Feedback Loops in Traditional Techniques
          vs. Agile Techniques
Agile Development Value Proposition




http://www.versionone.com/Agile101/Agile_Benefits.asp
Does Agile work?




http://www.bigvisible.com/2009/12/taking-agile-beyond-faster/
http://www.testingthefuture.net/page/2/
What is Lean?

• The core idea is to maximize customer
  value while minimizing waste. Simply, lean
  means creating more value for customers with
  fewer resources.
• A lean organization understands customer
  value and focuses its key processes to
  continuously increase it. The ultimate goal is
  to provide perfect value to the customer
  through a perfect value creation process that
  has zero waste.
Lean Thinking
• Lean thinking changes the focus of management from
  optimizing separate technologies, assets, and vertical
  departments to optimizing the flow of products and services
  through entire value streams that flow horizontally across
  technologies, assets, and departments to customers.
• Eliminating waste along entire value streams, instead of at
  isolated points, creates processes that need less human
  effort, less space, less capital, and less time to make products
  and services at far less costs and with much fewer
  defects, compared with traditional business systems.
  Companies are able to respond to changing customer desires
  with high variety, high quality, low cost, and with very fast
  throughput times. Also, information management becomes
  much simpler and more accurate.
http://www.shmula.com/lean-history-and-timeline-toyota-production-system/5993/
Lean Principles

                   1. Identify
                      Value


                                        2. Map
 5. Seek
                                       the Value
Perfection
                                        Stream




           4.
                                 3. Create
       Establish
                                   Flow
          Pull
Wastes in Lean




http://nantachit.exteen.com/20120131/muda-muri-mura
How they manifest?




https://leanandkanban.wordpress.com/2011/03/22/lean-is-about-eliminating-waste-right/
Lean Software Development

     •    Optimize the Whole
     •    Eliminate Waste
     •    Build Quality In
     •    Learn Constantly
     •    Deliver Fast
     •    Engage Everyone
     •    Keep Getting Better


www.poppendieck.com
Optimize the Whole
Optimizing a part of a system will always, over time,
sub-optimize the overall system.

Focus on the Entire Value Stream
From concept to cash.
From customer request to deployed software.

Deliver a Complete Product
Customers don't want software; they want their problems
solved. Complete solutions are built by complete teams.

Think Long Term
Beware of governance and incentive systems that drive short
term thinking and optimize local performance.
Eliminate Waste
Waste is anything that does not add customer value.
The three biggest wastes in software development are:

Building the Wrong Thing
"There is nothing so useless as doing efficiently that which should not
be done at all." –Peter Drucker

Failure to Learn
Many of our policies – for example: governance by variance from
plan, frequent handovers, and separating decision-making from work –
interfere with the learning that is the essence of development.

Thrashing
Practices that interfere with the smooth flow of value –task
switching, long lists of requests, big piles of partly done work – deliver
half the value for twice the effort.
Wastes in Software Development
Wastes in Manufacturing   Wastes in Software Development
Inventory                 Partially done work
Extra Processing          Extra processes
Overproduction            Extra features
Transportation            Task Switching
Waiting                   Waiting
Motion                    Motion
Defects                   Defects
Build Quality In
If you routinely find defects in your verification process, your process is
defective.

Final Verification Should Not Find Defects!
Every software development process ever invented had as its primary
purpose to find and fix defects as early in the development process as
possible.

Mistake-Proof your Process with Test-First Development
Tests – including, unit tests, end-to-end tests, and integration tests –
must be available to establish confidence in the correctness of the
system at any timeduring development, at every level of the system.

Break Dependencies
System architecture should support the addition of any feature at any
time.
Learn Constantly
Planning is useful. Learning is essential.

Predictable Performance is Driven by Feedback
A predictable organization does not guess about the future and call it a
plan; it develops the capacity to rapidly respond to the future as it
unfolds.

Maintain Options
Think of code as an experiment – make it change-tolerant.

Last Responsible Moment
Learn as much as possible before making irreversible decisions. Don't
make decisions that will be expensive to change before their time –
and don't make them after their time!
Learn Fast
Start with a deep understanding of all stakeholders and what they will
value. Create a steady, even flow of work, pulled from this deep
understanding of value.

Rapid Delivery, High Quality, and Low Cost are Fully Compatible
Companies that compete on the basis of speed have a big cost
advantage, deliver superior quality, and are more attuned to their
customers' needs.

Queuing Theory Applies to Development, not Just Servers
Focusing on utilization creates a traffic jam that actually reduces
utilization. Drive down cycle time with small batches and fewer things-
in-process. Aggressively limit the size of lists and queues

Managing Workflow is a lot easier than Managing Schedules
The best way to establish reliable, predictable deliveries is to establish
reliable, repeatable workflows with iterations or a kanban system.
Keep Getting Better
Results are not the point – the point is to develop the people and the
systems capable of delivering results.

Failure is a Learning Opportunity
The most reliable performance comes when even small failures are
deeply investigated and corrected; when noise is not tolerated.

Standards Exist to be Challenged and Improved
Embody the current best known practice in standards that everyone
follows, while actively encouraging everyone to challenge and change
the standards.

Use the Scientific Method
Teach teams to: establish hypotheses, conduct many rapid
experiments, create concise documentation, and implement the best
alternative.
Engage Everyone
The time and energy of bright, creative people are the scarce resources in
today's economy, and the basis of competitive advantage.
People who are paid fairly and adequately are motivated by
autonomy, mastery, and purpose.

Autonomy
The most effective work groups are semi-autonomous teams with an internal
leader with end-to-end responsibility for complete, meaningful tasks.

Mastery
Respect for people means providing the challenge, feedback, and
environment that enables everyone to become excellent.

Purpose
Tie work to value. Only by believing in the purpose of their work will people
become engaged in achieving that purpose.
Kanban System




http://www.toyota-global.com/company/vision_philosophy/toyota_production_system/just-in-time.html
How Kanban helps achieve “Just-
                      in-Time”
        • For example, to efficiently produce a large
          number of automobiles, which can consist of
          around 30,000 parts, it is necessary to create a
          detailed production plan that includes parts
          procurement. Supplying "what is
          needed, when it is needed, and in the
          amount needed" according to this production
          plan can eliminate waste, inconsistencies, and
          unreasonable requirements, resulting in
          improved productivity.
http://www.toyota-global.com/company/vision_philosophy/toyota_production_system/just-in-time.html
Kanban for Software
      • Visualize the Workflow: Represent the work items
        and the workflow on a card wall or electronic board
      • Limit Work-in-Progress (WIP): Set agreed upon
        limits on how many work items are in progress at a
        time
      • Measure and Manage Flow: Track work items to
        see if they are proceeding at a steady, even pace
      • Make Process Policies Explicit: Agree upon and
        post policies about how work will be handled
      • Use Models to Evaluate Improvement
        Opportunities: Adapt the process using ideas from
        Systems Thinking, Deming, etc.
Kanban: Successful Evolutionary Change for your Technology Business – David Anderson
Why Kanban in Software
                                  Engineering?



           Don’t build
                                                Don’t write                           Don’t write     Don’t test
          features that
                                                more specs                            more code      more code
             nobody
                                               than you can                          than you can   than you can
           needs right
                                                   code                                  test          deploy
              now




https://leanandkanban.files.wordpress.com/2009/04/kanban-for-software-engineering-apr-242.pdf
Lean Startup Principles
The Lean Startup method teaches you how to
drive a startup-how to steer, when to turn, and
when to persevere-and grow a business with
maximum acceleration.


•   Entrepreneurs are everywhere
•   Entrepreneurship is management
•   Validated Learning
•   Innovation Accounting
•   Build-Measure-Learn
Build-
 Measure-
Learn Loop
does iterating help?




http://viniciusvacanti.com/2011/12/12/when-do-you-throw-in-the-towel-on-your-struggling-project/
are small teams more productive?




http://drewcrawfordapps.com/2.0/the-agility-of-small-teams/
does colocation impact team performance?




http://sloanreview.mit.edu/the-magazine/2009-summer/50412/how-to-manage-virtual-teams/
is small batch size faster?




http://www.andrejkoelewijn.com/wp/2011/06/30/is-team-productivity-a-responsibility-of-the-product-owner/
Recap
•   Agile ≠ Faster, but Sooner
•   Agile ≠ No planning, but Adaptive Planning
•   Agile ≠ More work, but ‘Done’
•   Agile ≠ No documentation, but Just Enough
•   Lean ≠ Cut the corners, but Reduce Waste
•   Agile or Lean don’t just change the development
    process, but enable a radical change in
    organizational culture, leadership and
    management practices that is more in line with
    business needs and social values and norms of
    today
References
•   http://butunclebob.com/ArticleS.TimOttinger.MoreWork
•   http://butunclebob.com/ArticleS.TimOttinger.SoonerNotFaster
•   http://www.toyota-
    global.com/company/vision_philosophy/toyota_production_system/jidoka.html
•   http://www.toyota-
    global.com/company/vision_philosophy/toyota_production_system/just-in-
    time.html
•   http://www.danube.com/docs/Intro_to_Agile.pdf
•   http://codebetter.com/darrellnorton/2005/02/02/lean-software-development-
    overview/
It’s not about the method!
• A photographer went to a
  socialite party in New York.
  As he entered the front
  door, the host said „I love
  your pictures – they’re
  wonderful; you must have a
  fantastic camera.‟
• He said nothing until dinner
  was finished, then: „That was
  a wonderful dinner; you must
  have a terrific stove.‟
                   – Sam Haskins
                              http://www.haskins.com/ImageShop/Image_Shop_60s/60s_Books_A.Image_01.html
Connect




          Blog: http://managewell.net
       Email: Tathagat.Varma@gmail.com
   Slides: http://slideshare.net/managewell
 Twitter: http://twitter.com/TathagatVarma
My Articles: http://managewell.net/?page_id=2

Agile and Lean Software Development

  • 1.
    Agile and Lean SoftwareDevelopment Tathagat Varma Sr. Director Yahoo!
  • 2.
    Discussion Topics • SDLC • Waterfall • Agile • Lean • Kanban • Lean Startup
  • 3.
    the world aroundus…yesterday!
  • 4.
  • 5.
    Other major OSand tools timeline https://en.wikipedia.org/wiki/Solaris_(operating_system) https://en.wikipedia.org/wiki/Bugzilla
  • 6.
    A typical supporttimeline http://itconvergence.blogspot.in/2012/10/oow-12-elison-extradata-oracle-r122.html
  • 7.
    As a contrast,what are consumer internet companies doing? • Continuous Integration -> Continuous Delivery -> Continuous Deployment • On „good days‟, Flickr releases a new version every half an hour (Jun 20, 2005) • IMVU pushes a revision of code to the website every nine minutes (Feb 10, 2009) • The other day we passed product release number 25,000 for WordPress. That means we‟ve averaged about 16 product releases a day, every day for the last four and a half years! (May 19, 2010) • A new version of Google Chrome now due every six weeks (Jul 22, 2010) • Facebook does code push twice a day (Aug 4, 2012)
  • 8.
    adoption @ netspeed!!! https://lh4.googleusercontent.com/-SQ1ugOgu8Ds/TimaHjH0VpI/AAAAAAAAApU/za0BhEjhoio/w402/google%2Bplus%2Bgrowth%2B20mil.png http://thesamerowdycrowd.wordpress.com/2011/12/26/a-moment-of-our-time/
  • 9.
    darwin at workon internet 2006 2009 http://www.flickr.com/photos/stabilo-boss/93136022/sizes/o/in/photostream/ http://rossdawsonblog.com/weblog/archives/2009/05/rapid_turnover.html
  • 10.
    yet, our productdevelopment sucks! http://blog.amplifiedanalytics.com/2011/07/musing-on-difference-between-successful-product-innovation/ http://www.nickblack.org/2009/10/how-brand-trust-affects-new-products.html
  • 11.
    Let’s understand the‘craft’ first… • Sheer joy of making things • Pleasure of things that are useful to other people • Fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles • Joys of always learning, which sprints from the non- repeating nature of the task • Delight of working in such a tractable medium The Mythical Man Month – Fred Brooks, 1975
  • 12.
    software development lifecycles • Ad-hoc • Serial • Iterative • Incremental • Iterative/Incremental
  • 13.
  • 14.
  • 15.
    Waterfall Model • Wronglyinspired by assembly-line manufacturing processes of the day • Economics supported “measure twice, cut once” leading to up-front planning and BDUF • Single-pass, sequential process with hand-offs and feedback loops between adjoining phases • Transition to next phase only upon completion of current phase
  • 16.
    Waterfall Software Development Limitations and Assumptions 1. Wrong analogy: Software development ≠ Production 2. Customers know EVERYTHING upfront and that requirement won’t change 3. Legacy from the past: implicitly assumes CPU time is costly, so focuses on doing everything upfront to minimize ‘machine time’ for trial and error 4. “Wicked Problem”: Designers and developers know how exactly how to build 5. Very long feedback cycles not suitable for today’s pace of innovation Picture from http://damonpoole.blogspot.in/2009/07/traditional-development-game-of.html
  • 17.
    As a result,software is… Costly Buggy Late
  • 18.
  • 19.
    Holy Grail ofSoftware Development • Better: higher quality, more reliability, higher performance, more usable… • Faster: speedier development • Cheaper: no budget overruns
  • 20.
  • 21.
    Preamble to AgileMovement Software Crisis, 1965-85: The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. — Edsger Dijkstra, The Humble Programmer
  • 22.
    Software Crisis The causesof the software crisis were linked to the overall complexity of hardware and the software development process. The crisis manifested itself in several ways: • Projects running over-budget. • Projects running over-time. • Software was very inefficient. • Software was of low quality. • Software often did not meet requirements. • Projects were unmanageable and code difficult to maintain. • Software was never delivered.
  • 23.
    and the response? Frameworks,Standards and Certifications
  • 24.
  • 25.
  • 26.
    Why? The World hadchanged! Software increasingly became more business-critical, and delays, cost overruns and poor quality were significantly less acceptable then before! • Process: Long-lead development process ineffective in a dynamic and global world • Management: Command and control model unsuitable for fostering collaboration required to solve complex problems • Technology: Advancements in computers, compiler technology and debugging and testing tools greatly improved the economics of software development
  • 27.
    What is themost important part in these two machines? “The Brakes!!!” They let you go faster…
  • 28.
  • 29.
    Advent of Agileand Lean Methodologies • 1970: Royce critiques Waterfall and offers improvement ideas • 1986: Barry Boehm proposes Spiral Model • 1971: Harlan Mills proposes Incremental Development • 1987: Cleanroom Software engineering • 1991: Sashimi Overlapping Waterfall Model • 1992: Crystal family of methodologies • 1994: DSDM • 1995: Scrum • 1996: Rational Unified Process framework • 1997: Feature Driven Development • 1999: Extreme Programming Explained • 2001: Agile Manifesto is born • 2003: Lean Software Development • 2005: PM Declaration of Interdependence • 2007: Kanban-based software engineering • 2008: Lean Startup • 2009: Scrumban • 20xx: Something new !?! (hopefully!)
  • 31.
    What is agilereally all about? • Empowered individuals • Collaboration Motivated • Democratic decision-making Individuals and transparency Self- organizing • Shorter feedback cycle x- • Manage changing priorities functional • Increased productivity Teams Agile Businesses • Higher ROI • Faster time to market • Better User Experience
  • 32.
    Why is itso hard? 52 39 34 % Organizational Culture % Resistance to Change % Management Support
  • 33.
  • 34.
    feedback loop inagile lifecycles
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
    Feedback Loops inTraditional Techniques vs. Agile Techniques
  • 40.
    Agile Development ValueProposition http://www.versionone.com/Agile101/Agile_Benefits.asp
  • 41.
  • 42.
    What is Lean? •The core idea is to maximize customer value while minimizing waste. Simply, lean means creating more value for customers with fewer resources. • A lean organization understands customer value and focuses its key processes to continuously increase it. The ultimate goal is to provide perfect value to the customer through a perfect value creation process that has zero waste.
  • 43.
    Lean Thinking • Leanthinking changes the focus of management from optimizing separate technologies, assets, and vertical departments to optimizing the flow of products and services through entire value streams that flow horizontally across technologies, assets, and departments to customers. • Eliminating waste along entire value streams, instead of at isolated points, creates processes that need less human effort, less space, less capital, and less time to make products and services at far less costs and with much fewer defects, compared with traditional business systems. Companies are able to respond to changing customer desires with high variety, high quality, low cost, and with very fast throughput times. Also, information management becomes much simpler and more accurate.
  • 44.
  • 45.
    Lean Principles 1. Identify Value 2. Map 5. Seek the Value Perfection Stream 4. 3. Create Establish Flow Pull
  • 46.
  • 47.
  • 50.
    Lean Software Development • Optimize the Whole • Eliminate Waste • Build Quality In • Learn Constantly • Deliver Fast • Engage Everyone • Keep Getting Better www.poppendieck.com
  • 51.
    Optimize the Whole Optimizinga part of a system will always, over time, sub-optimize the overall system. Focus on the Entire Value Stream From concept to cash. From customer request to deployed software. Deliver a Complete Product Customers don't want software; they want their problems solved. Complete solutions are built by complete teams. Think Long Term Beware of governance and incentive systems that drive short term thinking and optimize local performance.
  • 52.
    Eliminate Waste Waste isanything that does not add customer value. The three biggest wastes in software development are: Building the Wrong Thing "There is nothing so useless as doing efficiently that which should not be done at all." –Peter Drucker Failure to Learn Many of our policies – for example: governance by variance from plan, frequent handovers, and separating decision-making from work – interfere with the learning that is the essence of development. Thrashing Practices that interfere with the smooth flow of value –task switching, long lists of requests, big piles of partly done work – deliver half the value for twice the effort.
  • 53.
    Wastes in SoftwareDevelopment Wastes in Manufacturing Wastes in Software Development Inventory Partially done work Extra Processing Extra processes Overproduction Extra features Transportation Task Switching Waiting Waiting Motion Motion Defects Defects
  • 54.
    Build Quality In Ifyou routinely find defects in your verification process, your process is defective. Final Verification Should Not Find Defects! Every software development process ever invented had as its primary purpose to find and fix defects as early in the development process as possible. Mistake-Proof your Process with Test-First Development Tests – including, unit tests, end-to-end tests, and integration tests – must be available to establish confidence in the correctness of the system at any timeduring development, at every level of the system. Break Dependencies System architecture should support the addition of any feature at any time.
  • 55.
    Learn Constantly Planning isuseful. Learning is essential. Predictable Performance is Driven by Feedback A predictable organization does not guess about the future and call it a plan; it develops the capacity to rapidly respond to the future as it unfolds. Maintain Options Think of code as an experiment – make it change-tolerant. Last Responsible Moment Learn as much as possible before making irreversible decisions. Don't make decisions that will be expensive to change before their time – and don't make them after their time!
  • 56.
    Learn Fast Start witha deep understanding of all stakeholders and what they will value. Create a steady, even flow of work, pulled from this deep understanding of value. Rapid Delivery, High Quality, and Low Cost are Fully Compatible Companies that compete on the basis of speed have a big cost advantage, deliver superior quality, and are more attuned to their customers' needs. Queuing Theory Applies to Development, not Just Servers Focusing on utilization creates a traffic jam that actually reduces utilization. Drive down cycle time with small batches and fewer things- in-process. Aggressively limit the size of lists and queues Managing Workflow is a lot easier than Managing Schedules The best way to establish reliable, predictable deliveries is to establish reliable, repeatable workflows with iterations or a kanban system.
  • 57.
    Keep Getting Better Resultsare not the point – the point is to develop the people and the systems capable of delivering results. Failure is a Learning Opportunity The most reliable performance comes when even small failures are deeply investigated and corrected; when noise is not tolerated. Standards Exist to be Challenged and Improved Embody the current best known practice in standards that everyone follows, while actively encouraging everyone to challenge and change the standards. Use the Scientific Method Teach teams to: establish hypotheses, conduct many rapid experiments, create concise documentation, and implement the best alternative.
  • 58.
    Engage Everyone The timeand energy of bright, creative people are the scarce resources in today's economy, and the basis of competitive advantage. People who are paid fairly and adequately are motivated by autonomy, mastery, and purpose. Autonomy The most effective work groups are semi-autonomous teams with an internal leader with end-to-end responsibility for complete, meaningful tasks. Mastery Respect for people means providing the challenge, feedback, and environment that enables everyone to become excellent. Purpose Tie work to value. Only by believing in the purpose of their work will people become engaged in achieving that purpose.
  • 59.
  • 60.
    How Kanban helpsachieve “Just- in-Time” • For example, to efficiently produce a large number of automobiles, which can consist of around 30,000 parts, it is necessary to create a detailed production plan that includes parts procurement. Supplying "what is needed, when it is needed, and in the amount needed" according to this production plan can eliminate waste, inconsistencies, and unreasonable requirements, resulting in improved productivity. http://www.toyota-global.com/company/vision_philosophy/toyota_production_system/just-in-time.html
  • 61.
    Kanban for Software • Visualize the Workflow: Represent the work items and the workflow on a card wall or electronic board • Limit Work-in-Progress (WIP): Set agreed upon limits on how many work items are in progress at a time • Measure and Manage Flow: Track work items to see if they are proceeding at a steady, even pace • Make Process Policies Explicit: Agree upon and post policies about how work will be handled • Use Models to Evaluate Improvement Opportunities: Adapt the process using ideas from Systems Thinking, Deming, etc. Kanban: Successful Evolutionary Change for your Technology Business – David Anderson
  • 62.
    Why Kanban inSoftware Engineering? Don’t build Don’t write Don’t write Don’t test features that more specs more code more code nobody than you can than you can than you can needs right code test deploy now https://leanandkanban.files.wordpress.com/2009/04/kanban-for-software-engineering-apr-242.pdf
  • 63.
    Lean Startup Principles TheLean Startup method teaches you how to drive a startup-how to steer, when to turn, and when to persevere-and grow a business with maximum acceleration. • Entrepreneurs are everywhere • Entrepreneurship is management • Validated Learning • Innovation Accounting • Build-Measure-Learn
  • 64.
  • 65.
  • 66.
    are small teamsmore productive? http://drewcrawfordapps.com/2.0/the-agility-of-small-teams/
  • 67.
    does colocation impactteam performance? http://sloanreview.mit.edu/the-magazine/2009-summer/50412/how-to-manage-virtual-teams/
  • 68.
    is small batchsize faster? http://www.andrejkoelewijn.com/wp/2011/06/30/is-team-productivity-a-responsibility-of-the-product-owner/
  • 69.
    Recap • Agile ≠ Faster, but Sooner • Agile ≠ No planning, but Adaptive Planning • Agile ≠ More work, but ‘Done’ • Agile ≠ No documentation, but Just Enough • Lean ≠ Cut the corners, but Reduce Waste • Agile or Lean don’t just change the development process, but enable a radical change in organizational culture, leadership and management practices that is more in line with business needs and social values and norms of today
  • 70.
    References • http://butunclebob.com/ArticleS.TimOttinger.MoreWork • http://butunclebob.com/ArticleS.TimOttinger.SoonerNotFaster • http://www.toyota- global.com/company/vision_philosophy/toyota_production_system/jidoka.html • http://www.toyota- global.com/company/vision_philosophy/toyota_production_system/just-in- time.html • http://www.danube.com/docs/Intro_to_Agile.pdf • http://codebetter.com/darrellnorton/2005/02/02/lean-software-development- overview/
  • 71.
    It’s not aboutthe method! • A photographer went to a socialite party in New York. As he entered the front door, the host said „I love your pictures – they’re wonderful; you must have a fantastic camera.‟ • He said nothing until dinner was finished, then: „That was a wonderful dinner; you must have a terrific stove.‟ – Sam Haskins http://www.haskins.com/ImageShop/Image_Shop_60s/60s_Books_A.Image_01.html
  • 72.
    Connect Blog: http://managewell.net Email: Tathagat.Varma@gmail.com Slides: http://slideshare.net/managewell Twitter: http://twitter.com/TathagatVarma My Articles: http://managewell.net/?page_id=2

Editor's Notes

  • #46 The five-step thought process for guiding the implementation of lean techniques is easy to remember, but not always easy to achieve:Specify value from the standpoint of the end customer by product family.Identify all the steps in the value stream for each product family, eliminating whenever possible those steps that do not create value.Make the value-creating steps occur in tight sequence so the product will flow smoothly toward the customer.As flow is introduced, let customers pull value from the next upstream activity.As value is specified, value streams are identified, wasted steps are removed, and flow and pull are introduced, begin the process again and continue it until a state of perfection is reached in which perfect value is created with no waste.