Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lean Software Development (Can Çetin)

Similar presentations


Presentation on theme: "Lean Software Development (Can Çetin)"— Presentation transcript:

1 Lean Software Development (Can Çetin)
Mary Poppendieck, Poppendieck.LLC Michael A. Cusumano, Massachusetts Institute of Technology

2 What is Lean? Toyota’s production line. Not a short story…

3

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

5 Eliminate Waste Over-production Unnecessary transportation Inventory
Motion Defects Over-processing Waiting

6 Eliminate Waste unnecessary code or functionality
starting more than can be completed delay in the software development process unclear or constantly changing requirements bureaucracy slow or ineffective communication partially done work defects and quality issues task switching

7 Waste Things that does not add value to the customer is waste.
Bugs are waste. So Logging bugs are waste? If your first aim produce bug free product.

8 Eliminate Waste

9 Optimize the Whole Think big, act small, fail fast; learn rapidly
A customer wants some new features ‘yesterday’. Developers hear: get it done fast, at all costs! Result: sloppy changes are made to the code. Complexity of the code base increases. Number of defects in the code increases.

10 Optimize the Whole Testing is overloaded with work.
Result: testing occurs a long time after the code is originally written, or testing is reduced. Developers don’t get immediate feedback, or some things are not properly tested. There are more defects in the code. Testers have more work. Feedback to developers and quality improvements are delayed further.

11 Optimize the Whole A lean organisation seeks to optimise the whole value stream, not just individual functions or teams. Cost of early vs late fixing.

12 Defer Commitment is decide as late as possible, particularly for decisions that are irreversible, or at least will be impractical to reverse. In areas of complexity or uncertainty, where things are very likely to change, this is especially important. Options have the value if the future is uncertain*.

13 Build Quality In waste in testing the code more than once.
waste in logging defects. waste in fixing them. Automated testing frameworks are currently the most common technique used to implement the lean principle of building quality in.

14 Story How I stopped logging bugs and started living happy

15 Learn Constantly Pair Programming Code reviews Documentation
Wiki – to let the knowledge base build up incrementally Thoroughly commented code Knowledge sharing sessions Training Use tools, such as tinyPM, to manage requirements/User Stories WIP role changes

16 Deliver Fast Is it Funny? Rules
Have the Right People (Thinking people) Keep It Simple (Just simple) Work as a Team If I deliver fast, I will expose errors to the production? Eliminate Waste Build Quality In

17 Deliver Fast many lean development environments, production releases occur frequently weekly, daily, even continuously.

18 Engage Everyone With same respect,
CEO, a developer, project manager, the receptionist or the cleaner, respect everyone equally. Empathy Responsibility Problems Without losing control of the outcome?

19 Engage Everyone(Possible Problems)
People who can think for themselves and are experts in their area often need to be empowered to feel respected.

20 Engage Everyone(Possible Solution)
How do you empower people enough, without losing control of the outcome? One way is to make sure that the empowered person still communicates about their intended approach, and why they think it’s the best approach. Then there is a chance to discuss pros and cons and understand why the person wants to take that particular decision. Questions can be asked to challenge whether or not someone has thought something all the way through, but can be asked in such a way to establish and maybe extend their own thinking, not to take over the solution or take the decision away from them, leaving them feeling disempowered and not in control.

21 Keep Getting Better improve constantly

22 JIT – JIC Pull & JIT Push & JIC WALMART vs MC Donalds Ford
JIC based on Estimation JIT On demand

23 PUSH VS PULL Ford Australia (produce when “ordered/demand” not before)

24 PUSH strategy 1)Applied to that portion of the supply chain where demand uncertainty is relatively small 2)Production and distribution decisions are based on long term forecasts Inability to meet changing demand patterns Large and variable production batches (miss opportunity) Excessive inventories due to the need for large safety stocks

25 Pull strategy Applied to that portion of the supply chain where demand uncertainty is high Production and distribution are demand driven No inventory, response to specific orders Decrease in lead time

26 KANBAN When slot is free, alert.

27 KANBAN When slot is free, alert. WIP CONWIP

28 Lean Priciples optimize the whole, eliminate waste, build quality in,
learn constantly, deliver fast, engage everyone, and keep getting better.

29 XP & Lean Test-Driven Development TDD Specification By Example (SBE)
Dehavior-Driven Development (BDD) Automated testing frameworks are currently the most common technique used to implement the lean principle of building quality in

30 Scrum & Lean Incremental delivery

31 Scrumban board

32 Lean Startup* Eric Ries Split testing Continous deployment MVP
NeedFeed (invalidated work) Rent a coder Fake facebook 47 of 50 disliked.


Download ppt "Lean Software Development (Can Çetin)"

Similar presentations


Ads by Google