Introduction to Agile and Lean : Introduction to Agile and Lean
Traditional Model : Traditional Model Advantage: Highly Logical
Disadvantage: People are involved
Advantages of this method : Advantages of this method Very logical
Easy to sign contracts
Specialized people in each domain
Tracking at each step becomes possible
Works best if everything goes as planned Limitations of this method Rarely works
Feedback comes late
Skills more important than attitude
Tracking at each step is not lean
Most things do not go as planned every time
Iterative Model : Iterative Model Requirements
Gathered Design Development Testing Product Completed after months, if not years
Incremental Model : Incremental Model Requirements Architecture Coding Testing Shipping Product Completed after months, if not years
Iterative & Incremental Model : Iterative & Incremental Model
Iterative and Incremental +Something== Agile : Iterative and Incremental +Something== Agile
Manifesto for Agile Software Development : Manifesto for Agile Software Development Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
Principles behind the Agile Manifesto : Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
Principles behind the Agile Manifesto : Principles behind the Agile Manifesto The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
Working software is the primary measure of progress.
Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
Continuous attention to technical excellence and good design enhances agility.
Simplicity--the art of maximizing the amount of work not done--is essential.
The best architectures, requirements, and designs emerge from self-organizing teams.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Some Agile Frameworks : Some Agile Frameworks Lean - Move closer to customer, shorter cycles, eliminate waste, decide as late as possible, empower the team, build in integrity
Crystal - Emphasize people, gather techniques from other methods, improve communications, adapt the process itself (shrink or grow to fit)
Scrum - Manage a prioritized list of requires on a product backlog, collaborate through daily standup meetings, exhibit the product upon iteration completion, use retrospectives to correct the process
XP - Emphasize the values of communication, simplicity, feedback, and courage; use specific technical and collaborative practices, including TDD, refactoring, pair programming, continuous integration, open workspace, and automated acceptance tests
Lean : Lean Ideas developed mostly by Toyota
Cars of best quality, at lowest cost and lowest lead time
Popularized in 1980’s and 1990’s
Adapted for Services
Last 10 years have seen many Software Development Frameworks emerge inspired from Lean
Lean – The Foundation : Lean – The Foundation Focus on Whole
Lean – The Foundation : Lean – The Foundation Deliver nothing but the value
Lean – The Foundation : Lean – The Foundation Remove Queues and waiting of all Kind
eBay : eBay Customers would send an e-mail to Pierre Omidyar with a suggestion and he would implement the idea on the site that night.
The most popular features of eBay, those which create the highest competitive advantage, were created in this manner.
Lean in Software : Lean in Software The question is – why isn’t all software developed quickly?
The answer is – rapid development must be considered important before it becomes a reality.
Once speed becomes a value, a paradigm shift has to take place, changing software development practices from the mass production paradigm to lean thinking.
Principles of Lean : Principles of Lean Add Nothing But Value (Eliminate Waste)
Identify what customers REALLY value
Center On The People Who Add Value
Flow Value From Demand (Delay Commitment)
Optimize Across Organizations
Step 1 – Identify Wastes : Step 1 – Identify Wastes Overproduction
Inventory
Extra Processing Steps
Motion
Defects
Waiting
Transportation Extra Features
Faulty Requirements
Extra Steps
Finding Information
Defects Introduced
Waiting to see
Handoffs
Step 2 – Center on People : Step 2 – Center on People Stop-the-line
Root Cause Analysis
Continuous Learning and Skill Enhancement
Step 3 - Flow from Demand : Step 3 - Flow from Demand Do nothing that the customer does not want
Enough customers do not want
Lowering inventory exposes business problems
DELL
TOYOTA
Step 4 – Optimize the Whole : Step 4 – Optimize the Whole A re-look at estimation
Don’t measure things that sub-optimize like number of mocks delivered or lines of code written
Measure business value generated and collaboration
You get what you measure
Questions : Questions