AVAYA, Inc.1 Pattern Shepherding Neil B. Harrison Avaya Inc. nbharrison@avaya.com With a few updates...

Post on 18-Dec-2015

214 views 0 download

Tags:

transcript

AVAYA, Inc. 1

Pattern Shepherding

Neil B. Harrison

Avaya Inc.

nbharrison@avaya.com

With a few updates by Joe Bergin

berginf@pace.edu

AVAYA, Inc. 2

Objectives

Improve the quality and consistency of shepherding

Increase pool of competent shepherds Make you a better “sheep” Help you improve quality of your own

patterns (!)

AVAYA, Inc. 3

Goals of Shepherding

Obvious: Improve the work. Not Obvious: Instill the patterns culture.

» Giving to the community» Protecting the dignity of the author

Both are important.

AVAYA, Inc. 4

Benefits of Shepherding

Four Main Benefits:» Transfers knowledge from the experts» Writing always benefits from another pair of eyes» Improves the quality of works to be shepherded» Strengthens the patterns community

Obvious goal covers only point 3. So shepherding is a generative activity.

AVAYA, Inc. 5

Dual Responsibility

To the Sheep» Improve the work

To the Community» Does it represent best practice?

AVAYA, Inc. 6

Three Facets of Shepherding

The logistics of shepherding. Interpersonal relationships. The content of the patterns.

A big secret: All three are tightly intertwined!

AVAYA, Inc. 7

Getting Started

“Well begun is half done.” Is mainly logistics and relationship work. What are the typical problems with logistics of

shepherding?

AVAYA, Inc. 8

Getting Started, cont.

Typical problems are: Not enough time Superficial shepherding; few comments The sheep doesn’t respond well Natural tendency to procrastinate You don’t know where to start You don’t know how much time it will take.

AVAYA, Inc. 9

Three Iterations

The amount of work required to shepherd any work is an unknown quantity a priori.

Therefore:

Get started early, and plan on about three iterations. Pace yourself to be able to complete three iterations.

AVAYA, Inc. 10

The Shepherd Knows the Sheep

There is a danger that the author will not accept -- or understand -- your comments.

Therefore:

Establish a personal rapport with the author up front; get to know the author, and tell the author about yourself. Give both positive reinforcement and suggestions for improvement.

AVAYA, Inc. 11

Intertwining...

How do these two patterns affect: Logistics? Relationships? Content?

Exercise: you have just been assigned as a shepherd. Write an introductory email to your sheep.

AVAYA, Inc. 12

The First Iteration

The first set of comments is particularly important (why?)

But it’s also the most difficult set: You are new to the pattern. The pattern may be hard to understand. There are many places to start. It might be poorly written.

So what do you do?

AVAYA, Inc. 13

Big Picture

It’s hard to know where to start with a pattern.

Therefore:

Get the big picture by reading the problem and solution together first. They should pretty much stand on their own.

AVAYA, Inc. 14

Matching Problem & Solution

Immature patterns tend not to hang together very well.

Therefore:

Make sure the problem and solution match each other. In general, work to improve the solution first, then the problem.

Don’t forget to ask yourself “Is this best practice?” If you are worried, ask your sheep.

AVAYA, Inc. 15

Key Points of these patterns

The solution is usually where the author starts; get that solid first.

“Therefore, BOOM!” The problem and solution should form a

“patlet”. It helps you as a shepherd grasp the

idea of the pattern.

AVAYA, Inc. 16

Intertwining Again...

The previous patterns aren’t just about mechanics. They are also about the content of the pattern itself.

That’s the big secret of shepherding; it’s all about the substance of patterns.

So you need to understand patterns to really know what to look for, and how to fix it!

AVAYA, Inc. 17

Pattern Exercise #1

Read pattern exercise number 1. Use the previous patterns to help you. Can you see anything wrong with it? What would you suggest to the author?

AVAYA, Inc. 18

Giving Feedback

Nearly all shepherding is via email. How do you give feedback most

effectively?

AVAYA, Inc. 19

Author as Owner

It’s easy for the author to become too dependent on the shepherd, and simply take the suggestions of the shepherd verbatim.

Therefore:

Keep the author as the clear owner. Do it by tending to phrase your suggestions as questions.

AVAYA, Inc. 20

Half a Loaf

In our zeal to be the best shepherd, we often dump a boatload of comments on the poor author.

Therefore:

Give small sets of comments more often; give half a loaf rather than the whole loaf. Start with the highest priority problems.

AVAYA, Inc. 21

Pattern Exercise 1, part b.

For pattern 1, write down one or two questions you might ask the author.

AVAYA, Inc. 22

Convincing Solution

Sometimes you just have trouble believing the solution.

Maybe it isn’t even a pattern.

Therefore:

Tell the author to convince you. Ask for known uses; ask how to implement the solution; express your skepticism. If this is a problem, attack it first thing!

AVAYA, Inc. 23

So What’s the Problem?

Problem statements are really important.

But they are really hard.

What are the problems with problem statements?

AVAYA, Inc. 24

Problem Statements...

They tend to presuppose the solution. They are too broad. They don’t match the solution. The context is inadequate. They aren’t well defined. There isn’t one…(BTW, are there problem statements in the GoF form?)

AVAYA, Inc. 25

Forces Define Problem

Problem statements are often weak. In many cases, the problem statement presupposes the solution.

Therefore:

Use the forces to help crystallize the problem. Help the author find the problem through the forces. It will probably take iteration between forces and problem.

AVAYA, Inc. 26

Pattern Exercise 2

Read pattern 2, Null Object. Use all the patterns we have covered to help you.

Decide what needs attention first. Write short feedback for the author.

AVAYA, Inc. 27

More Patterns

For second and subsequent iterations, you may want more patterns.

Of course, many of these are useful in the first iteration as well.

Naturally, you might give feedback about things other than those covered by the patterns.

AVAYA, Inc. 28

Balanced Context

In many cases, the pattern tries to be all things to all people.

Therefore:

Constrain the pattern, using the context to help you.Check the context against the solution, and balance the context and resulting context.

AVAYA, Inc. 29

War Stories

The pattern, particularly the writing, is unclear.

Therefore:

Ask the author to tell stories to illustrate the pattern, such as how the pattern came about.

AVAYA, Inc. 30

Form Follows Function

The form the author picked doesn’t work with the content of the pattern.

Therefore:

Slide a better form in by adding and removing one section at a time. (Note: most appropriate for a sheep new to patterns.)

AVAYA, Inc. 31

Small Patterns

During the course of shepherding (or even before), a pattern can get really unwieldy.

Therefore:

Allow the pattern to grow, then cut it down. Ask the author whether certain sections are really necessary.

AVAYA, Inc. 32

Exercises 3, 4, 5:

Read the attached patterns. Determine what is wrong with each. Write down a sentence or two that

describes what is wrong with each. Write down a sentence or two of

suggestions to the author for each pattern.

AVAYA, Inc. 33

Shepherding and Culture

How does shepherding support the patterns culture? Shepherds give of their time and expertise freely. Shepherding supports the author. Authors should acknowledge contributions of the

shepherd. Shepherds should help instill the Quality Without A

Name. Shepherding teaches the pattern culture by example.

AVAYA, Inc. 34

Parting Shots

Shepherding combines logistics, relationships, and content.

Study good patterns to improve your shepherding. But the most important ingredient is commitment. Practice! Experts will help you. We have a responsibility to give back to the

community. Shepherding is one important way.