Let everyone learn better communication software project activities are people, and the project plan is running from the beginning to the end, and always runs through frequent communication. But a popular phenomenon is that people's communication costs will often be far beyond your expectations, which greatly reduces the efficiency of work. 1.1. Understanding communication cost communication is necessary, but communication has a "huge" cost. Robert Cecil Martin has been clearly described in his "Agile Software Development" book, why is there always been so hard. The author uses a "skin haptic" in the book, used to explain the difference between the information accepted by the body and the actual information. In order to let everyone have a sense of sensibility to communicate, some will give you a very kind scene that will feel very intimate: 1. As the architect's Andel is very distressed, the project has reached a critical moment, but it belongs to the core problem of itself. Time is too low enough. There are many things on the schedule: 9: 30 to participate in the "Inter-departmental Technology Coordination"; 11: 00 is a product deployment training for the test department; 13: 30 to participate in the authority design review of the basic department; 15: 30 Discussion Products EAI Integrated model. At 6:30 in the evening, I really belong to myself. I want to do something to do, but there are developers who have time to ask questions. 2. The control unit's David is the main developer of the company's report control, recently complained that the effective working hours are too small. As a result, I know that due to the tension of the previous project, the report hurriedly developed. The result is a lot of BUG. There are many people in the past every day. Many people call him in the past. Can't go anywhere, this interruptive work makes him no time to fix many known mistakes, and also delay the development of many new features, leading to the overall progress. 3. The Test Department begins to test the system to test the system, and the functional description in the demand specification description is not consistent with the actual development of work products. In this case, the tester GIGI didn't know if the demand should be re-test, or the first test and then verify the demand document. This situation is quite common, and GIGI reflects the serious impact of test efficiency. 4. Performance Test The virtual team has started a week, but there is no progress at all. The reason is to be responsible for the development of the developer prepared by the test data in the second floor, and the tester is on the third floor. Direct face-to-face communication can only be discussed in the email. The email discussion is very low, and the problem is proposed to respond for half a day, several rounds, and it will be in a week. 5. Designer Martin and developer Jack In the morning meeting, through the whiteboard describes the principle of the scheduling algorithm, and the developer must implement it according to the design intention, Jack is also allowed. A week later, Martin found when the code took place, Jack actually did not implement the scheduling algorithm correctly. Martin is very angry, how to understand what the white-faced face understanding will do something wrong. Jack explained that he might did not understand too much, many places may be misunderstood, so ...
There are still many scenes that may occur around. Tell us about this? Communication is cost, this cost performance is: 1. Communication cannot achieve 100% information transmission, due to the cost of information distortion 2. The time and space cost of communication itself 3. Due to the position of the communication, it causes follow-up Communication, each communication has a cost of appeal 1, 2.
The figure below describes a simple communication cost model. The "Snorkey" and "Suspers" concepts of communication theory are borrowed. The source represents the occurrence of information, the receiving end of the recipient representation information. It can be seen that the ideal communication is to pass all the information from the source to the resource, and there is no information distortion between it. And the actual situation, depending on the effect of communication, there is more or less distortion. If the distortion is too large, it is bound to lead to a further multiple communication, and communication costs have no doubt. 1.2. Reduce communication costs From the above communication cost model we can see that the key to reducing communication costs is "How to do more information from the source of information from Source to Subtsu" in a communication. This includes two elements: 1. Let information as much as possible
2. Minimize communication to time and space as much as possible
Clear the two basic elements described above can evolve a lot of communication skills. 1. Select the correct communication path
2. Make the contents of the expression easy to understand
3. Apply a variety of communication skills according to the situation
In practical cases, various techniques are explained: 1.1.1. Selecting the right communication path to select the correct communication pathway to ensure that the communication goals play a very important role. In software project management, there are a variety of communication. Maybe because of the communication of communication, it may also be necessary to choose different communication through the audience. Significant advice in XP and agile method is the communication of Face to Face. In order to achieve this communication effect, it is recommended to make a programming. It is recommended to create a barrier-free communication environment, such as a member of a project group sitting in one without baffles. The unit interval. However, this is just a suggestion, what approach is still on the actual situation. Here are some actual cases to explain how to choose the correct communication pathway.
Case 1: "I hope everyone is clear, and to be resolutely enforced"
The person in charge of the Milkyway project group has a lot of interrupt errors from the recent project milestone review system, and the quality of the software seems to have come to the time. Rassy knows the urgency of this work, and knowing the work must mobilize the needs, design, developing people, and everyone cares about the quality of the product to effectively improve him. Rassy knew that such a work should be carried out, we need all kinds of people to deeply understand the current status quo of quality, and be sure to take out the specific implementation of the plan to effectively reach the goal, so Rassy decided to convene a full-time quality mobilization meeting, At the meeting, the current quality and expected differences were stressed, which clearly proposed a milestone of quality and evaluation and asked everyone to prepare the action plan immediately. Evaluation: Events have a major impact on the overall situation, and it is necessary to adopt a full form of conference. This form is often formal, and it is easy to cause employees. At the same time, as long as the topic of the meeting is clear, it can be fully known. The members of the whole staff are suitable for implementation of strong influence, and quick decision making of fast action.
Case 2: "My mission is completed on his progress, I want to urge him to work as soon as possible."
The tester recorded three bugs to the Jack's system management module, where there is a bug is caused by improper parameter processing. Jack is very clear to know that this bug fixes to rely on the parameter management module access interface reconstruction to complete. The parameter management module is responsible for Michael. Jack wants to urge him to complete the reconstruction so that he can fix it within a normal bug account. Jack wants to send Michael to tell him about this, and then feel that it is better to play a call. Because now is now in the integration stage, everyone's repair task is a lot, there are many emails. If the light mail may not be enough to attract Michael's attention to this issue. Calling can confirm that it knows this. Evaluation: The communication method of calling is suitable for the requirements of the communication to clearly know the other party something, and ask the other party to respond as soon as possible, and both parties only need language communication.
Case 3: "This matter is not urgent, but I must know the other party, and I hope to confirm the respective responsibility in the future" Michael's parameter module interface because new demand is added recently, Michael, Michael Considering it, I feel that there are two reconstruction methods. A reconstruction approach is to directly modify the current existing interface, but Michael is worried that this modification may cause a large area to adjust the stability of the interface program. Another reconstruction method is to increase the new interface to meet new needs while retaining the old interface to temporarily compatibility with existing procedures, but set this interface as DEPRICATE (not recommended). Sustaining, Michael chose the second way. In order to see everyone, Michael decided to send an email to the entire project group, clear the current new interface, and the decision of the old interface still reserved, but it is not recommended to use the old interface again. Michael also tells everyone, I hope everyone will migrate the program from the old interface to the new interface in two weeks. Because the old interface will be deleted after two weeks, evaluation: Mail mode is suitable for a multi-point asynchronous event notification, I hope that the other party is known, but the other party will not respond immediately. At the same time, the message can be retained for an account.
The above case is just a corner of the case in the actual life, but the author hopes to help readers understand that before any communication, you need to think about it: "How do I communicate better with him?" 1.1.2. Make the expression The difficulty of understanding communication is often presented to the other party in a way that the content you want to tell is readily understood. The presentation here may be the story of Face To Face, or it may be an email or a document or code. The author participated in many project design reviews, and the code took place, which was very deep for this experience.
Many programmers (ie, demand persons) are difficult to communicate with users, which is a major reason that the programmer can't accurately understand the user's needs, thus enabling the product's lack of direction. Jack wants to let users understand that his newly designed permission model is very flexible, you can support multiple authorization models, absolutely able to meet the needs of users. When a user needs survey, Jack listened to some of the operations mentioned by the user, and he began to play his permissions to the user. Jack mentioned that his permission model is role based on the role, which can be flexibly allocated. As long as the operations and permission items correspond to the role, you can authorize it. The user is very serious, but I still don't understand what Jack wants to express, why do you want to describe it.
The designer is also difficult to communicate with developers. These difficulties will directly lead to misunderstanding design intentions, thus deviating from the original design direction in subsequent coding, resulting in some difficult expenditures. Martin is a new designer with many years of network communication programming experience, which is very understanding how the multi-threaded Socket program works. But in design he is still a newbie. In his design, he is a communication thread scheduling model, he believes that he is very simple to architecture out how many communication agents work together to complete data exchange. But for Jack responsible for this part, Jack can read some classifications and collaboration maps, but he can't really understand why these classes are divided, and these classes are divided into these classes, and why do collaboration between these classes Class through third parties indirectly? Jack is a very active programmer. When I don't understand the design model, he will ask Martin directly, but Martin believes that these models have been described enough, "Just work, no problem." Jack's recurring inquiry, sometimes interrupts Martin's hand, when the mission is very urgent, Martin does not consciously produce bad feelings about Jack. Jack felt this kind of "bored". If you encounter problems, you will not be happy to take the initiative to ask Martin, but in accordance with your own ideas. A week later, Martin found when the code took place, Jack actually did not implement the scheduling algorithm correctly. Martin was very angry, and Jack explained that he might did not understand it, many places may be misunderstood. What's the problem? Perhaps no matter when, the manager pointed at their nose asked. "Do you don't want the other party to understand more?", They will answer "we hope." However, in the work, we objectively discovered that many people will forget this. It is found in the author's sustainable survey, often the following reasons lead to obstacles in communication. 1. Alienly think that the other party will understand its intention 2. Think not enough time, so I have an omitted measures at the time of expression 3. Ignore different expressions for different issues should be taken.
Let others better understand your expression, what is good? Author I have some experience to share with you: 1. Whether you are in your work or in life, you must learn more about the problem in the opponent's perspective. China has an idiom, called "Facing the land", express this meaning. The method of training is to ask yourself. "Can he understand?", "Can you accept this way?", "If I am him, I will feel?". Specifically, it may be, "My code is so complicated, can someone can understand?" Task list, is it clear enough to make them clear? "," Can users understand? "And so on." 1. To recognize different expressions, different effects will be achieved. For example, the graphic is relatively simple, suitable for some framework, and tapped from a big place. Text compare details, suitable for subtle supplementary instructions. Colors are also very important. The category can be classified by color on the graph, making people clear; in the text, you can use color to emphasize some content, such as the core idea you want to express. Resolutely oppose the use of large paragraphs to describe a complex problem, because there is no one is willing to spend valuable time to see your big paragraph. Advocating the expression to graph and divide the detail level.
1.1.3. How to communicate better communication is a separate study, the author only emphasizes several skills that are most useful in our daily work.
Tips 1: Review your understanding to the lecturer
When others tell you about a complex thing, keep silent and listen patiently, despite your good cultivation, but please don't believe that you know all the other's intentions. Many times you thought you understand, but did not really understand. The correct approach is based on your understanding, repeating the other party in the right time, "Listening to the explanation you just, I want to describe my understanding, do you see it?". In this way, you often find your own understanding and the other's intentions often have differences. OK, "Review your understanding to the lecturer" is to seize the opportunity to achieve a 100% information transfer.
Tips 2: Good memory is worse than rotten
Maybe you are a memory genius, you have to don't forget, if you don't have such confidence, please remember the author's words "good memory is not as bad". This is a habit, to listen to knowledge lectures, go to the department meeting, negotiate with our customers, to participate in demand reviews, you'd better bring a small book, you need to have time you need. The habit of developing good notes is a work experience of efficient people.
Tips 3: "soldiers" after the first gift
Project management is inseparable from the criticism and encouragement of the project member. The criticism is not equal to scolding, but to the other party's heart to take oral, re-pick up the sense of work. Project members have not completed the task on time, or the quality is not high, as the project manager should "ritual" first - let him listen to his personal reasons. "Recent work check, I found that your work is not ideal, is there any special reason affects you, I want to hear your explanation?". The other party is explained, if the other party does "justify the reason", this can avoid your "wrong criticism". If the other party is not just right, you can frankly reveal his reason, let him consciously bow.
With two weekends, the author completed this manuscript. Regarding agile project management, there are still a lot of personal feelings, but you have to systematically, clearly explain, the author feels very difficult, time and energy have some strength, and the sure will leave everyone to express opinions and Supplement.
About the Author:
Cloudward, English name Wendell, Software Architect, is now working in a large-scale software company in China, engaged in the planning and management of large projects. He has a strong interest in software project management, software process improvement, software modeling and model driver. Before working, he got a bachelor's degree from Master of Electronic Science and Technology from Zhejiang University and Nankai University.