6.a) Effective communication is among the most challenging activities that you will confront. Justify this statement by discussing the principles that apply to communication within a software project.
Answer:
Effective communication (among technical peers, with the customer and other stakeholders, and with project managers) is among the most challenging activities that you will confront. In this context, I discuss communication principles as they apply to customer communication. However, many of the principles apply equally to all forms of communication that occur within a software project.
COMMUNICATION PRINCIPLES
Principle 1- Listen: Try to focus on the speaker’s words, rather than formulating your response to those words. Ask for clarification if something is unclear, but avoid constant interruptions. Never become contentious in your words or actions (e.g., rolling your eyes or shaking your head) as a person is talking.
Principle 2- Prepare before you communicate: Spend the time to understand the problem before you meet with others. If necessary, do some research to understand business domain jargon. If you have responsibility for conducting a meeting, prepare an agenda in advance of the meeting.
Principle 3- Someone should facilitate the activity: Every communication meeting should have a leader (a facilitator) to keep the conversation moving in a productive direction, (2) to mediate any conflict that does occur, and (3) to ensure than other principles are followed.
Principle 4- Face-to-face communication is best: But it usually works better when some other representation of the relevant information is present. For example, a participant may create a drawing or a “strawman” document that serves as a focus for discussion.
Principle 5- Take notes and document decisions: Things have a way of falling into the cracks. Someone participating in the communication should serve as a “recorder” and write down all important points and decisions.
Principle 6- Strive for collaboration: Collaboration and consensus occur when the collective knowledge of members of the team is used to describe product or system functions or features. Each small collaboration serves to build trust among team members and creates a common goal for the team.
Principle 7-Stay focused; modularize your discussion: The more people involved in any communication, the more likely that discussion will bounce from one topic to the next. The facilitator should keep the conversation modular, leaving one topic only after it has been resolved.
Principle 8- If something is unclear, draw a picture: Verbal communication goes only so far. A sketch or drawing can often provide clarity when words fail to do the job.
Principle 9- (a) Once you agree to something, move on.
(b) If you can’t agree to something, move on.
(c) If a feature or function is unclear and cannot be clarified at the moment, move on.
Communication, like any software engineering activity, takes time. Rather than iterating endlessly, the people who participate should recognize that many topics require discussion (see Principle 2) and that “moving on” is sometimes the best way to achieve communication agility.
Principle 10-Negotiation is not a contest or a game. It works best when both parties win: There are many instances in which you and other stakeholders must negotiate functions and features, priorities, and delivery dates. If the team has collaborated well, all parties have a common goal. Still, negotiation will demand compromise from all parties.