Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Chasing elephants

2 681 vues

Publié le

These are the slides for my closing keynote at Codemotion Rome 2017. About elephants in the software development room.

Publié dans : Direction et management

Chasing elephants

  1. 1. Chasing Elephants @ziobrando
  2. 2. About me • Coding since 1982 • … but that’s not what I get paid for • #DDDesign #Agile #Lean #Complexity • I invented • I smell
  3. 3. Disclaimer • This talk will be a collection of obviousness and inconvenient truth • … something like a pub rant, • … or maybe I do have a plan.
  4. 4. My first elephant
  5. 5. Long long time ago…
  6. 6. Long long time ago… • Customer: “we need a new architecture!”
  7. 7. Long long time ago… • Customer: “we need a new architecture!” • Me: “A good architecture won’t save you! You have a bigger problem than that…”
  8. 8. Long long time ago… • Customer: “we need a new architecture!” • Me: “A good architecture won’t save you! You have a bigger problem than that…” • Customer: “That is not what you’re hired for: you’re an architect!”
  9. 9. Long long time ago… • Customer: “we need a new architecture!” • Me: “A good architecture won’t save you! You have a bigger problem than that…” • Customer: “That is not what you’re hired for: you’re an architect!”
  10. 10. Especially if they are in the way between you and the solution Labels are Crap
  11. 11. … or that was what i thought We’re just problem solvers with a common goal
  12. 12. Saying NO is always an option
  13. 13. Accelerated growth
  14. 14. Phase one: Inception
  15. 15. Phase one: Inception • team Building (whatever that means)
  16. 16. Phase one: Inception • team Building (whatever that means) • Pile up features in any possible way
  17. 17. Phase one: Inception • team Building (whatever that means) • Pile up features in any possible way #Purpose
  18. 18. Phase one: Inception • team Building (whatever that means) • Pile up features in any possible way #energy #Purpose
  19. 19. Phase one: Inception • team Building (whatever that means) • Pile up features in any possible way #energy #Purpose #FUN
  20. 20. Phase two: Ramp up
  21. 21. Phase two: Ramp up • Money pouring in
  22. 22. Phase two: Ramp up • Money pouring in • Hiring frenzy
  23. 23. Phase two: Ramp up • Money pouring in • Hiring frenzy • Massive recruitment schema
  24. 24. Phase two: Ramp up • Money pouring in • Hiring frenzy • Massive recruitment schema • Externalise recruiting
  25. 25. Phase two: Ramp up • Money pouring in • Hiring frenzy • Massive recruitment schema • Externalise recruiting • More people
  26. 26. Phase two: Ramp up • Money pouring in • Hiring frenzy • Massive recruitment schema • Externalise recruiting • More people • Interruptions / meetings / bugs
  27. 27. Phase two: Ramp up • Money pouring in • Hiring frenzy • Massive recruitment schema • Externalise recruiting • More people • Interruptions / meetings / bugs #energy
  28. 28. “we hired random dudes and the results were amazing!!!”
  29. 29. no one ever “we hired random dudes and the results were amazing!!!”
  30. 30. Phase Three: Outsourcing
  31. 31. Phase Three: Outsourcing • Internal devs turned into supervisors
  32. 32. Phase Three: Outsourcing • Internal devs turned into supervisors • From doing
  33. 33. Phase Three: Outsourcing • Internal devs turned into supervisors • From doing • To controlling
  34. 34. Phase Three: Outsourcing • Internal devs turned into supervisors • From doing • To controlling • To fixing
  35. 35. Phase Three: Outsourcing • Internal devs turned into supervisors • From doing • To controlling • To fixing #Scaling
  36. 36. Phase Three: Outsourcing • Internal devs turned into supervisors • From doing • To controlling • To fixing #Scaling #Bureaucracy
  37. 37. Phase Three: Outsourcing • Internal devs turned into supervisors • From doing • To controlling • To fixing #Scaling #Bureaucracy #Boredom
  38. 38. an inconvenient truth Bad developers code Good developers cleanup
  39. 39. Sure! Cleaning up your dishes has always been my secret goal.
  40. 40. Phase Four: The aftermath • Welcome to Legacyland!!! • quite a few good devs leave #Ouch
  41. 41. More or less… Good developers mostly cleaning Good developers will leave Massive hire of external contractors Internal developers need to coordinate externals No time for coding for internal devs Economic Opportunity Enough budget Bad code will stay Increased amount of crappy code ?
  42. 42. How can it be possible?
  43. 43. Being richer doesn’t make you right
  44. 44. What happens when you google “software developer” for images?
  45. 45. Slacking off
  46. 46. Slacking off gears?
  47. 47. clueless dude in the middle Slacking off gears?
  48. 48. clueless dude in the middle Slacking off gears? xactly!!
  49. 49. clueless dude in the middle Slacking off gears? Watching porn xactly!!
  50. 50. clueless dude in the middle Slacking off gears? Watching porn My man! xactly!!
  51. 51. Typical developer “I think in 0 and 1, then I mind transmit it straight to my computer screen”
  52. 52. There’s a blind spot
  53. 53. Many companies have never seen a real senior developer
  54. 54. Many companies have never seen a real senior developer …and probably never will
  55. 55. “We want to reward individual productivity!”
  56. 56. “We want to reward individual productivity!”
  57. 57. “We want to reward individual productivity!”
  58. 58. “We want to reward individual productivity!”
  59. 59. The Cheaper Talent Hypothesis Courtesy of Martin Fowler (2008)
  60. 60. Salary elephant
  61. 61. Salary elephant • A good developer could be significantly more effective than a bad one
  62. 62. Salary elephant • A good developer could be significantly more effective than a bad one • up to an order of magnitude more,
  63. 63. Salary elephant • A good developer could be significantly more effective than a bad one • up to an order of magnitude more, • not to mention negative productivity
  64. 64. Salary elephant • A good developer could be significantly more effective than a bad one • up to an order of magnitude more, • not to mention negative productivity • Salary won’t grow in proportion
  65. 65. What would you do?
  66. 66. Entangled problems • Seniors are more expensive … but also more risky! • Can’t recognise a good senior
  67. 67. “Years of experience” don’t make seniority
  68. 68. Let’s hire juniors instead!
  69. 69. The Junior Elephant
  70. 70. The “young promise” scenario
  71. 71. The “young promise” scenario 1. Hire cheap juniors … one will shine!
  72. 72. The “young promise” scenario 1. Hire cheap juniors … one will shine! 2. Provide them training…
  73. 73. The “young promise” scenario 1. Hire cheap juniors … one will shine! 2. Provide them training… 3. No, Step 2 was a joke! :-)
  74. 74. Hire cheap + Add Pressure
  75. 75. Hire cheap + Add Pressure ???
  76. 76. What happens when… The gifted one discovers he/She’s good?
  77. 77. Even if you were lucky, the chances you’ll be able to retain a gifted one, are really low.
  78. 78. And bribing won’t work
  79. 79. Autonomy Mastery Purpose https://vimeo.com/15488784 …a good model?
  80. 80. The talented elephant
  81. 81. Where do the talented go?
  82. 82. good developers go where good developers are
  83. 83. –Johnny Appleseed “Type a quote here.”
  84. 84. good developers go where they can learn something
  85. 85. good developers go where there some good stuff to do
  86. 86. “Software development is a learning process Working code is a side effect”
  87. 87. Good Software developers are compulsive learners
  88. 88. They’ll leave when there’s no learning left.
  89. 89. The elephant in the middle of the road
  90. 90. Development team • It’s not supposed to talk with the users • It’s not supposed to talk with the real experts • It’s not supposed to talk with the real customer
  91. 91. How the hell are we supposed to learn?
  92. 92. But there’s something worse than that
  93. 93. Purpose is lost
  94. 94. I am a Craftsman!
  95. 95. I am a Craftsman! I am the Product Owner
  96. 96. I am a Craftsman! I am the Product Owner I am a Senior Architect!
  97. 97. I am a Craftsman! I am the Product Owner I am a Senior Architect! I am the boss!
  98. 98. –Johnny Appleseed “Type a quote here.”
  99. 99. Long time ago
  100. 100. Long time ago • Surveyed a huge codebase:
  101. 101. Long time ago • Surveyed a huge codebase: • 500 k lines of code
  102. 102. Long time ago • Surveyed a huge codebase: • 500 k lines of code • Obsolete technology
  103. 103. Long time ago • Surveyed a huge codebase: • 500 k lines of code • Obsolete technology • Oscillating between useless and poisonous
  104. 104. Long time ago • Surveyed a huge codebase: • 500 k lines of code • Obsolete technology • Oscillating between useless and poisonous • Strong political backing to “revive” the project
  105. 105. Long time ago • Surveyed a huge codebase: • 500 k lines of code • Obsolete technology • Oscillating between useless and poisonous • Strong political backing to “revive” the project • Negligible user base.
  106. 106. No purpose (again)
  107. 107. and no regrets! Goodbye!
  108. 108. No joy in writing, damn hard to remove and change Software without a purpose is poisonous
  109. 109. Not much time ago
  110. 110. Not much time ago • Cool startup
  111. 111. Not much time ago • Cool startup • Tons of money
  112. 112. Not much time ago • Cool startup • Tons of money • Cool technology
  113. 113. Not much time ago • Cool startup • Tons of money • Cool technology • Not so clear purpose …They must be right!
  114. 114. No purpose (again)
  115. 115. Symptoms • Feature creep • lots of unproven hypothesis
  116. 116. Takeaways
  117. 117. I’ve seen many places, but the problems are always the same
  118. 118. In 2017 software development is still managed as a production process… Management advice
  119. 119. In 2017 software development is still managed as a production process… IT IS NOT Management advice
  120. 120. Management advice Work to create an ecosystem where learning and delivery are possible
  121. 121. Learn! Practice! Experiment! Developers advice Be Safe, Fail, retry
  122. 122. Stop writing purposeless software Developers advice
  123. 123. 1. Find your real users 2. make them happy 3. repeat
  124. 124. Chase your elephants…
  125. 125. …Or they’ll chase you
  126. 126. Thank you!
  127. 127. Game Changers

×