Why Agile Works But Isn't Working For You

2,841 views
1,950 views

Published on

Presentation for Causerie at ADMB Bruges, Thursday 12 February 2009.

Audio will be added once I have it - the pictures are nice, but I'm not sure they make that much sense without the narrative (or do they? What do you think?)

(NB first slide is not a mistake - deliberately empty)

Published in: Technology
2 Comments
3 Likes
Statistics
Notes
  • where is the sound? the pictures mean very little on their own.

    ....and this has NOTHING to do with mystery shopping!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • excellent
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,841
On SlideShare
0
From Embeds
0
Number of Embeds
12
Actions
Shares
0
Downloads
0
Comments
2
Likes
3
Embeds 0
No embeds

No notes for slide

Why Agile Works But Isn't Working For You

  1. Blank
  2. Why Agile Works
  3. Why Agile Works and why it isn’t working for you
  4. Why Agile Works and why it isn’t working for you (maybe…)
  5. Causerie An informal discussion or chat (www.thefreedictionary.com)
  6. Causerie An informal discussion or chat, especially of an intellectual nature. (www.thefreedictionary.com)
  7. Smart people
  8. David Harvey www.teamsandtechnology.com
  9. David Harvey www.teamsandtechnology.com
  10. David Harvey www.teamsandtechnology.com
  11. David Harvey www.teamsandtechnology.com
  12. David Harvey www.teamsandtechnology.com
  13. In the old days
  14. Project failure rate 70% of IT projects failed (for some value of “failure”)
  15. But hold on…
  16. Project success rate 30% of IT projects succeeded (for some value of “success”)
  17. Doing something right
  18. Agile projects failing? Are 70% of agile projects failing?
  19. Tombstone A. M. Kuchling flickr.com
  20. Scientology
  21. All projects failing? Do 70% of all projects fail?
  22. Bridge fail 1
  23. Bridge fail 2
  24. Road fail 1
  25. Building fail Sxenco Wikimedia Commons
  26. Gawunde
  27. Surgery
  28. Recurrence rate Recurrence in hernia surgery Average recurrence rate: 10-15% Shouldice Clinic recurrence rate: 1%
  29. Positive deviant Positive deviant
  30. Brief History HEADER A brief history of Agile
  31. 1990s 1990s
  32. Smart people
  33. Back to basics
  34. Fundamentals eXtreme Programming Scrum Adaptive Software Development DSDM …
  35. 2000s 2000-2007
  36. Manifesto (2001)
  37. Convergence
  38. Late 2000s 2008…
  39. Mainstream Scrum + TDD + … ?
  40. What is agile? HEADER What is agile?
  41. Manifesto again We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. www.agilemanifesto.org
  42. Characteristics Adaptive Iterative Fast Practical Communicative Team focus Based in values
  43. Why does it work? HEADER Why does it work?
  44. Light switch - off Dries Buytaert buytaert.net
  45. Light switch - on Dries Buytaert buytaert.net
  46. Light switch - off Dries Buytaert buytaert.net
  47. Light switch - on Dries Buytaert buytaert.net
  48. Light switch - off Dries Buytaert buytaert.net
  49. Black!
  50. Party Friends www.howtomakeatoga.info
  51. Party House digicia flickr.com
  52. Party Drink
  53. Party Music Jim Winstead Jr trainedmonkey.com
  54. Party Script Richard Moross flickr.com
  55. Party Friends ? www.howtomakeatoga.info
  56. Simple vs Complex domains Simple domain: defined process control Complex domain: empirical process control (perform, inspect, adapt)
  57. What can go wrong? HEADER So why does it go wrong?
  58. Following the book
  59. Smart people
  60. Just following instructions Cindy McCravey flickr.com
  61. History written by the victors “History is written by the victors” (aka retrospective coherence)
  62. Retrospective coherence
  63. Unintended consequences
  64. Some tests function testCamelCaseUpperEmpty() { assertEquals(quot;Empty input should give empty outputquot;, quot;quot;, convertIdentifier(quot;quot;,CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperOneChar() { assertEquals(quot;Single char should map to upperquot;, quot;Aquot;, convertIdentifier(quot;aquot;,CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperOneWord() { assertEquals(quot;Single word should have initial upper and rest lowerquot;, quot;Helloquot;, convertIdentifier(quot;helloquot;,CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperTwoWords() { assertEquals(quot;Two words should have initial uppers and rest lower, space removedquot;, quot;HelloWorldquot;, convertIdentifier(quot;hello worldquot;,CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperMessy() { assertEquals(quot;Messy string should have initial uppers, rest lower, all spaces removedquot;, quot;HelloFunkyWorldquot;, convertIdentifier(quot; hELlO FunKy woRld quot;,CI_TEXT,CI_CAMEL_UPPER)); }
  65. function convertIdentifier(src, srcType, dstType) { var allWords = src.split(srcType.sepExp); Passes the tests var nonEmptyWords = allWords.filter(function(word) { return word != '';} ); var correctCaseWords = nonEmptyWords.map(dstType.calcCase); var result = correctCaseWords.join(dstType.joinChar); return result; } var CI_TEXT ={ sepExp: ' ', joinChar: ' ', calcCase: _toLower }; var CI_CAMEL_UPPER = { sepExp: /(?=[A-Z])/, joinChar: '', calcCase: _toInitialUpper }; var CI_CAMEL_LOWER = { sepExp: /(?=[A-Z])/, joinChar: '', calcCase: function(word, index) {return index == 0 ? _toLower(word) : _toInitialUpper(word);} }; function _toLower(s) { return s.toLowerCase(); } function _toInitialUpper(s) { return s[0].toUpperCase() + s.slice(1).toLowerCase(); }
  66. var CI_TEXT = 0; var CI_CAMEL_UPPER = 1; var CI_CAMEL_LOWER = 2; So does this function convertIdentifier(s, from, to) { var result; if (from == CI_CAMEL_UPPER && to == CI_CAMEL_LOWER || from == CI_CAMEL_LOWER && to == CI_CAMEL_UPPER) { // camelCase function doesn't deal with this conversion, but it's easy if (to == CI_CAMEL_LOWER) result = s.charAt(0).toLowerCase(); else result = s.charAt(0).toUpperCase(); var end = s.length; for (i = 1; i < end; i++) result += s.charAt(i); } else { var undo; if (to == CI_TEXT) undo = true; else undo = false; var flag; if (to == CI_CAMEL_UPPER) flag = true; else flag = false; result = camelCase(s, flag, undo); } return result; } function camelCase(s, flag, undo) { var l = s.split(' '); var i = 0; var lc = ' '; var r = ''; while (i < s.length) { if (s[i] == ' ' && !undo) { lc = s[i++]; continue; } else { if (lc == ' ' && !undo) { r = r + s[i++].toUpperCase(); lc = ''; } else if (undo) { // in undo mode if (i > 0) {
  67. So does this “simple” != “the first thing that passes the tests”
  68. Stress
  69. Sprint Zen Wikimedia Commons
  70. Marathon
  71. Persistence of Bureaucracy yaraaa flickr.com
  72. Lack of engineering skills
  73. Leave it to development themadlolscientist flickr.com
  74. Broken window Sharat Ganapati flickr.com
  75. How do we succeed HEADER How do we succeed?
  76. Taking responsibility
  77. Personal mastery
  78. Team mastery
  79. Visible Change irargerich flickr.com
  80. What people think Planning Sprint review Sprint
  81. What people need to do Planning Sprint review Sprint Retrospective Retrospective actions
  82. Active leadership
  83. Congruent behaviour
  84. Supporting pillars di_the_huntress flickr.com
  85. Just enough process
  86. Tools not the answer
  87. Paying attention, care about outcomes
  88. END Thank you
  89. Blank

×