Communication Patterns
Why is communication important to the software industry?
Communication in any field is key. In software projects, communication plays a vital role in determining the product and eventual cost. There are several characteristics of software as a product and the software industry in general, which make communication play a pivotal role. Software is malleable, and it is generally perceived, that changing software that is already built is easy, as at most it is rewriting some code. Although this is true, software change, depending on the stage of development, may involve more than just changing lines. As software is perceived to be easy to change, requirements on a software project may change frequently, as they do. Software products find use in a variety of places, like different domains and different environments. The software may serve different types of purposes in different places. This is another reason why communication in software projects is important, as the people who make the software may be dealing with an unfamiliar domain and/or unfamiliar use and unfamiliar terminology. Software is intangible or invisible. This makes it difficult to talk about software clearly, as abstract visualizations of software may differ, across domains and even within an industry. For many such reasons, communication in software projects plays an important role, and it is imperative that communication be clear, correct and timely.
A lot of the cost involved in software development projects can be avoided by clear and timely communication. If requirement changes are documented correctly and communicated to all the relevant parties before difficult to reverse changes are made, it would help save costs. Similarly, if test cases are in sync with the design documentation at all times, that will prevent rework. If expectations by managers is communicated correctly, and updates by team members are conveyed regularly, it leads to a smooth-functioning project.
What we study about communication
The key questions about communication are fairly simple. We employ a popular method of the Five W's (and 1 H). [http://en.wikipedia.org/wiki/Five_Ws] or even the seven important questions (Who, what, when, where, why, in what way, by what means) concerning any event, that the rhetor Hermagoras of Temnos supposedly defined as the loci of an issue. For any given situation, what should be communicated, to whom, by whom, how often, how should the communication occur, how much is appropriate, at what stage is communication impeding progress, etc. The answers to these questions are dependent on the details of the situation. However, common guidelines can be helpful in determining what is appropriate communication for a situation.
Since the inception of the software industry, communication has been used, in varying degrees, during the course of any given project. Across different projects and even within the same project, it may be seen that similar types of communication occur repeatedly in similar situations. Over time, we see that some communication practices occur more frequently than others, perhaps intentionally so, as we perceive more clearly the benefits of one over another. These can be viewed as reappearing patterns.
The notion of patterns
Christopher Alexander [http://en.wikipedia.org/wiki/Christopher_Alexander] a renowned architect and scholar, propounded the idea of using “pattern language” to describe architectural elements and features, which is widely considered the precursor to the idea of design patterns. It was found that in software development, the same types of problems were encountered repeatedly and similar solutions could be applied to them. Such solutions could be documented as patterns so that we can save time in solving well-known problems, and invest that time elsewhere. From this practice, it can be argued that the notion of using patterns to identify and solve the same kind of problems can be considered useful. The idea of communication patterns appears in a similar vein, where we notice, document, identify and apply the same types of communication practices as patterns.
How communication patterns help
Communication Patterns help us identify the appropriate type of communication for the appropriate situation. Like Design patterns, they are generalized guidelines to follow and not absolute rules. Situations and their interpretations are subjective, and the same applies to patterns. Communication Patterns are dynamic, as they evolve over time, as communication scenarios and practices change. Communication patterns allow us to learn from our past mistakes, and potentially replicate success, with respect to communication. Used appropriately, communication patterns should help prevent communication issues, and allow software projects to potentially operate more efficiently.
The Nature of Communication Patterns
What is communication?
Some definitions of communication are: “the imparting or exchanging of information by speaking, writing, or using some other medium ” and “the successful conveying or sharing of ideas and feelings ” (Oxford Dictionary). Wikipedia defines communication as “Communication is the activity of conveying information. Communication has been derived from the Latin word "communis", meaning to share. Communication requires a sender, a message, and an intended recipient, although the receiver need not be present or aware of the sender's intent to communicate at the time of communication; thus communication can occur across vast distances in time and space. Communication requires that the communicating parties share an area of communicative commonality. The communication process is complete once the receiver has understood the message of the sender. Feedback is critical to effective communication between parties. ” We see that in the presence of different definitions of communication, all seemingly valid, we need to establish what we consider communication for the current discussion. We consider communication closer to the definition provided by wikipedia, where the sender, message, medium and receiver are all components of communication.
Communication Patterns
Different types of communication patterns exist. And different things qualify as communication patterns. It is not just confined to what we conventionally consider as communication. Something like block diagram can be considered a communication pattern, as much as holding a meeting.
In the presence of many different types, communication patterns can prove complicated to identify, and apply. The benefit derived from communication patterns is dependent on applying the most appropriate pattern at the appropriate situation. Communication Patterns are designed to assist in identifying the best combination, by providing different properties to look for in a situation, and find the corresponding set of patterns which apply to such a situation.
Where are Communication patterns applicable?
Identifying the most appropriate communication patterns for any given situation, is done by first identifying attributes of the situation, and then finding the set of communication patterns that are designated as applicable for them.
Attributes of scenarios:
Some interesting attributes of scenarios we can identify are:
- Direction
- Communication Artifact
- Communication channel/media
- Synchrony
- Formality
- Expected Outcome
- Role
- Duration
- Authority
- WHAT
- Established Scope (Input) –
-
- Artifact centered meeting vs Artifact free (this can be the output also)
- Expected result (Output) –
- Decision making meeting(typically produce or update an artifact) vs Discussion meeting(ideally with artifact, but often without it)
- WHO
- Number of participants –
-
Direction based (influenced by role, may be consolidated with role later)
- 1-way vs multi-directional -
If the pattern is unidirectional, it fits situations like a presentation or a lecture. For just a memo or a presentation, the communication is usually unidirectional. Here, the speaker can be considered to be the active participant, and the audience that may participate nominally, if at all, can be considered the passive participants of the pattern.
In multi-directional communication patterns, all parties are expected to participate, although the degree of involvement may vary.
-
Role based / Authority based
- Meeting of equals(functionally similar roles or same team) vs Mixed
- Single leader/coordinator meeting vs Multiple coordinator meeting
- Shared knowledge vs shared goals vs shared vision.
Depending on role, again the pattern would change, as a team member giving a presentation on project progress to a stakeholder with greater authority, would tend to compose a formal and thorough report with a different level of granularity than if the audience were his/her team mates, as the items of interest and expectation change. Again, we see how important the audience is in shaping the pattern.
A meeting coordinator, or artifact owner can be considered a leader of the communication pattern. The leader may have additional responsibilities, like arbitrating discussion, conflict resolution, etc. The person who is the leader may also be the chief active communicator, although that is not necessary.
Degree of commonality for both affects style, content(WHAT), roles with different goals involved (WHERE). Example- an asynchronous medium in such a high risk scenario is a bad idea typically – not understood or misunderstood messages.
- HOW – format/style(level of formalism)- this is heavily influenced by WHO, more formal if more authority figures are present.
- Type of artifact affects the style – presentation(appropriate for shared goals but not shared knowledge) vs Design document (shared knowledge, possibly shared goals)
-
Style
- Formal
- Update/Report
- Presentation
- Stakeholder meeting
- (Meeting minutes)
- Informal
-
- Brainstorming meeting ( as-is)
- (Artifact)
- (Internal team meetings)
Style is formal when either when information is being conveyed up the authority chain, or to “strangers” like external teams, or when structure is required for an artifact that will be referred to later. For artifacts shared and modified across different roles, version control becomes an important part of the communication pattern.
Informal style of communication is adopted when some aspects of the communication are assumed, and therefore not re-stated. In a brainstorming meeting internal to a team, some detail can be ignored in the discussion assuming that all the participants have a common level of understanding and knowledge of the system and problem, to some degree. However, informal communication should not be confused with sloppiness. One can be informal and still be precise.
- WHERE – medium / scenario / physical location
- Communication channel/media used
- Medium
-
- Face- to Face
- Teleconferencing
- Video Conferencing
- Physical Location
- Co-located teams – different teams situated and working together
- Disparate team location (Virtual team) – 1 team situated in one location
- Single location team – 1 team/ 1 location
- WHEN – frequency / relationship with other events(e.g early planning meeting, post deployment assessment) / length of pattern (short form communication / complete document) / time to create or assess pattern artifact
- Asynchronous vs Synchronous
- Short duration vs long duration (typically > 2 hours) amount discussed vs amount decided
- Frequency based:
-
- Update only when solicited
- Regular asynchronous update
- Face-to-face communication
- Frequent update meetings
- Large Update meetings
- Design/Brainstorming meeting
- Directed Presentation / Conference
- Discussion Forum / Workshop
- Planned event vs impromptu event
- WHY – (more subjective)
- Benefits Analysis
- Risks associated
- Applicable Scenario (criteria / list)
- Example(to demonstrate the pattern)
(Values)1-way vs multi-directional
Whether the communication is unidirectional (like a presentation where only 1 participant shares with the rest of the participants), with or without expecting feedback, or multi-directional, where all or most of the different participants are expected to actively communicate ( like at a shareholder or design meeting ).
(Values) Artifact centered meeting vs Artifact free
Communication artifacts are any tangible document or object used as either the container of the message or as a subject of communication. If the communication is centered around an artifact, like a design document/test suite/requirements document.
What is the medium of communication used. Whether the communication is over email, face-to-face, over the telephone, videoconferencing, etc.
(Values) Asynchronous vs Synchronous
Synchronous communication where the communicating parties are in sync concerning time, also called real-time communication, like a face-to-face meeting, a telephone call, etc. Or Asynchronous communication, where there is the advantage of a staggered response time, like communicating over email.
(Values) Formal vs Informal communication
Whether the nature of communication is formal or informal. Design documents would typically be considered formal communication, along with presentations to stakeholders. Informal communication might occur in situations like an internal team brainstorming meeting.
Decision making meeting(typically produce or update an artifact) vs Discussion meeting(ideally with artifact, but often without it)
Whether a meeting is held with the intention of making decisions or with the intention of just holding a discussion with the concerned parties.
(Values) Single leader/coordinator meeting vs Multiple coordinator meeting, small vs large group meeting
Whether the meeting is held with small number of participants, or with a large number. Whether the meeting has a single coordinator, or multiple.
(Values) Short duration vs long duration (typically > 2 hours)
Time constrained, potentially short duration communication like a daily stand-up update meeting, or time flexible, long duration meeting, which might occur infrequently.
(Values) Meeting of equals(functionally similar roles or same team) vs Mixed
Whether it is a meeting of similar roles, or people with comparable levels of authority and/or responsibility.
Properties of the pattern:
Having identified a scenario and it's relevant attributes, the next step is to identify a suitable communication pattern based on those attributes. The description of a pattern contains it's properties, which would match with the attributes of a scenario. Thereby giving a list of suitable candidates for a situation. The Pattern description is divided into categories, and further sub-categories.
This property of the communication pattern indicates the Content of the communication , it's granularity and scope. This can be further classified into:
This indicates what is the scope that the pattern initially is based on. This could be an artifact that gets updated, or just an informal agenda or discussion issue.
This indicates what the outcome of the pattern is supposed to be. It could be something intangible like a decision, or a tangible output like a formal document or email.
Participants (active/passive) – Participants in a communication pattern can be anyone who is involved, and it includes the audience(if any), as well as those speaking/making documents, etc. This attribute describes the number and types of participants in a communication scenario. This can be further classified as:
This would determine if the number of participants in the pattern is large or small.
Artifacts are a good place where interesting communication scenarios may emerge. Depending on the intended audience (WHO) and intended use, artifacts may range from very formal(Design Documentation), to completely unstructured and informal(sticky notes).
Often, the medium, by its properties, decides whether communication can be synchronous or asynchronous. Types of communication based on different media are:
Different types of communication would be applicable to teams dependent on their physical location.
Types of patterns:
- Strategic Patterns
- Tactical Patterns
- Micro Patterns
These types of patterns are intentionally followed. They usually relate to planned action which should contribute to the direct achievement of long term goals. These kinds of patterns are usually centered around scheduling, major courses of action and their corresponding appropriate conditions. They are patterns of behavior consciously implemented, to serve a purpose. Strategic patterns could be as broad based as “adhering to the plan” or “having a flexible plan for contingencies” or “abiding by goal setting”.
Strategic patterns in communication can be centered around certain artifacts of communication, like a To-Do list, a meeting agenda or a presentation. In fact, artifacts of communication can be of different media, like written artifacts, spoken artifacts, electronic artifacts, etc. Often certain communication artifacts are the driving force behind strategic decisions, if they aren't a way to monitor or prove the benefits of such decisions. Such type of decision making can be thought of as “offline” decision making. It is deliberate and based on either prior experience or reasoned understanding and expectation management.
Patterns that can be considered strategic can be around setting the pace of the project, deciding how often to communicate with stakeholders, deciding how often team meetings should be held, deciding which members of the team should meet frequently, deciding to take notes, or record sessions for post analysis or record keeping, deciding on feedback media, deciding to articulate goals and allowing them to be the guiding factor in setting up sub-strategies.
Tactical patterns are patterns of behavior which are often observed, but do not take place as a result of a planned course of action. They are often the result of the instinctive behavior of the individuals involved or behavior backed by thinking but not pre-planning. Patterns of such type are related to subconscious behavior in similar situations or with conscious behavior but thinking “on the fly”. These types of decisions may or may not be intentional. This type of decision making can be thought of as “online” decision making, where conscious thought is involved, but not extensive discussion and planning in compliance with goals.
Behavior like becoming an implicit leader by example, without there being any explicit need to warrant such a move could be because of the natural leader instincts of the team member, can be classified as a tactical pattern of behavior. Or behavior where the person doing the most amount of work in the team takes responsibility for more work readily. Patterns where certain tactics are employed in small situations to either drive others to work, to encourage, to deal with a delicate situation diplomatically, to give bad news but gently, to command authority without ever issuing any commands to that effect, etc would also be part of tactical behavior.
The tactical and strategic patterns manifest themselves sometimes as very specific kinds of behavior, when examining the granularity of patterns, this is a finer grained look at human behavior as part of a pattern. Micro patterns are concerned with the actual observed behavior, where patterns emerge in the specific types of things people say. The micro patterns are concerned more with the type of sentence construction and the exact words or phrases employed, specially noticed within a larger tactical pattern.
If someone is using passive voice instead of active voice to convey something unpleasant, that would be part of a micro pattern. If someone employs positive sentence construction rather than negative, the exact words used could be identified as a micro pattern.
Pattern Distinction
The distinction between strategic patterns, tactical patterns and micro patterns can be illustrated with this example.
To decide that work will be divided into tasks to compartmentalize and keep track of the different pieces of work that need to be done could be considered a planned strategic move, to adhere to the goal of effective task management.
To decide during the team meeting that individual task assignments are best suited based on the reserved nature of team members involved, can be considered a tactical pattern.
The actual team assignments, Member A is responsible for the tasks related to component integration, Member B is responsible for user interface related tasks, etc, can be considered the Micro Pattern, specifically the sentence structure used when the task allotment is done, Is the task allotment done as a to do list, Is it offered as work to do, Is it presented as a request?
There are different properties of patterns, when viewed from different perspectives:
Variations of WHAT:
- To Do List
- Risk Document
- Meeting Minutes
- Task Allotment
- Agenda
- Progress Report
Variations of WHO:
- Stakeholders
- Team representative
- Internal Team meeting
- Inter Team meeting
Variations of HOW(Style):
- Weekly Planned meeting
- Ad-hoc Update Meeting
- Decision making meeting
- Daily Quick Update meeting
- Directed Presentation
- Brainstorming Session
- Teleconferencing or Video Conferencing versions of
- Information Solicitation meeting
- Touch base meeting