Published on

  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. From stories to patterns (and back (and back again)) ‏ A pattern language network tutorial Yishay Mor, Oct. 2008
  2. 2. Problem: sharing design knowledge <ul><li>Acceleration : the world is changing. Fast. Faster. </li></ul><ul><li>The design divide : access to technology is not the barrier; Access to the knowledge of how to make and use it is. </li></ul><ul><li>See: </li></ul>
  3. 3. The void The Prophets will tell you what should be done The Explorers will tell you what they did Current discussion of learning and technology alternates between the abstract theoretical and the anecdotal. In between there is a shortage of design-level discourse. ?
  4. 4. Where am I? What do I do now? You're in a hot air balloon You should find where you want to go and land there. Did I tell about the time I crossed the Himalayas in a Zeppelin?
  5. 5. Therefore.. <ul><li>Collect stories of success </li></ul><ul><li>Extract their essence as design patterns. </li></ul><ul><li>See: How to write a case story </li></ul><ul><ul><ul><ul><li>But ... </li></ul></ul></ul></ul>
  6. 6. The long way from cases to patterns <ul><li>The bull can't see his horns. </li></ul><ul><ul><li>Practitioners are often too close to their story, the key element of success seems obvious to them. </li></ul></ul><ul><li>“ Oh, that's common sense” </li></ul><ul><ul><li>there's nothing common about common sense. </li></ul></ul><ul><li>The “make something useful” pattern (aka “like, duh? ”) ‏ </li></ul><ul><ul><li>Avoid stating the obvious* </li></ul></ul><ul><ul><ul><li>(yes, this is an example) ‏ </li></ul></ul></ul>
  7. 7. Some questions to ask a case.. <ul><li>What are you about ? What are you an example of ? </li></ul><ul><li>What was successful? </li></ul><ul><li>What made it successful? </li></ul><ul><li>What in the context was necessary for it to be </li></ul><ul><li>successful? </li></ul><ul><li>When might it not work? </li></ul><ul><li>Do we have any other examples of this? </li></ul>
  8. 8. I see a pattern! <ul><li>Name it (and rename later)‏ </li></ul><ul><li>Write it in 30 words - NOW ! </li></ul><ul><li>Fry it </li></ul><ul><li>Sing it </li></ul><ul><li>Draw it </li></ul>C o n t e x t Problem Solution
  9. 9. Some questions to ask a pattern <ul><li>What's your problem? </li></ul><ul><li>What would we do without you? (why do we need you) ‏ </li></ul><ul><li>How are you different from X? </li></ul><ul><li>What are your boundaries? (when are you not relevant) ‏ </li></ul><ul><li>Walk me through the steps </li></ul>
  10. 10. Huston. We have a problem If there isn't a problem, there's no need to design. Problems are your friends! A good problem description is half the solution. But, describing a problem is a problem Colliding forces: we want A, but need to satisfy B Elimination: Where would we be without this? Exclusion: What does this solve that a cheaper alternative couldn't C o n t e x t Problem Solution
  11. 11. It depends (on the ...)‏ Too broad : applicable everywhere, but hard to apply Too narrow : immediate to apply but rare application Feature deletion: Start from a story context, delete non-essential detail Boundaries: Note where this pattern doesn't apply Fusing: Find two examples, note common features C o n t e x t Problem Solution
  12. 12. [describe] a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem, in such a way that you can use this solution a million times over, without ever doing it the same way twice (Alexander et al., 1977)‏ C o n t e x t Problem Solution
  13. 13. Back to stories: rule of three (revised*)‏ <ul><li>Find two more examples of this pattern </li></ul><ul><li>Find one “near-miss”: similar story that doesn't match </li></ul><ul><li>Interrogate the stories, adjust the pattern. </li></ul><ul><li>Link </li></ul><ul><li>* </li></ul>
  14. 14. ..and back to the pattern <ul><li>Link to related patterns </li></ul><ul><li>Refine distinctions & refactor if needed </li></ul><ul><ul><li>Draw clear lines between this and other patterns. </li></ul></ul><ul><ul><li>Identify part-of / instance-of relations </li></ul></ul><ul><ul><li>If needed, split into sub-patterns, add super-patterns, or merge redundant patterns. </li></ul></ul><ul><li>Revisit the name & summary </li></ul><ul><li>Present for review </li></ul>
  15. 15. Repeat.
  16. 16. Thank you The pattern language network project: Participate: Yishay Mor This presentation