Introduction to design patterns, Part 3: Beyond software design patterns

Use patterns to improve interaction design, enterprise architecture, software methodology, and more

1 2 Page 2
Page 2 of 2
  • Size the Organization: Large projects are rarely delivered on time and within budget when their development teams are too large or too small. Start projects with a critical mass of about 10 people to avoid having to add more people late in the project.
  • Phasing It In: Start a project by hiring people who possess a business's core competencies and then gradually add people as the project grows.

Coplien also discussed organizational patterns in a talk entitled "Organizational Patterns: A Key for Agile Software Development" (INCOSE Speaker Series, May 2007). Coplien pointed out that software managers face an overwhelming number of strategies and techniques for managing a software development project, that system theory has shown that processes emerge from organizational structures, and that organizational patterns combine this theory with time-tested management and organizational techniques.

Communication and presentation patterns

Communication and presentation are essential to the software development cycle. Software development team members need to communicate effectively with each other and also with a project's stakeholders. Giving effective presentations may be part of that process. Is it any surprise the patterns for successful communication and presentation have been documented?

Effective communication

People don't just communicate through speech, we also do it through body language and writing. Various patterns can be observed in these exchanges. Researching communication patterns, I found "What are the Pattern of communication?" which defines a communication pattern as a mode of communication used frequently in certain situations or with certain people. Are any of the following communication patterns familiar to you?

  1. Apologizing frequently
  2. Blaming
  3. Complaining
  4. Criticizing other people
  5. Gossiping
  6. Insulting
  7. Lecturing (in a bad or good way)
  8. Listening
  9. Peacemaking (it's okay, he didn't mean what he said)
  10. Praising (sincerely)
  11. Questioning (sincerely wanting to understand)
  12. Self-disclosing (explaining your thoughts)
  13. Supporting (you can do it)

The first six communication patterns reflect negative forms of communication. Apologizing frequently is an example of an anti-pattern because it may at first appear beneficial, but ultimately can get on the hearer's nerves, especially because the apology is often either meaningless (habitual) or intended to help the utterer and not the recipient feel better. A person who repeatedly apologizes could try to break their habit or seek professional help to change this pattern.

Lecturing can be applied in a negative or a positive manner. This pattern is destructive when used to punish the recipient without imparting anything helpful while serving only to benefit the lecturer. However, when used to impart information solely for the recipient's benefit (that is, constructive criticism), this pattern is constructive. The last six communication patterns listed are considered to be entirely positive forms of communication.

Effective communication is an essential part of achieving a successful project. It pays to learn positive communication patterns and employ them as often as possible.

Effective presentation

Communication often involves public speaking or presentation. You might be called to present a short talk on a new technology at a conference or in a company meeting. Presentation styles vary from unidirectional (talking only) to more bidirectional (talking and listening/responding to feedback). A presentation can be accompanied by a slideshow or other visual aids.

A presentation pattern is a design pattern for making presentations more effective. Three masterful presenters -- Neal Ford, Matthew McCullough, and Nathaniel Schutta -- demonstrate the value of presentation patterns in "Presentation Patterns: Demonstrations Versus Presentations" (InformIT, August 2012). One of these patterns, Shoeless is named for JavaWorld contributor Venkat Subramaniam, whose habit of presenting shoeless is almost as famous as his dynamic presentation style. The Shoeless pattern is described in Figure 5.

An example of the Presentation design pattern. Screenshot supplied by Jeff Friesen for JavaWorld.

Figure 5. Presentation patterns can be formalized similarly to other design pattern categories

Being able to deliver effective presentations can greatly benefit your software development career, and learning various presentation patterns can help to boost their effectiveness. If you struggle with shyness, patterns can help in this area. Telling a joke at the beginning of a presentation is an example of a very successful presentation pattern that both humours the audience and relaxes the presenter.

In conclusion

This article concludes a three-part series investigating design patterns used in software development. You've learned about software design patterns, interaction design patterns, architectural patterns, organizational patterns, and communication and presentation patterns. The universe of design patterns undoubtedly includes many more design pattern categories.

Design pattern terminology isn't always precise. For example, perhaps the Gang of Four should have named their book Software Design Patterns. As I discussed in Part 2, design patterns can be misused, and anti-patterns can emerge. However, design patterns have proven to be helpful when used correctly. Familiarizing yourself with design patterns of different types can help you progress through your career in Java and beyond.

Learn more about design patterns for software development

This story, "Introduction to design patterns, Part 3: Beyond software design patterns" was originally published by JavaWorld.

Copyright © 2013 IDG Communications, Inc.

1 2 Page 2
Page 2 of 2