Seabase 2 Case Study

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:

Types of patterns:

  1. Strategic Patterns
    1. 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.

  2. Tactical Patterns
    1. 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.

  3. Micro Patterns
    1. 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:

 

Variations of WHO:

 

Variations of HOW(Style):



Department of Computer Science | MTU

www.cs.mtu.edu