📜 ⬆️ ⬇️

About the benefits of brevity



On the one hand, programmers are not the most sociable people in the world, to put it mildly. This is normal, because if developers suddenly become talkative who will write the code? On the other hand, the time for singles has passed. Modern software is developed by teams and even the most conservative companies, like Sberbank, implement Agile . Agile manifest promotes certain values , including: " People and interaction are more important than processes and tools ." So communication with colleagues is not a whim, but a need. This article focuses on flexible development teams: developers, team leads, analysts, testers, etc.

Professional PMs are unlikely to find anything new here. If you are a “techie” and you want to be distracted as little as possible from the main type of activity and you wonder what Sparta is about, welcome to cat.

Business communication differs from friendly gatherings primarily focusing on results, not a process. We say goodbye to friends with the words “we had a great time”, and not “thanks, colleagues, it was effective.” How is communication efficiency measured? Back in 1975, Brooks remarked that one of the most important obstacles to scaling up development is the cost of communication:
')
If there are N programmers, then the number of programmer pairs is N (N — 1) / 2, that is, as the number of programmers increases, the time spent on interaction increases quadratically. Therefore, starting with some N, an increase in the number of programmers slows down the execution of a project.

and attached particular importance to the interaction between developers:

To prevent a disaster, development teams should interact with each other in all possible ways. Instead of making assumptions about the function it implements, the developer should ask the architect clarifying questions, since assumptions may be completely wrong. “Assumption is the mother of failure.”

His conclusions on this score have not only never been questioned, but have been repeatedly confirmed. Thus, developers need to communicate as much as possible, to clarify requirements and restrictions, in no case relying on assumptions (because they are often wrong) and at the same time communicate as little as possible to reduce communication costs that grow quadratically, unlike from a growing linear performance gain by adding additional members of the development team. At first glance, we have a clear contradiction. However, history knows at least one example where the whole city managed to maintain a culture of effective communication.

“... If someone wanted to get close to the most worthless of the Laconts, then at first glance he would find him rather weak in speeches,” the philosopher Socrates warned his countrymen, “but suddenly, in any place of speech, he would throw, like a powerful shooter some exact statement, short and concise, and the interlocutor seems to him a small child. "

If Tsar Leonid were our contemporary, he probably could have said something like:

Communication on the project is effective if it takes the minimum possible time required for making quality decisions and communicating them to the team members.

Stand-up


Everyone knows that a meeting is an excellent alternative to work. Stand-up meeting, daily scrum or more simply “planning meeting” is the only regular meeting in agile methodologies. Every day a meeting is held by the whole team, where everyone answers the questions:

  1. What did you do yesterday? (pride)
  2. What problems did you encounter? (please help)
  3. What will you do today? (Promise)

It is very desirable that the stand-up was held in the morning. It’s not too early to rule out late arrivals, give participants time to prepare and have a cup of aromatic coffee. It is absolutely necessary that all team members are present and adhere to a formal plan: answer three questions and pass the word. Problems should be discussed after and involve only interested persons. Otherwise, the "planning meeting" develops into a spontaneous bazaar. The optimal time for holding a daily meeting is no more than 15 minutes. The optimal team size is no more than 7 people. If your team is more and you are going for an hour or more, most likely the team should be divided. Offer this team lead or project manager.

To meet in 15 minutes to the "stand-up" you need to prepare. If you experience difficulties with public speaking, open a notebook (electronic or sheet of paper) and write down the answers to the questions. And then imagine yourself a real Spartan and cross out all that is superfluous: interjections, adverbial turns, lyrical digressions. Leave the bare facts. Avoid ambiguity. If you have a problem, you do not need to hush it up: clearly and concisely state and ask for help. If you think you know how to decide, clearly tell about it and ask to confirm that your decision is optimal and additional discussion is not required. Do not overdo it. Task numbers from task tracker are not enough. Your colleagues do not remember what lies behind task number 100500. It is worth voicing the name of the task.

"Standup" can be compared with the rehearsal of a musical group. Team members are not required to know the parties of other participants in detail, because they have different specializations. However, musicians need to rehearse together to get really high-quality sound, because the “quality” is created through attention to detail. By the way, in professional teams it is not customary to make other people wait. Appearing at a rehearsal without knowing your party equates with a demonstration of extreme disrespect and neglect. You will come a couple of times without preparing and you will be asked politely or not.

Ideally, after the “stand-up” everyone in the team knows the operational situation on the project and continues to go about their business. Problems come to light at an early stage. Only the necessary people are involved in solving problems. While everything is going well, we spend on communication no more than 15 minutes a day and solve all issues qualitatively . Eh, if everything always went like clockwork :)

More information about the best and worst practices of “stand-ups” can be found in the AlexanderByndyu blog .

Prompt communication during the day


In the real world, we face innumerable problems. It’s time to take the task, but the requirements are not yet complete, the layouts are not ready, the API is not documented, a critical bug is found in the library used and you need to write in support ... Continue the list yourself. How to solve such problems? Answer the following questions:

  1. How many people (minimum) are needed to resolve the issue, and who are they?
  2. Who and when should be notified of the decision?
  3. What communication channel to use?

Communication channels


Different companies have adopted different standards for corporate communication. Without pretending to the ultimate truth, I will tell you how it is with us.

  1. Personal communication / Skype, phone: the most urgent issues that do not require delay or issues that can not be solved otherwise in the course of a long time.
  2. Messenger: questions that require an answer during the day and do not require decisions affecting other team members.
  3. Task tracker: questions that need to be answered within a week and / or change / fix requirements.
  4. Mail: notifications that are not directly related to the project activity: going on vacation, absence due to illness, connecting a new employee or leaving the employee from the project. Communication by mail is a separate topic, rather related to the work of the manager, so that we will no longer talk about it.

Communication channels are sorted in order of speed and issues "cost." Let's start with the fastest and “expensive”.

Personal communication / skype, phone




Imagine a situation: you are sure that your colleague Innocent is exactly aware of how to solve the problem. The quickest way to approach him is to pat him on the shoulder and ask: “ Kesha, and I have such a thing here, how would I let it go so that ... ”. Most likely Innocent will not be delighted with the invasion of his privacy. "Standup" comes to the rescue again. If Innokentiy is in your team, “book” him right after the planning meeting. He was already distracted anyway, another 10 minutes of weather will not do.

It so happens that Innocent need everyone. For example, if you have assembled a team of one experienced developer and three students. I think this is a management problem, not a communication. If you are Innocent, talk to the management on the topic “I work after lunch, and before lunch I teach part-time”. If you are a student, stand in line. Unfortunately, until now many pseudo-managers believe that the team lead writes code for eight hours, while everything else does something between tasks. If the team is an architect and experienced programmers, but the architect makes changes to the structure of the application, because he "sees" and does not document it, this is again a management problem, not a communication. It is necessary to allocate enough time for design, documentation and consultation. If the architect does more harm than good, he may not need it at all.

I have quite a busy working graph, so from a certain point I’m keeping a public google calendar. So do some of my colleagues and acquaintances.
If you are a team lead / tech. Dir / architect and a considerable part of the time is occupied by meetings, perhaps organizing working time using a calendar will be useful to you.

Messenger


Well suited for short clarification questions, like:


If communication is delayed, this may indicate that you do not understand each other and that you need to get in touch or the problem is more difficult than expected and will require the involvement of additional participants. In the second case, you may need to postpone the issue or attract additional participants.

Task tracker


Effective communication in the tracker requires discipline and a certain level of processes. The key to success - the lack of information that is not directly related to the task and lengthy discussion. Tracker is not a forum. Many tasks are so overwhelmed with comments that it takes hours to study them later. It is necessary to clearly indicate whose reaction is required. If your tracker does not support the @userName notation, then I have bad news for you. Messages should be formulated as briefly and succinctly as possible and avoid ambiguity. Re-read the message several times before sending a message:

  1. Who is it for? Specify.
  2. Is there enough information? Add enough.
  3. Is there any extra information? Remove excess.
  4. What reaction do you expect? Write explicitly.

A separate problem is bug reports. Considerable success can be achieved if you don’t take it to work until the bug is properly designed, for example:

  1. Environment
  2. How to play
  3. Expected behavior
  4. Actual behavior

Synchronous and asynchronous communication model


Personal communication and telephone is a synchronous communication model. Participants intensively exchange information. Due to this, issues can be solved more quickly. The fee is the loss of multitasking. At the time of communication, all participants are “blocked” and cannot do anything else. If the only way to resolve the issue is an hour skype call, then you will have to do it. Fortunately, most of these extremes can be avoided. Moreover, whenever possible , a synchronous model of communication should be avoided . Respect the time of colleagues!

Written communication, on the contrary, is asynchronous, with the mail and tracker timeouts exceeding one working day, and the timeouts in instant messengers, on the contrary, are limited to working days. Imagine your colleague as a web server that serves a multitude of incoming requests (calls to messengers, mail, and tracker). You do not know what the load on the web server at a given time, but the sooner you send a message, the sooner you get into the queue. If the server is not overloaded, then after some time will respond. Take this into account and send requests in advance, and not when everything is lit, gone and urgently needed! If the “server” is not responding, try to contact later or use an alternative channel. But please, not at the same time, otherwise the server will turn on DDOS protection and it will be right.

Instead of conclusion


One of the most famous phrases of Leonid refers to how he was preparing to go to war with the Persians. When his wife, Gorgo, asked what she should do if he died, Leonid replied: " Take a good husband and give birth to healthy children ." Someone may be shocked by such a relationship between spouses. Consider another option. Gorgo could begin to sob and persuade her husband to stay at home, to give in to the Persians. Would Leonid listen to her? Not. After becoming king of Sparta, he undertook to protect his city and people. In addition, such behavior of the wife would have a negative impact on the morale of the king. Instead, Gorgo asked the only possible question in the most accurate formulation and received the most accurate and altruistic answer: “ be happy ”.

In the framework of business communication, we all represent the interests of organizations and are bound by certain obligations. It should be taken into account and act rationally, not allowing emotions to prevail. Conflicts of interest are inevitable, and personal conflicts, on the contrary, can and should be avoided in every way.

Source: https://habr.com/ru/post/340434/


All Articles