Title: Lean Software Development: an Agile Toolkit by Mary and Tom Poppendieck

Q: What is the fundamental principle to lean manufacturing?
A: Eliminate waste

Q: What are the 7 wastes in software development?
A: 1. Partially done work
2. Extra processes
3. Extra features
4. Task switching
5. Waiting
6. Motion
7. Defects

Q: How does one eliminate waste?
A: By seeing waste and reducing it by value stream mapping

Q: What does eliminate waste NOT mean?
A: To throw away all documentation

Q: How should one amplify learning?
A: By doing and testing
The more you run tests to learn from the results, The more amplification of the learning will be gained from the process

Q: What's the name of the tool to amplify learning?
A: Iterations

Q: How do you apply set-based development to software?
A: You develop multiple options, communicate constraints and let solutions emerge

Q: What is the difference between "decide as late as possible" method and waterfall method?
A: In waterfall method only one approach is persued and this design is decided well before any knowledge can be gained about its suitability

Q: How options thinking can help in software development?
A: By accompanying them with recognition that options are not free it takes expertise to know which options to keep open

Q: How do pull systems work?
A: By using Kanban and shortening the time-boxes

Q: How does queuing theory work?
A: Measure work-in-queue, consider variability and decrease early in the process

Q: What are the tools to empower the team?
A: Self-determination
Motivation
Leadership
Expertise

Q: How do you help teams gain purpose?
A: Start with a clear and compelling purpose
Be sure the purpose is achievable
Give the team access to customers
Let the team make its own commitments
Management's role is to run interferences
Keep skeptics away from the team

Q: What are the requirements for intrinsic motivation?
A: Feelings of belonging and safety, a sense of competence, and sense of progress

Q: What is the difference between managers and leaders?
A: Managers cope with complexity while leaders cope with change

Q: How do you find out a group of experts is needed?
A: A way is to identify where standards are lacking

Q: What is the difference between perceived integrity conceptual integrity?
A: "What the customer thinks about the usefulness of the system" is perceived integrity but "how well the software pieces fit together and interact compatibly" is conceptual integrity

Q: What is refactoring?
A: The act of rewriting software to maintain Conceptual Integrity

Q: What are the characteristics of Conceptual Integrity?
A: Simplicity
Clarity
Suitability for use
No repetition
No extra features

Q: Is refactoring rework?
A: Improving a design during the development process is NOT rework, but good design practice.
Focusing on relentless improvement makes the development faster

Q: What are the 3 basic patterns to systems thinking?
A: Limit to growth
Sifting the burden
Suboptimization

Q: Why do we Suboptimize?
A: We have to use Suboptimize superstition and habit to be able to figure out measurements on overall performance

Q: How do you find individual defects in an organization?
A: By using informational measurements that are not traced, individuals assist in finding their cause.

Q: What are the best types of contract for agile software development?
A: Time and material contracts
Multistage contracts
Target-cost contracts
Shared-benefit contracts

Q: How can one ask to develop low-cost, high quality software?
A: By asking developement team to figure out which features and codes to leave out of the system

Q: What does the art of possible say?
A: Understand lean thinking
Creat a coalition
In the fact of resistance, address the fear
Accomodate with minimum waste
In the fact of indifference, get started
In the fact of support, act
Think big; act small; fail fast; learn rapidly