Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Humane Development

Humane Development

Agile. Scrum. Kanban. Waterfall. TDD. BDD. OOP. FP. AOP. WTH?

As a software developer, I can adopt methodologies so that I feel there's a sense of order in the world.

There's a problem with this story: We are humans, developing software with humans, to benefit humans. And humans are *messy*.

We wrap ourselves in process, trying to trade people for personas, points, planning poker, and the promise of predictability. Only people aren't objects to be abstracted away. Let's take some time to think through the tradeoffs we're making together.

Ernie Miller

April 21, 2015
Tweet

More Decks by Ernie Miller

Other Decks in Programming

Transcript

  1. Ernie Miller humanedevelopment.org @erniemiller
    Humane Development

    View Slide

  2. erniemiller

    View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. View Slide

  7. It’s not my fault.

    View Slide

  8. Aptenodytes ashamed
    Dave Morris
    CC BY 2.0

    View Slide

  9. Lots of penguins
    Brian Gratwicke
    CC BY 2.0

    View Slide

  10. Walking away
    Mindy Kimball
    Used with permission

    View Slide

  11. Software

    View Slide

  12. Software
    + Team

    View Slide

  13. Software
    + Team
    + Culture

    View Slide

  14. Software
    + Team
    + Culture
    It’s totally my fault.

    View Slide

  15. STORY TIME!

    View Slide

  16. View Slide

  17. View Slide

  18. View Slide

  19. Simple Kanban Board
    Jeff Lasovski
    http://creativecommons.org/licenses/by-sa/3.0

    View Slide

  20. View Slide

  21. “You’re thinking of this all wrong. Think of it like another
    development task. Your team members are objects in
    the system and you’re doing engineering just like you
    would with software.”
    — A Former Boss

    View Slide

  22. “You’re thinking of this all wrong. Think of it like another
    development task. Your team members are objects in
    the system and you’re doing engineering just like you
    would with software.”
    — A Former Boss

    View Slide

  23. I HAVE NO IDEA
    WHAT I’M DOING

    View Slide

  24. Person.is_a? Object

    View Slide

  25. Person.is_a? Object
    # => SO MUCH FALSE

    View Slide

  26. View Slide

  27. Please Use Revolving Door
    Thomas Hawk
    CC BY-NC 2.0

    View Slide

  28. View Slide

  29. Tell me
    about your
    childhood.
    Personal space. Have
    you heard of it?

    View Slide

  30. View Slide

  31. “The Business” Values

    View Slide

  32. “The Business” Values
    1.Predictability

    View Slide

  33. “The Business” Values
    1.Predictability
    2.Measurability

    View Slide

  34. “The Business” Values
    1.Predictability
    2.Measurability
    3.Control

    View Slide

  35. © Jorge Royan / http://www.royan.com.ar / CC-BY-SA-3.0

    View Slide

  36. View Slide

  37. Man in a Box
    Keith Allison
    CC BY-SA 2.0
    Abstraction!

    View Slide

  38. Human

    View Slide

  39. Human Resources

    View Slide

  40. Resources

    View Slide

  41. We are humans
    working with humans
    to develop software
    for the benefit of humans.

    View Slide

  42. View Slide

  43. Humane Development

    View Slide

  44. humane

    View Slide

  45. humane

    View Slide

  46. Source: New Oxford American Dictionary
    humane |(h)yo
    ͞ oˈmān|
    adjective
    1 having or showing compassion or benevolence
    • inflicting the minimum of pain
    2 intended to have a civilizing or refining effect
    on people

    View Slide

  47. Agile

    View Slide

  48. The Land That Scrum Forgot
    Robert C. Martin

    View Slide

  49. View Slide

  50. “Martin Fowler and I sat down and said ‘You know, we
    should form an organization.’”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  51. “We called this the ‘Lightweight Process Summit’.”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  52. “It was at that meeting we coined the term ‘Agile’.”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  53. “It was Ward Cunningham, I believe, who said
    ‘You know, what we need here is a few
    statements where we don't disparage the old
    way of working. We say that we value the
    old way of working, but we value these
    other things more.’ ”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  54. 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.
    The Agile Manifesto
    agilemanifesto.org

    View Slide

  55. “At this meeting, Kent Beck reiterated his mission,
    his vision. He said again, ‘You know, this Agile
    thing, if we're going to call it Agile — it should
    be to heal the divide between business and
    development.’ And we all agreed.”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  56. “Who do you think was taking these courses — these
    Certified Scrum Master courses? Was it
    developers? No. See, I was a developer, and I
    thought it was stupid. And all the other developers
    I talked to said ‘This is stupid.’ Who was it that
    didn't think it was stupid? Project Managers!”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  57. “A Scrum Master was a coach. A Scrum
    Master was not a manager — explicitly
    not a manager, not supposed to be a
    manager.”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  58. “[...] the role was supposed to rotate through the
    various team members. [...] And frankly, the idea
    of the role was to slowly kind of fade away
    so that in the end you wouldn't need a Scrum
    Master.”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  59. “I don't think that the Project Managers who
    took the Certified Scrum Master course liked
    that particular interpretation.”
    – Robert C. Martin, “The Land That Scrum Forgot”

    View Slide

  60. Individuals and interactions over processes and tools
    Working software over comprehensive documentation
    Customer collaboration over contract negotiation
    Responding to change over following a plan

    View Slide

  61. View Slide

  62. Speed

    View Slide

  63. Hustle

    View Slide

  64. View Slide

  65. View Slide

  66. hustle

    View Slide

  67. hustle

    View Slide

  68. hustle |ˈhəәsəәl|
    verb
    1 force (someone) to move hurriedly or unceremoniously in a specified
    direction
    • push roughly; jostle
    • hurry; bustle
    2 obtain by forceful action or persuasion
    • coerce or pressure someone into doing or choosing something
    • sell aggressively
    • obtain by illicit action; swindle; cheat
    3 engage in prostitution.
    noun
    1 busy movement and activity
    2 a fraud or swindle.
    Source: New Oxford American Dictionary

    View Slide

  69. HUSTLE

    View Slide

  70. View Slide

  71. F5 tornado Elie Manitoba 2007 — Justin1569 — CC BY-SA 3.0

    View Slide

  72. The notion of hustle-as-a-
    virtue is one of the most
    damaging memes afflicting
    software developers today.

    View Slide

  73. View Slide

  74. POINTS

    View Slide

  75. VELOCITY = ZOMG!

    View Slide

  76. Jeremy Wariner, ©2007 Phil McElhinney, CC BY-SA 2.0

    View Slide

  77. Dr. Izumi Tabata

    View Slide

  78. Tabata Intervals (2:1 work/recovery)
    Typical Sprint (1:3 work/recovery)
    = 10 seconds

    View Slide

  79. View Slide

  80. View Slide

  81. An unsustainable pace is
    less than worthless.

    View Slide

  82. The Big Picture is not on
    a “Need to Know” Basis
    Unless maybe you work for the CIA.

    View Slide

  83. View Slide

  84. Estimates are lies.

    View Slide

  85. Most deadlines
    are lies.

    View Slide

  86. Most “urgent”
    things aren’t
    really urgent.

    View Slide

  87. Why?
    the importance of

    View Slide

  88. View Slide

  89. But the site is down! It’s
    actually urgent!

    View Slide

  90. Why?

    View Slide

  91. Because it’s down!
    Bad

    View Slide

  92. Because while it’s down, we’re losing
    [credibility|exposure|$x/hr].
    Good

    View Slide

  93. Recursive Non-Answers

    View Slide

  94. Recursive Non-Answers
    We need this feature by March 20th.

    View Slide

  95. Recursive Non-Answers
    We need this feature by March 20th.
    Why?

    View Slide

  96. Recursive Non-Answers
    We need this feature by March 20th.
    Why?
    So we can have this other feature by April 20th.

    View Slide

  97. Recursive Non-Answers
    We need this feature by March 20th.
    Why?
    So we can have this other feature by April 20th.
    Why?

    View Slide

  98. Recursive Non-Answers
    We need this feature by March 20th.
    Why?
    So we can have this other feature by April 20th.
    Why?

    View Slide

  99. “The Divide” is a lie.

    View Slide

  100. We are humans
    working with humans
    to develop software
    for the benefit of humans.

    View Slide

  101. There is no “us.”

    View Slide

  102. There is no “them.”

    View Slide

  103. A mission statement
    is not enough.

    View Slide

  104. Empathy

    View Slide

  105. Honesty

    View Slide

  106. Smoke and Mirrors
    Flickr user: theilr
    CC BY-SA 2.0

    View Slide

  107. View Slide

  108. Crunch Mode is an
    Exceptional Situation

    View Slide

  109. def build_feature
    do_work
    rescue Timeout::Error => e
    sacrifice_time_and_sanity
    end

    View Slide

  110. I’d rather live in a Gotham
    that didn’t need Batman.

    View Slide

  111. I’d rather live in a Gotham
    that didn’t need Batman.

    View Slide

  112. MY BEST
    CODE EVER

    View Slide

  113. View Slide

  114. 100% TEST
    COVERAGE

    View Slide

  115. ZERO
    MAINTENANCE

    View Slide

  116. DOES EXACTLY
    WHAT YOU THINK

    View Slide

  117. Formalized
    processes are code
    for your company.

    View Slide

  118. Be skeptical of
    someone else’s
    processes.

    View Slide

  119. Integration

    View Slide

  120. Integration
    MiniTest

    View Slide

  121. Integration
    MiniTest

    View Slide

  122. – Chad Fowler, “The Curse of a Name: How to Kill a Good Idea”
    “I can ‘Do BDD’ in the same way I can
    sign up for a membership at the gym. I
    feel the sense of accomplishment without
    the need to actually get healthy.”

    View Slide

  123. Processes are a
    problem statement.

    View Slide

  124. Trust

    View Slide

  125. Process

    View Slide

  126. Address the source
    of the problem.

    View Slide

  127. Use processes as a
    last resort.

    View Slide

  128. Legacy

    View Slide

  129. Process
    Metaprogramming

    View Slide

  130. Glenn Vanderburg
    @glv

    View Slide

  131. View Slide

  132. View Slide

  133. View Slide

  134. “Please note that this roundabout diagram is
    an example only and does not represent all
    roundabout designs.”

    View Slide

  135. “Always drive so that everyone
    around you knows what you’re
    going to do before you do it.”
    – Thad Vanderburg

    View Slide

  136. View Slide

  137. A Theory of Evolution for Tools

    View Slide

  138. A Theory of Evolution for Tools
    1. Reflect

    View Slide

  139. A Theory of Evolution for Tools
    1. Reflect
    2. Become

    View Slide

  140. A Theory of Evolution for Tools
    1. Reflect
    2. Become
    3. Define

    View Slide

  141. View Slide

  142. Build small tools.

    View Slide

  143. Small tools are
    honest.

    View Slide

  144. Small tools are
    honest.
    (and probably won’t turn sentient and decide to use you as a power source)

    View Slide

  145. Leave room
    for choices.

    View Slide

  146. Dr. Martin Seligman
    The Father of Positive Psychology

    View Slide

  147. View Slide

  148. Dr. Ivan Pavlov
    Nobel Laureate, Grower of Splendid Beard

    View Slide

  149. View Slide

  150. View Slide

  151. Learned
    Helplessness

    View Slide

  152. Dr. Ellen Langer Dr. Judith Rodin

    View Slide

  153. The Effects of Choice and Enhanced Personal Responsibility for the Aged:
    A Field Experiment in an Institutional Setting

    View Slide

  154. The Effects of Choice and Enhanced Personal Responsibility for the Aged:
    A Field Experiment in an Institutional Setting
    Experiment Control
    You’re responsible for yourself Staff is responsible for you
    You have freedom to make choices Choices are made for you
    Choose and care for a plant Plant is assigned and cared for by staff

    View Slide

  155. The Effects of Choice and Enhanced Personal Responsibility for the Aged:
    A Field Experiment in an Institutional Setting
    Experiment Control
    You’re responsible for yourself Staff is responsible for you
    You have freedom to make choices Choices are made for you
    Choose and care for a plant Plant is assigned and cared for by staff
    Questionnaire ratings and behavioral measures showed a significant
    improvement for the experimental group over the comparison group on
    alertness, active participation, and a general sense of well-being.

    View Slide

  156. – Every abuser of power, everywhere
    “If you don’t like it, leave.”

    View Slide

  157. View Slide

  158. AND NOW FOR
    SOMETHING
    COMPLETELY
    DIFFERENT

    View Slide

  159. View Slide

  160. View Slide

  161. View Slide

  162. Helpless?

    View Slide

  163. We can work…

    View Slide

  164. We can work…
    …any time.

    View Slide

  165. We can work…
    …any time.
    …anywhere.

    View Slide

  166. We can work…
    …any time.
    …anywhere.
    …in many different ways.

    View Slide

  167. View Slide

  168. Empathy
    Honesty
    Trust

    View Slide

  169. Control

    View Slide

  170. Autonomy

    View Slide

  171. People are just like objects!
    OOP, baby!
    — Horrible Boss

    View Slide

  172. Object-Oriented Programming
    isn’t about objects.

    View Slide

  173. Object-Oriented Programming
    isn’t about objects.

    View Slide

  174. Everything about your
    organization is encoded in
    communication.

    View Slide

  175. Processes are just
    reusable messages!

    View Slide

  176. Processes are just
    reusable messages!
    (good)

    View Slide

  177. SNR

    View Slide

  178. Must be willing to
    relocate to 1992

    View Slide

  179. Must be willing to
    relocate to 1992
    to 1992

    View Slide

  180. Stop trying to
    substitute throughput
    for efficiency.

    View Slide

  181. PROGRAMMING IS
    WRITTEN
    COMMUNICATION

    View Slide

  182. View Slide

  183. View Slide

  184. View Slide

  185. View Slide

  186. View Slide

  187. View Slide

  188. – Tony Robbins, Author
    “Change happens when the pain
    of staying the same is greater
    than the pain of change.”

    View Slide

  189. Thought Work

    View Slide

  190. View Slide

  191. Work

    View Slide

  192. View Slide

  193. Really hard work

    View Slide

  194. – R. Keith Sawyer, Ph.D.
    “In creativity research, we refer to the
    three Bs—for the bathtub, the bed and
    the bus—places where ideas have
    famously and suddenly emerged.”

    View Slide

  195. You are literally
    always working.

    View Slide

  196. Lead by
    example.

    View Slide

  197. Empathy
    Honesty
    Trust
    Autonomy

    View Slide

  198. Stop looking for
    people to control.

    View Slide

  199. Why?

    View Slide

  200. That’s not how
    relationships work.

    View Slide

  201. Ernie Miller @erniemiller
    Humane Development
    humanedevelopment.org

    View Slide

  202. Ernie Miller @erniemiller
    Humane Development

    humanedevelopment.org
    ZOMG STICKERS!!

    View Slide