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

Software and Sand Piles (Path to Agility, 2012)

Software and Sand Piles (Path to Agility, 2012)

Zach Dennis

May 24, 2012
Tweet

More Decks by Zach Dennis

Other Decks in Programming

Transcript

  1. It’d be simple to just subclass Array. Then we don’t

    have to change anything outside of the subclass!
  2. We need to be able to pass in more options

    when querying. Update our Array subclass!
  3. We want to query SOLR for multiple models in our

    system. Let’s have our Array know about all of those. Then nothing else has to change!
  4. Query SOLR for slightly different kinds of models? Well, shucks,

    we’ve got a working implementation. Let’s go ahead and follow that approach!
  5. For the want of a nail, the shoe was lost;

    For the want of a shoe, the horse was lost; For the want of a horse, the rider was lost; For the want of a rider, the battle was lost; For the want of a battle, the war was lost! Art by CSnyder @ DeviantArt
  6. self-organized criticality A property of a system that has a

    critical state (point) as an attractor.
  7. • The critical point represents a system that can no

    longer be added to as-is. • The state of the system is REALLY BAD • Development must stop, cleaning must occur. (this isn’t cleaning up as you go, this is waiting for a mess)
  8. Teams often get caught by starting out at a rapid

    pace only to be halted not to long thereafter.
  9. The simple act of adding something to the system moves

    the system closer to its critical point; it’s edge of chaos.
  10. The Vicious Stop n Go. Vicious Stop / Go Cycle

    critical point Functionality Difficulty
  11. The Vicious Stop n Go. Smaller apps get away with

    it. critical point Functionality Difficulty small app large app
  12. complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity

    complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity
  13. Rather than jump to sub-classing Array, make the concept of

    a SolrRequest explicit. Also, rely on simple JSON support for converting SOLR results to objects.
  14. Practices are important but values are at their core, whether

    plentiful or lacking, they impact every practice that you do.
  15. If we can afford ourselves the humility to accept it

    may help us be better served as curators and caretakers of our systems, much like a gardener with their garden.
  16. How’s the landscape of your software? twitter: @zachdennis github: zdennis

    mutuallyhuman.com Sand Piles & Software Article in April PragPub