10/22/2023

PLoP® Pattern Writing Bootcamp
Held at Allerton Park, Monticello Illinois

Joseph (Joe) Yoder joe@refactory.com
Rebecca Wirfs-Brock rebecca@wirfs-brock.com

PLoP is a registered Trademark of The Hillside Group.

© The Refactory & Joseph W. Yoder
Wirfs-Brock Associates
Rebecca Wirfs-Brock
All Rights Reserved

A pattern usually focuses on a nontrivial problem in which several
things need to be considered110/22/2023

Pattern Elements

Context
In which situations
can I use this pattern?

ProblemWhat does it try to solve?
What question does it answer?

Solution
What can I dothat usually works?

2

10/22/2023+PROCESS

THING

The solution describes the final
result and ways to achieve it

The name of the pattern is very
important because it will bepart of the user’s vocabulary!

pattern?

yes3

10/22/2023

The thing createdby applying thepattern
Action toachieve thepattern
Metaphors thatassociate the patternwith other concepts

CommandProcessor
Model-ViewController

EngageCustomer
Involve
Everyone

Do Food

VisitorPattern forces arecontradictory and pull
in different directions…
This tension between forces iswhat makes the problem complex!

410/22/2023

Some Forces in Patterns for
Sustaining Architectures
Ongoing Development: How can you
safely rework and evolve thearchitecture with minimal impact?
Limited Options for Refactoring: Why
refactor something that is currently
released and working? Should you
evolve parts of the system and leavecode alone?
Limited Value to Refactoring: It isn’t
obvious that refactoring some code
will make programming any lesstedious or error prone.

Explain both positive
and negative
consequencesof applying the pattern

Benefits

Drawbacks510/22/2023

Pattern Languages
and Generativity

Generativity• Definition: Having the ability to originate, produce,or procreate (make something new)
• Wikipedia:– Generativity in essence describes aself-contained system from which its
user draws an independent ability tocreate, generate, or produce new content
unique to that system without additional
help or input from the system’s original creators6

10/22/2023

Pattern Languages
Related patterns“Each pattern then, depends both on thepatterns it contains, and on the
documenting solutions smaller
larger patterns within which it is contained”
for a given domain
Alexander, TTWOB, p 312

Collections vs. Languages• Pattern collection– no claim of completeness or deep connections between patterns– patterns often are used in isolation• Pattern language– include higher level patterns that guide
you to more specific, lower-level patterns– discusses all the things you need to consider to build something• Both have value, languages more complete7

10/22/2023

Parts of a Pattern Language• Intent: A description of the language’s intent• Maps: Diagrams showing how patterns
build on and relate• Context: An explanation of situations where
the pattern language is completeenough to make something significant• The patterns that make up the language• Sequences: Stories/descriptions of how
to use several patterns in the language
to solve a larger problem

Example Pattern Languages
Chapter 3: Initial Contact
System experts
Talk withend users
Pattern 3.1:
Chat with theMaintainers

Talk withdevelopers
Pattern 3.4:
Interview During
DemoTalk about it

Software System
Verify what
you hear

ReaditPattern 3.2:
Read All the Codein One Hour

Readaboutit

Compileit

Pattern 3.5:
Pattern 3.3:
Do a MockSkim theDocumentation Installation

Each chapter in Object-Oriented Reengineering Patterns is a small language

810/22/2023

Sequences…

94 patterns within 2 pattern languages
Product Organization Pattern Language& Value Stream Pattern Language

Described at ScrumPLoP as the sequence of oneof Jeff’s most successful teams doing Scrum…

Understanding Sequences…

Simpler than thisNot as linear as this910/22/2023

Patterns Sequences forGrowing a Magic Backlog*

4. Program Level patterns sequence
1. Early days patterns sequence

3. Refactoring and Clean-up patterns
2. Maturing project patterns sequence
sequence*Pattern language by Lise Hvatum and Rebecca Wirfs-Brock

Strangler Sequences1010/22/2023

Pattern Languages vs Sequences
Scaling Sequence371271834

Group Exercise
Let’s help Mary Lynn find sequences
for the Fearless Change Patterns

1110/22/2023

Pattern Forms and Styles

Contrasting Poetic Styles• SONNET—a poem of fourteen lines, usually in
iambic pentameter that has one of two regularrhyme schemes
From fairest creatures we desire increase,That thereby beauty’s rose might never die.
But as the riper should by time decease,
His tender heir might bear his memory:
But thou, contracted to thine own bright eyes,
Feed'st thy light’s flame with self-substantial fuel,Making a famine where abundance lies,
Thyself thy foe, to thy sweet self too cruel.
Thou that art now the world’s fresh ornament
And only herald to the gaudy spring,Within thine own bud buriest thy content
And, tender churl, mak'st waste in niggarding.
Pity the world, or else this glutton be,
To eat the world’s due, by the grave and thee.

-William Shakespeare

1210/22/2023

Contrasting Poetic Styles• Haiku—three lines, with the first and last line
having 5 moras, and the middle line having 7. A
mora is a sound unit, much like a syllable, but is notidentical to it. Since the moras do not translate wellinto English, in English it has been adapted andsyllables are used as moras.
Furuike ya
Kawazu tobikomu
Mizu no oto-Basho Matsuo

The old pond,
A frog jumps in,PLoP!
-Translated by: Allan Watts

Contrasting Poetic Styles• Limerick—a five-line joke of a poem — witty,
usually involving place names and puns, andmost often bawdy, sometimes unprintable…
There was a small boy of Quebec
Who was buried in snow to his neck
When they said, “Are you friz?”
He replied, “Yes, I is —But we don't call this cold in Quebec”-Rudyard Kipling13

10/22/2023

Pattern Styles• There isn’t one “right” way to write a pattern• Patterns can be written in various forms
and forms can be adjusted to your audience• Major forms:– Christopher Alexander style– SW Pattern styles:• GOF (Design Patterns) style, POSA style, software pattern paper styles– Narrative styles (good for non-software patterns)• Story-based variation of Alexander’s style,
Mary Lynn Manns and Linda Rising, Fearless Change• Pattern 3.0 format, Takashi Iba• Rebecca and Joe style

Pattern vs. Pattern Gists

14

10/22/2023

Patlets or Thumbnails

Group Discussion
HOW MIGHT YOU ADJUST THE
FORM YOU ARE USING TO WRITEYOUR PATTERNS IF YOU HAD A
DIFFERENT AUDIENCE?

15

10/22/2023

Shepherding, Giving, andResponding to Advice

The Role of A Shepherd:
Guide, Supporter, Mentor
Reads, reviews, advises• An experienced
pattern writer• Works with the author toimprove their paper– Offers advice– Has opinions– Suggests improvements– Guides the author•

Offers encouragement!

1610/22/2023

Shepherds and Reviewers are
Advocates• Supports the author• Doesn’t have apersonal agenda• Generous, unselfish• Works on behalf ofauthor to make thembe the best they can be

The Role of a Pattern Author:
Effectively Share Wisdom
Writes, thinks, rewrites• Conceives of the pattern• Writes the pattern• Agrees to be “shepherded”• Receives and responds
to advice• Asks for help
• Asks clarifying questions• Rewrites

17

10/22/2023

Focus on Your Reader

Improve Your Writing• Share with others• Write clearly– Shorten long sentences– Eliminate extra words– Summarize main points• Practice. Revise.
– understandable problem– what are the forces– clear tradeoffs

18

10/22/2023

How do I revise my patterns?
• What do I do with shepherds comments?
• What do I do after a writers’ workshop?
• How much revision should I do?
• When should I stop?

Giving Advice: Consider Its Impact
Adapt a “triage” approach• Read and note issues/questions/concerns• Spend time wisely:– Address most important
things first– Note minor issues– Don’t spend time onhopeless causes (if itis really, really bad)

• Be sure to mention
what you like, too!

19

10/22/2023

Types of Advice• Valid—There is clearly a problem I should address.
“Your pattern is missing some forces”• Invalid—The comment is not useful or valid.
• Judgmental—The reviewer liked or disliked something.
“The name of your pattern doesn’t reflect the solution”• Complexity—The reviewer thinks I should express my ideas
more simply or that my solution is too complex.
“Reword your solution and include a diagram to help explain”• Aesthetics—A comment about the form, not the substance of mypattern. “Can you add a rating to all your patterns?”• Praise—The reviewer is happy.
“This is much improved.”

Responding To Constructive Advice• You are in control of what to do with advice.
Here’s how you might react and respond:– Valid—You need to improve you pattern. You may needto ask some questions before making changes.
– Invalid—Most likely you ignore the comment (unless theshepherd or reviewer thought it was very important).
– Judgmental—Ask them why they think that.
– Complexity—May want to explain more clearly…or break down
a complicated solution into alternatives or…maybe there is morethan one pattern here.
– Aesthetics—You decide whether to fix or ignore “style” issues.
– Praise—You may want to know why they are so happy.
“What do you like about my new solution?”20

10/22/2023

Open and Closed Questions
The same question can beasked differently…
Open—can’t be answered yesor no. It invites conversation.
“What do you like about flying?”

Closed—Answered with asimple yes or no. (Most likelyno). Sometimes used tointentionally shut offdiscussion.
“Do you like flying?”

Probing Questions• Evaluation…how good
do you think it will be?
• Accuracy…how did
you come up withthose numbers?
• Completeness…
is that all…?
• Relevance…does
this apply here?
• Purpose…why did
you suggest that?
• Extension…tell me more..

21

10/22/2023

Clarifying Questions• Get others to think:– Why do you say that?
– What exactly doyou mean?
– Can you giveme an example?
– Are you saying ...
or ... ?
– Can you restate
your concern?

Group Exercise
BREAK UP INTO GROUPS AND
COME UP WITH SOME ADVICE FOR
IMPROVING WAKEUP CALL PATTERN

22

10/22/2023

Writers’ Workshops at PLoP
Writers’ Workshops & the Work of Making Things…Richard Gabriel
A circle of interested colleagues, led by a strong, neutral moderator, thatprovides feedback to the author on how the pattern is understood by
the group and suggestions for improvement
Roles:– Author– Moderator/Leader– Summarizer– Sympathetic ParticipantsParticipants read the pattern before the workshop
The author stands, reads a selection from the pattern, then becomesa “fly on the wall,” outside the circle. No eye contact is made.
The author’s name is never mentioned; use “the author”
https://www.dreamsongs.com/Files/Shepherding.pdf
http://www.dreamsongs.com/Files/WritersWorkshop.pdf

Reviewing and Shepherding areGifts“If someone gives you something ... pass it on”• Comments and suggestions are gifts• Giving these gifts does not mean that your author always isready to accept it– Some may not want your gift because they are looking to validate–––

their ideas, not respond to questions or comments
Some may misinterpret your gift because they don’t understand what
you are saying
Some may not be prepared for your gift because they are focused onother concerns
Some may not be able to accept it because the time is not right23

10/22/2023

Hillside and Patterns
Community

PLoP Community Culture“the integrated pattern of human knowledge, belief, andbehavior that depends upon man’s capacity for learningand transmitting knowledge to succeeding generations”“the customary beliefs, social forms, and material traitsof a religious, or social group”“the set of shared attitudes, values, goals, and practices
that characterizes a company or corporation”
Merriam Webster Collegiate Dictionary
on the web http://www.m-w.com/dictionary.htm• Shared experiences• Shared rituals– Writers’ Workshop– Shepherding– Gifting and Games24

10/22/2023

SugarLoaf
PLoP

Patterns Community Gatherings•

Pattern Conferences– PLoP® since 1994 at Allerton House, Monticello, IL*
Except: 2006: OOPSLA in Portland, OR, 2008: OOPSLA in Nashville, TN
2009: AGILE in Chicago, IL, 2010: Splash in Reno, NV
2011: Splash in Portland, OR, 2012: Tucson Arizona,
2015: Pittsburgh, PA, 2017 Vancouver Canada, 2018: Portland, OR

EduPLoP ® 2015-16– Euro PLoP® since 1996 at Kloster Irsee, Bavaria
Schermerhorn, Netherlands– SugarLoaf PLoP® since 2001-2015 Brazil, 2016-17 Argentina– Viking PLoP® since 2002 rotating among Scandinavian countries– AsianPLoP ® 2010, 2011, 2014, 2015, 2017, 2018 in Tokyo Japan, 2016 Taipei Taiwan– ScrumPLoP ® 2009-2014 in Scandinavian countries, 2015-2018 Douro Valley, Portugal– Chili PLoP® “A different Kind of PLoP”, near Phoenix, AZ 1998-2012– ParaPLoP ® Parallel programming patterns, 2009, 2010, 2011
– Koala PLoP® 2000-2002 in Melbourne, Australia– Mensore PLoP® 2001 Okinawa, Japan– MetaPLoP ® 2011 in Douro Valley, Portugal– UP 1998 Mohonk Mountain House, New Paltz, NY
For more information visit http://hillside.net/conferences•

Transactions on Pattern Languages of Programming– The new peer reviewed pattern journal.
– Published by Springer– More information: http://hillside.net/tplop25

10/22/2023

26