1 / 34

Pattern Shepherding

Pattern Shepherding. Neil B. Harrison Avaya Inc. nbharrison@avaya.com With a few updates by Joe Bergin berginf@pace.edu. Objectives. Improve the quality and consistency of shepherding Increase pool of competent shepherds Make you a better “sheep”

Download Presentation

Pattern Shepherding

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pattern Shepherding Neil B. Harrison Avaya Inc. nbharrison@avaya.com With a few updates by Joe Bergin berginf@pace.edu

  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 (!)

  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.

  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.

  5. Dual Responsibility • To the Sheep • Improve the work • To the Community • Does it represent best practice?

  6. Three Facets of Shepherding • The logistics of shepherding. • Interpersonal relationships. • The content of the patterns. A big secret: All three are tightly intertwined!

  7. Getting Started • “Well begun is half done.” • Is mainly logistics and relationship work. • What are the typical problems with logistics of shepherding?

  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.

  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.

  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.

  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.

  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?

  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.

  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.

  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.

  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!

  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?

  18. Giving Feedback • Nearly all shepherding is via email. • How do you give feedback most effectively?

  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.

  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.

  21. Pattern Exercise 1, part b. • For pattern 1, write down one or two questions you might ask the author.

  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!

  23. So What’s the Problem? Problem statements are really important. But they are really hard. What are the problems with problem statements?

  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?)

  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.

  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.

  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.

  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.

  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.

  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.)

  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.

  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.

  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.

  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.

More Related