Computer Science Cristian Andreica 341C5 cristian.andreica@gmail.com TODOs • Assumptions • Build cars faster • Practices vs Principles • Go lean • Pivotal Tracker Assumptions • 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 Linear Development Incremental Development 1. Eliminate Waste • Developer value VS Customer value • Obsolete code (partially done) • Exaustive documentation & planning • Too many features • Task switching • Waiting Value Stream Mapping Agile Value Stream Map 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 3. Decide as Late as Possible • Bread-first vs Depth-first • Concurrent development • Option Thinking • Code for late decisions 4. Deliver as Fast as Possible • “Haste Makes Waste” • Pull systems • Iteration Planning Bugs vs Stories 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! Pivotal Tracker