Lean development Flashcards
7 key principles of lean software development
1) Eliminate Waste 2. Build Quality In 3. Create Knowledge 4. Defer Commitment 5. Deliver Fast 6. Respect People 7. Optimise The Whole
Lean over other
k
22 lean tools
1
See the whole
1) All the working parts
2) Everything integrating
3) Focus on overall system performance
4) Important in contracting, not individual needs drive the focus
Eliminate waste
1) anything does not add value
2) Anything not needed immediately
3) Handing development one group to another
Amplify learning
1) Communicate early and often
2) Decision based on empirical finding not on assumptions
3) Repeat throughout the process
4) Continually improve
5) Expect and embrace mistake
Decisions as late possible
1) Avoid locking in decision (design should be flexible)
2) Build a capacity for change in the system
Deliver as soon as possible
1) Quick feedback
2) Discovery cycle is critical (shorter the cycle, more can be learned)
Empowering the team
1) Developers can let others know when works needs to be done
2) Not possible for central authority to direct
3) Pull mechanism, self organizing, do whatever it takes to resolve the challenges
Build integrity into the system
1) Whatever delivered is what wanted
2) System maintain usefulness
3) Adaptable
Tools to eliminate waste -Seeing waste
1) partially done work
2) Extra processes - someone waiting for the output from the process
3) No extra features
4) Task switching
5) Waiting (not able to realize value)
6) Motion (co location), not only people
7) Defects (find as soon as it occurs, so test immediately)
Tools to eliminate waste -Value stream mapping
1) Flow of work (all process steps) -shows waiting and unnecessary steps
Principle 2-Amplifying
1) Feedback
2) Immediate customer not a future customer
3) Increase frequency loop in problem area
4) Iteration
5) Synchronization (feature based development)
6) Set based development(develop multi options, communicate constraints, letting solutions emerge)
Principle - 3, Decide as late
1) Options thinking
2) last possible moment
3) Making decisions (breadth first, depth first)
Option thinking
1) Maximize reward until more information available
2) Flexibility to respond to change
3) Fact based decision
last possible moment
1) Concurrent development
Making decisions
1) breadth first - how details most likely emerge, late commitment, business expected to evolve
2) depth first - early commitment, focus on particular area
Principle 4 - Deliver as fast as possible
1) pull system
2) Queuing theory tool
3) Cost of delay
Pull system development
1) Kanban is most often used tool
2) display task progress
3) increased team motivation and cross functionality
Queuing theory tool
1) remove project bottlenecks
2) minimizes task wait time inside a process
3) goal is minimize Cycle time
Cost of delay
1) Minimize cost of delay
2) Understand relationship between cost and time
3) Only delay as long as profit is not affected
Principle 5 - Empower the team
1) Self Determination
2) Motivation
3) Leadership
4) Expertise
Self determination tool
1) Developers chose how and when to do work
2) Team leaders enforces standards, coordinate work
3) Overall team is responsible
Motivation
1) Encourage, recognize and reward creativity and initiative
2) Building blocks: belonging, safety, competence, progress