450 likes | 660 Views
Agile Demystified. Cesario Ramos. The idea behind the Agile Manifesto Why do we do these things? What about engineering principles?. Respond To Change. Promise the business Respond to change To stop whining Skills Technologies Process Soft enough!.
E N D
Agile Demystified Cesario Ramos
The idea behind the Agile Manifesto • Why do we do these things? • What about engineering principles?
Promise the business • Respond to change • To stop whining • Skills • Technologies • Process • Soft enough!
Then they disappear from view! doing something, not clear what… then pop up after 8 months and say there might be some delay!!!
One month before the deadline they pop up again…. and ‘we need 3 more months to finish’
So finally in month 13 the testing can begin Plan shows it should be finished in a month! …but issues are discovered
Working software means… • The business gets working software every month! • Could be put into actual use • It has real value, could be validated on customers. • Proves that there is actual progress
IT no longer asking for trust but provides evidence. • Goes on month after month after month • stops when the business decides there is enough value added!
Scrum In order to do this the business has to do some things in return
The idea behind the Agile Manifesto • Why do we do these things? • What about engineering principles?
Production vs. Product development What are characteristics of production and product development? What does it mean for the approach? Designator | author | April 06, 2009 |
Origins in Lean manufacturing since 1950’s • High quality, high productivity and low cost • Highly successful
The New New Product Development Game • Hirotaka Takeuchi • Ikujiro Nonaka Harvard Business Review, 1986.
Complex Adaptive System A Complex Adaptive System (CAS) is a dynamic network of many agents acting in parallel, constantly acting and reacting to what the other agents are doing. The control of a CAS tends to be highly dispersed and decentralized. John H. Holland
VALUE VALUE STREAM PERFECTION PULL FLOW
Hand-offs Delay Task Switching Overproduction Defects Inventory Relearning
How can we eliminate it? • Partially done work • Divide work into small batches • Limit WIP • Extra Features • Do NOT construct a signed list of everything upfront • Hand Offs • Face-to-face communication, cross functional teams • Delays • Cross functional teams, regular and short feedback cycles • Defects • Inspect to prevent defects, move testing to the front
Overproduction of features Jim Johnson. The Standish Group International Inc. 2002
Origins of defects Human 5% Environment 5% Logic/Design 28% Documentation 2% Data 6% Interface 6% Others 7% Tom Gilb. 2002 Requirements Errors 41%
Prioritized, refined and written down in collaboration between business and development
The idea behind the Agile Manifesto • Why do we do these things? • What about engineering principles?
[en.wiktionary.org] • Any apparently uselessactivity which, by allowing you to overcome intermediate difficulties, allows you to solve a larger problem. • I was doing a bit of yak shaving this morning, and it looks like it might have paid off. • The actually uselessactivity you do that appears important when you are consciously or unconsciously procrastinating about a larger problem. • I thought I'd get more work done if I just fixed a problem with my .emacs file, but then I spent the whole afternoon yak shaving.
Verification • STOP discussing things with minimal facts…. • Kent Beck: No discussion should take longer than 30 minutes without writing/looking at some code to verify stuff. Programmers + Code > Programmers + Time
Continuously improving the feedback speed!
Fast Feedback • Getting the architecture right first…. Then we can add feature by feature easily right…? Hmmm… what if when implementing the first feature it proves that the infrastructure is wrong? • We build a couple of features and then refactor ending up with the architecture. • Generalize to remove duplication • Building exactly and only what is needed!!!
Fast Feedback • Automatic Tests • Let the computer provide us feedback • Peer Reviews • Let your peer provide you with feedback • Spread knowledge • Take the first bullet • Refactor to the Open Closed
Agile Demystified Cesario Ramos