Why Agile Works But Isn't Working For You

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    Why Agile Works But Isn't Working For You - Presentation Transcript

    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(\"Empty input should give empty output\", \"\", convertIdentifier(\"\",CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperOneChar() { assertEquals(\"Single char should map to upper\", \"A\", convertIdentifier(\"a\",CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperOneWord() { assertEquals(\"Single word should have initial upper and rest lower\", \"Hello\", convertIdentifier(\"hello\",CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperTwoWords() { assertEquals(\"Two words should have initial uppers and rest lower, space removed\", \"HelloWorld\", convertIdentifier(\"hello world\",CI_TEXT,CI_CAMEL_UPPER)); } function testCamelCaseUpperMessy() { assertEquals(\"Messy string should have initial uppers, rest lower, all spaces removed\", \"HelloFunkyWorld\", convertIdentifier(\" hELlO FunKy woRld \",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

    + David HarveyDavid Harvey, 9 months ago

    custom

    895 views, 3 favs, 1 embeds more stats

    Presentation for Causerie at ADMB Bruges, Thursday more

    More info about this document

    CC Attribution License

    Go to text version

    • Total Views 895
      • 893 on SlideShare
      • 2 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 0
    Most viewed embeds
    • 2 views on http://randomboard.blogspot.com

    more

    All embeds
    • 2 views on http://randomboard.blogspot.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories