Differences between revisions 13 and 15 (spanning 2 versions)
Revision 13 as of 2011-11-10 14:09:52
Size: 8640
Editor: shoobe01
Comment:
Revision 15 as of 2011-11-10 15:25:45
Size: 9714
Editor: shoobe01
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Almost before we even started figuring out which patterns we wanted, we starting talking about how they should be internally arranged. There's a surprising amount of variation here, but most of all we decided a single, totally-consistent method was most important. That way you have a fighting chance to take two competing patterns, and compare them.  Almost before we even started to figure out which patterns we wanted, we started talking about how they should be internally arranged. Theres a surprising amount of variation here, but primarily we decided that a single, totally consistent method was most important. That way, you have a fighting chance of taking two competing patterns and comparing them.
Line 5: Line 5:
The most important section ended up being the variations. Something like 15-20 patterns disappeared over the course of writing, and ended up being better described as variations of existing patterns. And a few split instead. After writing started, the differences were a bit too severe, so it was rewritten to be two or more patterns, instead of just one with variations.  The most important section ended up being the one on variations. Something like 15 to 20 patterns disappeared over the course of writing this book, and ended up being better described as variations of existing patterns. And a few patterns we split into two or more patterns instead: after we started writing, the variations for some of the patterns were a bit too severe, so we split those patterns into two or more patterns, instead of just one with variations.
Line 9: Line 9:
Names are as short as practical while still being clear, and whenever possible do not conflict with an existing concept. Some end up being a bit of a mouthful as a result, but we do our best. In far more cases than expected, there was no name at all for a well-used design element, and we had to make something up.  Names are as short as practical while still being clear, and whenever possible they do not conflict with an existing concept. Some ended up being a bit of a mouthful as a result, but we did our best. In far more cases than expected, there was no name at all for a well-used design element, and we had to make something up.
Line 11: Line 11:
We always use title case for the actual pattern names. If you run across a name that is capitalized for no apparent reason while reading a sentence (e.g. "Input Method Indicator") that means it is in reference to another pattern in the book, which you can go see to compare. Whenever possible this is also made clear in the text, such as "see the '''[[Input Method Indicator]]''' pattern for an alternative method." We always used title case for the actual pattern names. If you run across a name that is capitalized for no apparent reason while reading a sentence (e.g., “[[Input Method Indicator]]”) that means it is in reference to another pattern in the book, which you can refer to in order to make a comparison. Whenever possible this is also made clear in the text, such as “see the [[Input Method Indicator]] pattern for an alternative method.”
Line 15: Line 15:
Some people get nervous when the word "problem" is used in a project or design sense. But problems foster solutions, so try not to get worried about any history or bad implications that term may have to your organization.  Some people get nervous when the word problem is used in a project or design sense. But problems foster solutions, so try not to worry about any history or bad implications that term may have to your organization.
Line 17: Line 17:
This is just a summary of why you'd want to use this pattern. Ideally, patterns are grouped with similar problems, and you can get to the right section, then compare the problem statements as a way to help identify which one you really have.
The “Problem” section of each pattern is just a summary of why you’d want to use the pattern. Ideally, patterns are grouped with similar problems, and you can get to the right section and then compare the problem statements as a way to help identify which one you really have.
Line 21: Line 20:
A definition of what the pattern involves, which other patterns are key overlaps or provide key components and when relevant the important technologies required to make it operate. The “Solution” section provides a definition of what the pattern involves, which other patterns are key overlaps or provide key components, and (when relevant) the important technologies required to make it operate.
Line 23: Line 22:
This is one of the sections that can vary widely, from a very brief introduction to being half of the pattern. If it is difficult to explain, difficult to implement, or often poorly implemented, this will get longer. Simple patterns are shorter. This is one of the sections that can vary widely, from a very brief introduction to comprising half of the pattern. If it is difficult to explain, difficult to implement, or often poorly implemented, this will get longer. Simple patterns are shorter.
Line 27: Line 26:
Our patterns aren't stencils, so aren't restrictive. All of these have variations that can not only be chosen from, but which are defined so that the correct one can be chosen based on the content to be delivered and the context in which the pattern will be used. Our patterns aren’t stencils, so they aren’t restrictive. All of these have variations that you can choose and that are defined so that you can choose the correct one based on the con- tent to be delivered and the context in which you will use the pattern.
Line 29: Line 28:
The size of this section varies widely depending on the number and difference of the variations. Some have multi-faced variations, so more than one list may be encountered. In some cases, the variations are so pronounced that much of the interaction and presentation is covered in this section as well.  The length of this section varies widely depending on the number of and differences among the variations. Some have multifaceted variations, so more than one list may be encountered. In some cases, the variations are so pronounced that much of the interaction and presentation is covered in this section as well.
Line 33: Line 32:
How the user interacts with the item being described, both the physical pressing of buttons (or swiping the screen) and what the screen displays that the user can click on or type inside.  This section explains how the user interacts with the item being described including pressing buttons (or swiping the screen) and what the screen displays that the user can click on or type inside.
Line 37: Line 36:
Things on the screen, which you cannot click on, or details about the manner in which displayable items are presented, which do not directly influence the interaction. A shadow on an interactive item might help visibility, so matters, but does not directly influence interaction, for example. This section explains things on the screen that you cannot click on, or details about the manner in which displayable items are presented which do not directly influence the interaction. A shadow on an interactive item might help with visibility, so this would matter but would not directly influence interaction, for example.
Line 39: Line 38:
The difference between interaction and presentation can be a bit difficult to fathom sometimes, but breaking them up helps a lot when trying to seek the core truths of a function, and separate out what must be present and what is optional or additional. The difference between interaction and presentation can be a bit difficult to fathom sometimes, but breaking them up helps a lot when trying to seek the core truths of a function and separating what must be present and what is optional or additional.
Line 43: Line 42:
Specifics of the implementation you should watch out for are always listed. These cover both "anti-variations" (methods that should never be used at all) and more minor pitfalls or edge case uses of proper variations to watch out for. These are not speculative, but are known to be bad by violating heuristics, and often are verified by research.  Specifics of the implementation you should watch out for are always listed. These cover both ''antivariations'' (methods that should never be used) and more minor pitfalls or edge case uses of proper variations to watch out for. These are not speculative, but are known to be bad because they violate heuristics, and often are verified by research.
Line 45: Line 44:
These do not encompass all the possible antipatterns, but the key and most likely problems. Rest assured, there are many other ways to break a good pattern. Use design principles, heuristics and carefully read the rest of the pattern to prevent poor implementations. These do not encompass all the possible antipatterns, but the key and most likely problems. Rest assured that there are many other ways to break a good pattern. Use design principles and heuristics, and carefully read the rest of the pattern to prevent poor implementations.
Line 47: Line 46:
If you cannot avoid an anti-pattern for technical reasons, the pattern should not be used, and a technically feasible replacement found. This is a common occurrence, and is a key reason the anti-patterns are explicitly listed. If you cannot avoid an antipattern for technical reasons, you should not use the pattern and instead you should find a technically feasible replacement. This is a common occurrence, and is a key reason the antipatterns are explicitly listed.
Line 50: Line 49:
== Examples & Illustrations ==
We have made a deliberate choice to not include a lot of screenshots. In fact, hardly any. This was not arrived at lightly, and they were gathered and extensively annotated for the first several patterns. A little of it was simple practicality. It's very hard to find enough adequate examples, and very often the best one is on a difficult or impossible to capture device. Some of the clearest examples are on featurephones, old PDAs, GPS devices and the like.
== Examples and illustrations ==
We deliberately chose not to include a lot of screenshots. In fact, we include hardly any. We did not arrive at this decision lightly; we gathered and extensively annotated screenshots for the first several patterns. But we decided to take this route for the purpose of practicality. It’s very hard to find enough adequate examples, and often the best one is on a device that is difficult or impossible to capture. Some of the clearest examples are on feature phones, old PDAs, GPSes, and the like.
Line 53: Line 52:
Which leads to the key problem we encountered with screenshots: clarity. Patterns are the pure essence of an implementation. And almost every implementation layers it's own style on top. Or buries a pattern alongside others. Screenshots required explanation, and very often caveats about what not to do. This leads to the key problem we encountered with screenshots: clarity. Patterns are the pure essence of an implementation. And almost every implementation layers its own style on top — or buries a pattern alongside others. Screenshots required explanation, and very often caveats about what not to do.
Line 55: Line 54:
To solve the problems with screenshots, illustrations are used almost exclusively throughout the book. These are all of the same basic style, but vary widely in the detail level used, sometimes in adjacent drawings in the same pattern.  To solve the problems with screenshots, we used illustrations almost exclusively throughout the book. These are all of the same basic style, but vary widely in the detail level used, sometimes in adjacent drawings in the same pattern.
Line 57: Line 56:
In each case, only the required amount of detail is used. Sometimes, that is just boxes and lines, and the words and images are implied. Sometimes, words and so on have to be in there to communicate the point. Sometimes, actual raster icons or websites, drop shadows and other effects are used.  In each case, only the required amount of detail is used. Sometimes that detail is just boxes and lines, and the words and images are implied. Sometimes words and so on have to be in there to communicate the point. Sometimes actual raster icons or websites, drop shadows, and other effects are used.
Line 59: Line 58:
As a general rule, large blank areas on a page do not mean there's nothing there. It just means we're not discussing that component, so removed placeholder information for clarity. The '''Annunciator Row''' is almost always assumed, so space is provided, but is not displayed. Again, for clarity and to reduce clutter. As a general rule, large blank areas on a page do not mean theres nothing there. It just means we’re not discussing that component, so we removed placeholder information for clarity. The Annunciator Row is almost always assumed, so space is provided, but is not displayed — again, for clarity and to reduce clutter.
Line 62: Line 61:
 * Yellow means the displayed, interactive elements generally.
 * Blue is images, and graphical displays such as infoviz. A different color so it is clear that it's not just a box.
 * Grays are non-selectable items, like the parent when a child has popped up over it.
 * Orange is in-focus. Like when scrolling in a list, or to indicate the primary button that is going to be selected for a process.
 * Yellow usually refers to the displayed, interactive elements.
 * Blue is for images, and graphical displays such as information visualizations. A different color is used so that it is clear that it’s not just a box.
 * Grays represent nonselectable items, like the parent when a child has popped up over it.
 * Orange is used when the item is in focus, as when scrolling in a list, or to indicate the primary button that is going to be selected for a process.
Line 67: Line 66:
This is not always adhered to, especially in the higher fidelity drawings, but is a good guideline.  This is not always adhered to, especially in the higher-fidelity drawings, but it is a good guideline.
Line 69: Line 68:
That said, there are a few photos and screenshots. These are used when making an illustration of sufficiently high fidelity would have been pointless, and for clarity when describing certain hardware details. That being said, there are a few photos and screenshots in the book. We used these when creating an illustration of sufficiently high fidelity would have been pointless, for clarity when describing certain hardware details, and as example implementations when introducing new categories of patterns.
Line 73: Line 72:
Next: [[Successfully Designing With Patterns & Heuristics]] Next: [[Successfully Designing with Patterns and Heuristics]]
Line 76: Line 75:
Please note that within the wiki, pattern names are generally cross linked. Some are not because we forgot, or linked them wrong, or changed the name later and forgot to update it. Do please tell us if one is missing. == Links within the wiki ==
Please note that within the wiki, pattern names are generally cross linked. Click the blue text and just go straight there. In the book, they are also blue, but I assume if you click them the pages don't flip. I am not sure if they work in eBook formats, so someone who bought one tell me.

Some are not because we forgot, or linked them wrong, or changed the name later and forgot to update it. Do please tell us if one is missing.
Line 81: Line 83:

== More about how to read patterns ==
There's an O'Reilly webcast Steven did on 8 November 2011 that outlines some principles of patterns (as we see them) and which includes a portion explaining each of these sections from a different point of view. Basically, ''why'' the sections exist as they do.
http://oreillynet.com/pub/e/2087

Click here to buy from Amazon.

Almost before we even started to figure out which patterns we wanted, we started talking about how they should be internally arranged. There’s a surprising amount of variation here, but primarily we decided that a single, totally consistent method was most important. That way, you have a fighting chance of taking two competing patterns and comparing them.

The most important section ended up being the one on variations. Something like 15 to 20 patterns disappeared over the course of writing this book, and ended up being better described as variations of existing patterns. And a few patterns we split into two or more patterns instead: after we started writing, the variations for some of the patterns were a bit too severe, so we split those patterns into two or more patterns, instead of just one with variations.

Name

Names are as short as practical while still being clear, and whenever possible they do not conflict with an existing concept. Some ended up being a bit of a mouthful as a result, but we did our best. In far more cases than expected, there was no name at all for a well-used design element, and we had to make something up.

We always used title case for the actual pattern names. If you run across a name that is capitalized for no apparent reason while reading a sentence (e.g., “Input Method Indicator”) that means it is in reference to another pattern in the book, which you can refer to in order to make a comparison. Whenever possible this is also made clear in the text, such as “see the Input Method Indicator pattern for an alternative method.”

Problem

Some people get nervous when the word problem is used in a project or design sense. But problems foster solutions, so try not to worry about any history or bad implications that term may have to your organization.

The “Problem” section of each pattern is just a summary of why you’d want to use the pattern. Ideally, patterns are grouped with similar problems, and you can get to the right section and then compare the problem statements as a way to help identify which one you really have.

Solution

The “Solution” section provides a definition of what the pattern involves, which other patterns are key overlaps or provide key components, and (when relevant) the important technologies required to make it operate.

This is one of the sections that can vary widely, from a very brief introduction to comprising half of the pattern. If it is difficult to explain, difficult to implement, or often poorly implemented, this will get longer. Simple patterns are shorter.

Variations

Our patterns aren’t stencils, so they aren’t restrictive. All of these have variations that you can choose and that are defined so that you can choose the correct one based on the con- tent to be delivered and the context in which you will use the pattern.

The length of this section varies widely depending on the number of and differences among the variations. Some have multifaceted variations, so more than one list may be encountered. In some cases, the variations are so pronounced that much of the interaction and presentation is covered in this section as well.

Interaction Details

This section explains how the user interacts with the item being described — including pressing buttons (or swiping the screen) and what the screen displays that the user can click on or type inside.

Presentation Details

This section explains things on the screen that you cannot click on, or details about the manner in which displayable items are presented which do not directly influence the interaction. A shadow on an interactive item might help with visibility, so this would matter but would not directly influence interaction, for example.

The difference between interaction and presentation can be a bit difficult to fathom sometimes, but breaking them up helps a lot when trying to seek the core truths of a function and separating what must be present and what is optional or additional.

Antipatterns

Specifics of the implementation you should watch out for are always listed. These cover both antivariations (methods that should never be used) and more minor pitfalls or edge case uses of proper variations to watch out for. These are not speculative, but are known to be bad because they violate heuristics, and often are verified by research.

These do not encompass all the possible antipatterns, but the key and most likely problems. Rest assured that there are many other ways to break a good pattern. Use design principles and heuristics, and carefully read the rest of the pattern to prevent poor implementations.

If you cannot avoid an antipattern for technical reasons, you should not use the pattern and instead you should find a technically feasible replacement. This is a common occurrence, and is a key reason the antipatterns are explicitly listed.

Examples and illustrations

We deliberately chose not to include a lot of screenshots. In fact, we include hardly any. We did not arrive at this decision lightly; we gathered and extensively annotated screenshots for the first several patterns. But we decided to take this route for the purpose of practicality. It’s very hard to find enough adequate examples, and often the best one is on a device that is difficult or impossible to capture. Some of the clearest examples are on feature phones, old PDAs, GPSes, and the like.

This leads to the key problem we encountered with screenshots: clarity. Patterns are the pure essence of an implementation. And almost every implementation layers its own style on top — or buries a pattern alongside others. Screenshots required explanation, and very often caveats about what not to do.

To solve the problems with screenshots, we used illustrations almost exclusively throughout the book. These are all of the same basic style, but vary widely in the detail level used, sometimes in adjacent drawings in the same pattern.

In each case, only the required amount of detail is used. Sometimes that detail is just boxes and lines, and the words and images are implied. Sometimes words and so on have to be in there to communicate the point. Sometimes actual raster icons or websites, drop shadows, and other effects are used.

As a general rule, large blank areas on a page do not mean there’s nothing there. It just means we’re not discussing that component, so we removed placeholder information for clarity. The Annunciator Row is almost always assumed, so space is provided, but is not displayed — again, for clarity and to reduce clutter.

Color, especially when clearly not naturalistic, generally has a meaning:

  • Yellow usually refers to the displayed, interactive elements.
  • Blue is for images, and graphical displays such as information visualizations. A different color is used so that it is clear that it’s not just a box.
  • Grays represent nonselectable items, like the parent when a child has popped up over it.
  • Orange is used when the item is in focus, as when scrolling in a list, or to indicate the primary button that is going to be selected for a process.

This is not always adhered to, especially in the higher-fidelity drawings, but it is a good guideline.

That being said, there are a few photos and screenshots in the book. We used these when creating an illustration of sufficiently high fidelity would have been pointless, for clarity when describing certain hardware details, and as example implementations when introducing new categories of patterns.


Next: Successfully Designing with Patterns and Heuristics


Discuss & Add

Please note that within the wiki, pattern names are generally cross linked. Click the blue text and just go straight there. In the book, they are also blue, but I assume if you click them the pages don't flip. I am not sure if they work in eBook formats, so someone who bought one tell me.

Some are not because we forgot, or linked them wrong, or changed the name later and forgot to update it. Do please tell us if one is missing.

To avoid too many links, the first use in a paragraph or section tends to be linked, but others often are not. We're a bit loose on this really, and the book isn't perfect on taking a position either way as well. If it bugs you, tell me and I'll fix it, else just figure it out.

A few other items will be linked, because the wiki software is trying too hard to auto-recognize, or something. If it doesn't seem like a pattern, and doesn't resolve, it's one of these. Sorry, I can't figure it out so gave up.

More about how to read patterns

There's an O'Reilly webcast Steven did on 8 November 2011 that outlines some principles of patterns (as we see them) and which includes a portion explaining each of these sections from a different point of view. Basically, why the sections exist as they do. http://oreillynet.com/pub/e/2087

Examples

If you want to add examples (and we occasionally do also) add them here.

Make a new section

Just like this. If, for example, you want to argue about the differences between, say, Tidwell's Vertical Stack, and our general concept of the List, then add a section to discuss. If we're successful, we'll get to make a new edition and will take all these discussions into account.

Reading the Patterns (last edited 2013-04-08 20:01:56 by shoobe01)