3. My code is bug-free Build software like you build cars If you try to build faster, you’ll get bugs in architecture Developers test as good as QA I cannot work faster Assumptions
6. 1. Eliminate Waste Developer value VS Customer value Obsolete code (partially done) Exaustive documentation & planning Too many features Task switching Waiting
9. 2. Amplify Learning Do it right the first time? How can I learn most effectively? Try-it, test-it, fix-it Feedback Test a lot Convergence Set-based development
10. 3. Decide as Late as Possible Bread-first vs Depth-first Concurrent development Option Thinking Code for late decisions
11. 4. Deliver as Fast as Possible “Haste Makes Waste” Pull systems Iteration Planning
13. 5. Empower the team The biggest player is not a manager, he’s a leader Hire good people, and leave them alone If you put fences around people, you get sheep. Give people the room they need. Encourage, don’t nitpck. Let people run with an idea. Give it a try. Quick!
1940 - Toyota set out to build cars for JapanPeople did not had money, so the cars supposed to be cheapMass production meant building thousands of cars, but the market was too small
Agile developmentWaterfall model
If you do only wrights, you do not learnFeedback: semafoare, pilot automat
- Start programming the highest value features as soon as a high-level conceptual design is done, even when detailed requirements are being investigatedExpand as much as possibleCode for late decisions:Use objected-oriented approach, as it provides information hiding, interfaces, abstractions -> you’re not supposed to make early decisionsAvoid choosing frameworks too early