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

Capturing Design (When You Really Have To) from XP2016

Capturing Design (When You Really Have To) from XP2016

The Agile Manifesto was partly borne out of valid frustration with “document first” software development methods that seemed to care more about the font size in the documentation set than the value of the software that was delivered. This led to the statement that we value “working software over comprehensive documentation” and a healthy focus on the value of everything we do in software development.

As is so often the case though, we probably overcorrected and we're now often in the situation with 8 year old projects that have lost sight of their fundamental design principles and rationale leading to the very sort of “cargo cult” behaviour that the Agile movement exists to remove. In my design and architecture work with Agile teams, this is something that (as a self-confessed “over-documentor”) I've been working to resolve for years.

In this talk, I discuss what architecture and design information is useful to capture and why. This leads to a set of tangible practices and guidelines to help teams find the right balance in their particular situations.

Eoin Woods

May 25, 2016
Tweet

More Decks by Eoin Woods

Other Decks in Programming

Transcript

  1. Knowledge Attrition • “untouchable” code • mysteriously failing tests •

    odd decisions from long ago • new extensions are always an adventure!
  2. Limitations of code The truth not the whole truth Many

    people don’t read code Organised for machines Mismatch with communication
  3. • M • U • S • I • C

    • AUDIENCE • PURPOSE “MUSIC”
  4. • WORK IN PROGRESS “Indexed” and “checked” are Nat Pryce’s

    suggestions to add to the “minimal”, “significant”, “usable” set I proposed. These look important to me, but I haven’t thought them through yet.
  5. • WHO • TECHNICAL • KNOW • UNDERSTAND • WHAT

    • TASKS • INFORMATION • CHARACTERISTICS
  6. RECORD • FUTURE NEED TO KNOW • LONGEVITY • SEMANTICS

    • LINK • ORGANISE COMMUNICATE • WHO WHY • CLARITY • THROW IT AWAY
  7. • CODE STORY • WHOLE STORY • KNOWLEDGE ATTRITION •

    RECORD COMMUNICATE • PRINCIPLES PRAGMATICS