Poppendieck, M., Poppendieck, T. and Poppendieck, T. Lean Software Development: An Agile Toolkit. Boston: Addison-Wesley Professional, 2003. Print.
ISBN 0-321-15078-3
The book provides explanation of a lean approach to agile software development. Authors show how principles (and some practices) borrowed from Toyota production system applied to the process of software development. Also authors describe 21 "tools" which can be used to implement lean approach to agile software development.
So, brief by chapters:
Chapter 1. Eliminate Waste
Describe typical types of waste (defects, partially done work, extra process, etc...) and introduce concept of value stream which can be used for process analysis.
Chapter 2. Amplify Learning
Discuss a nature of software development process, outline key differences between development and production (knowledge gathering vs manufacturing) and two aspects of quality (perceived integrity and conceptual integrity)
It's a one of key chapters in a book and it introduce set of tools and techniques used to manage uncertainty of software projects - feedback from customer, frequent (value adding) iterations, negotiable scope, iteration convergence measurement, teams synchronization, spanning application, set-based software development.
Chapter 3. Decide as Late as Possible
Introduce ideas on how to embed readiness for changes to software development process itself using concurrent development, delaying decisions (not the same as procrastination!), options thinking.
Describe making decisions in two "modes" of problem solving - Depth-First vs Breadth-First. Explain how set of simple rules may make help teams to progress quickly:
1. Eliminate waste: Spend time only on what adds real customer value.
2. Amplify learning: When you have thought problems, increase feedback.
3. Decide as late as possible: Keep your options as long as practical, but no longer.
4. Deliver as fast as possible: Deliver value to customers as soon as they ask for it.
5. Empower the team: Let the people who add value to use their full potential.
6. Build integrity in: Don't try to tack on integrity after the fact - build it in.
7. See the whole: Beware of temptation to optimize parts at the expense of the whole.
Chapter 4. Deliver as fast as possible
Importance of fast delivery, using pull system in software development and information radiators explained. Brief intro in queue theory and theory of constraints (TODO - find a book on it) with explanation how to analyze development process. Importance of load leveling explained. Also shown how to use Profit and Loss analysis for making decisions.
Chapter 5. Empower the Team
Brief intro in scientific methods and relation of it to modern CMM and CMMI (and other programs). NUMMI mystery - self-determination and motivation. Building blocks of motivation:
1. Belonging
2. Safety
3. Competence
4. Progress
Master developer and new role of project manager int he process.
Chapter 6. Build Integrity In
Perceived integrity & conceptual integrity. Ways to keep integrity - model driven design, "as-built" documentation, architectural integrity, refactoring and testing. Tests as communication tools.
Chapter 7. See the Whole
System thinking explained. Danger of suboptimization. Importance of building trust between firms. Few popular types of contracts described with pro&contra - fixed price, time and materials and possible ways to overcome problem - multistage contract, target cost, target schedule and shared benefit contracts (all build to avoid fixed scope and develop product desired by customer).
Chapter 8. Instructions and Warranty
How to apply things learned in small and large companies and in special work environment (like government contracting, embedded devices, medical devices, etc... with special requirements)
Tools list:
1) Seeing waste
2) Value stream mapping
3) Feedback
4) Iterations
5) Synchronization
6) Set-Based development
7) Options thinking
8) The last responsible moment
9) Making decisions
10) Pull system
11) Queuing theory
12) Cost of delay
13) Self-determination
14) Motivation
15) Leadership
16) Expertise
17) Perceived integrity
18) Conceptual integrity
19) Refactoring
20) Testing
21) Measurement
22) Contracts
TODO - expand description of tools.
Read on Aug. 15 - Sept. 13 2019 approx 15 hours (including time to discuss, document work and think through/working on exercises provided after each chapter).
ISBN 0-321-15078-3
The book provides explanation of a lean approach to agile software development. Authors show how principles (and some practices) borrowed from Toyota production system applied to the process of software development. Also authors describe 21 "tools" which can be used to implement lean approach to agile software development.
So, brief by chapters:
Chapter 1. Eliminate Waste
Describe typical types of waste (defects, partially done work, extra process, etc...) and introduce concept of value stream which can be used for process analysis.
Chapter 2. Amplify Learning
Discuss a nature of software development process, outline key differences between development and production (knowledge gathering vs manufacturing) and two aspects of quality (perceived integrity and conceptual integrity)
It's a one of key chapters in a book and it introduce set of tools and techniques used to manage uncertainty of software projects - feedback from customer, frequent (value adding) iterations, negotiable scope, iteration convergence measurement, teams synchronization, spanning application, set-based software development.
Chapter 3. Decide as Late as Possible
Introduce ideas on how to embed readiness for changes to software development process itself using concurrent development, delaying decisions (not the same as procrastination!), options thinking.
Describe making decisions in two "modes" of problem solving - Depth-First vs Breadth-First. Explain how set of simple rules may make help teams to progress quickly:
1. Eliminate waste: Spend time only on what adds real customer value.
2. Amplify learning: When you have thought problems, increase feedback.
3. Decide as late as possible: Keep your options as long as practical, but no longer.
4. Deliver as fast as possible: Deliver value to customers as soon as they ask for it.
5. Empower the team: Let the people who add value to use their full potential.
6. Build integrity in: Don't try to tack on integrity after the fact - build it in.
7. See the whole: Beware of temptation to optimize parts at the expense of the whole.
Chapter 4. Deliver as fast as possible
Importance of fast delivery, using pull system in software development and information radiators explained. Brief intro in queue theory and theory of constraints (TODO - find a book on it) with explanation how to analyze development process. Importance of load leveling explained. Also shown how to use Profit and Loss analysis for making decisions.
Chapter 5. Empower the Team
Brief intro in scientific methods and relation of it to modern CMM and CMMI (and other programs). NUMMI mystery - self-determination and motivation. Building blocks of motivation:
1. Belonging
2. Safety
3. Competence
4. Progress
Master developer and new role of project manager int he process.
Chapter 6. Build Integrity In
Perceived integrity & conceptual integrity. Ways to keep integrity - model driven design, "as-built" documentation, architectural integrity, refactoring and testing. Tests as communication tools.
Chapter 7. See the Whole
System thinking explained. Danger of suboptimization. Importance of building trust between firms. Few popular types of contracts described with pro&contra - fixed price, time and materials and possible ways to overcome problem - multistage contract, target cost, target schedule and shared benefit contracts (all build to avoid fixed scope and develop product desired by customer).
Chapter 8. Instructions and Warranty
How to apply things learned in small and large companies and in special work environment (like government contracting, embedded devices, medical devices, etc... with special requirements)
Tools list:
1) Seeing waste
2) Value stream mapping
3) Feedback
4) Iterations
5) Synchronization
6) Set-Based development
7) Options thinking
8) The last responsible moment
9) Making decisions
10) Pull system
11) Queuing theory
12) Cost of delay
13) Self-determination
14) Motivation
15) Leadership
16) Expertise
17) Perceived integrity
18) Conceptual integrity
19) Refactoring
20) Testing
21) Measurement
22) Contracts
TODO - expand description of tools.
Read on Aug. 15 - Sept. 13 2019 approx 15 hours (including time to discuss, document work and think through/working on exercises provided after each chapter).
No comments:
Post a Comment