Values Drive Development

Values Drive Development

How we develop and ship software expresses the values of our team, business & users. Many teams can’t state their driving values. The process of outlining a shared set of values can lead to enhanced team identity and help align development efforts. The inverse of this process is looking at what the team has done historically and working backward from that to find the implicit values that have driven team behavior. If we study how we spend time, money and energy, we can cultivate a picture of our values in practice. There will be a gap or dissonance between our self professed values and those visible to others from our actions. Embracing this dissonance can drive out more clarity, coherence and transparency in our future efforts.

Fc6a528fe2b60482971b1642577ae43d?s=128

Alan Stevens

March 14, 2015
Tweet

Transcript

  1. Values Driven Development H. Alan Stevens

  2. Nobody ever gets everything they want from a software system.

  3. Software is Complex

  4. "Everything should be made as simple as possible, but no

    simpler." Albert Einstein
  5. Compromise

  6. "Under the hood, most critical software you use every day

    (like Mac OS X, or Facebook) contains a terrifying number of hacks and shortcuts that happen to barely fit together into a working whole." Ben Cherry
  7. Fast, Good or Cheap Pick Two

  8. Budget Scope Schedule The Iron Triangle

  9. Tradable Quality

  10. The Design Stamina Hypothesis http://martinfowler.com/bliki/DesignStaminaHypothesis.html

  11. None
  12. Quality is building it right Design is building the right

    thing
  13. My biggest challenge as a developer is coding the right

    thing, rather than coding the thing right. Liz Koegh
  14. Design > Quality

  15. It doesn’t matter how well you build the wrong thing.

  16. None
  17. “I expect a programmer to apply the appropriate amount of

    rigor, discipline and excellence to any situation.” Dan North
  18. Quality has a minimum acceptable threshold

  19. Good enough is good enough.

  20. “Alan will always do the right thing no matter how

    long it takes or how much it costs.” Ross Young
  21. Technical Debt

  22. Show me the values!

  23. "We will encourage you to develop the three great virtues

    of a programmer: laziness, impatience, and hubris." Larry Wall
  24. Laziness

  25. Impatience

  26. Hubris

  27. None
  28. 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. http://agilemanifesto.org/
  29. Individuals and Interactions

  30. Working Software

  31. Customer Collaboration

  32. Responding to Change

  33. “A fanatic is one who redoubles his effort when he

    has forgotten his aim.” George Santayana
  34. “The real goal of the methodologies is to sell books,

    not to actually solve anybody's problem.” Joel Spolsky
  35. Fuck Software Craftsmanship

  36. Next topic…

  37. As aspiring Software Craftsmen we are raising the bar of

    professional software development by practicing it and helping others learn the craft. Through this work we have come to value: • Not only working software, but also well- crafted software • Not only responding to change, but also steadily adding value • Not only individuals and interactions, but also a community of professionals • Not only customer collaboration, but also productive partnerships That is, in pursuit of the items on the left we have found the items on the right to be indispensable.
  38. Well-crafted Software

  39. Steadily Adding Value

  40. A Community of Professionals

  41. Productive Partnerships

  42. Being against craftsmanship is like being against World Peace, kittens

    or sliced bread. David Harvey
  43. “The craft of programming begins with empathy, not formatting or

    languages or tools or algorithms or data structures.” Kent Beck
  44. The *ILITIES Agility Testability Readability Reversibility Changeability Flexibility Maintainability Coined

    by Kevlin Henney
  45. "The standard you walk past is the standard you accept”

    Lt-Gen David Morrison
  46. “By allowing it to happen, without stepping in, you are

    giving it your implicit approval.” Paul Cowan