Meetings Are Legalized Robbery

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

Разработка программного обеспечения – это все о творчестве, верно? Это искусство, а не наука. Как инженеры-программисты, мы решаем сложные задачи, и наши решения часто далеко неочевидны. Мы экспериментируем, инновируем, проводим исследования и расследования. Для всего этого мы общаемся. Мы сидим вместе в наших переговорных комнатах, делаем конференц-звонки в Skype или общаемся в каналах Slack; мы обсуждаем наши решения, спрашиваем мнение коллег и спорим о лучших идеях. Нет сомнений, что встречи – ключевой компонент современной дисциплины разработки программного обеспечения… и очень печально видеть это.

Хороший архитектор программного обеспечения, а также хороший менеджер проекта, не нуждается в встречах и никогда их не организует.

Встречи демотивируют, тратят время, сжигают деньги и снижают качество. Но об этом поговорим позже. А сейчас давайте обсудим предлагаемую альтернативу.

Предположим, я архитектор, который должен разработать схему для реляционной базы данных в новом проекте, и у меня есть команда из пяти программистов, которым я хочу помочь мне с этим проектированием. Это очень логичное и подходящее желание, так как хороший архитектор всегда обсуждает все возможные варианты с доступными участниками команды, прежде чем принять окончательное решение. Итак, я устраиваю встречу? Нет!

A Good Architect

Я прошу Джеффа, одного из наших программистов, создать черновик схемы базы данных, но фактически не общаюсь с ним об этом. Я ценю и уважаю его время — нет необходимости беспокоить его этой организационной суетой, поэтому я просто создаю тикет и назначаю его Джеффу. Когда у него будет время, он создает черновик и возвращает запрос на слияние. Я его рассматриваю и оставляю некоторые комментарии, прежде чем он обновляет ветку, и, наконец, я сливаю это.

Отлично, у нас есть черновик.

В конце документа Джефф также перечислил предположения, риски и заботы. Вот, что я получил от него (это Markdown, очень удобный формат для простых технических документов; я настоятельно рекомендую его).


## Tables

пользователь (id INT, имя VARCHAR, электронная почта VARCHAR); платеж (id INT, дата DATETIME, сумма INT); заказ (id INT, описание VARCHAR, user_id INT FK(user));

## Assumptions

* Все платежи будут производиться в целых долларах, без центов.

* У всех пользователей будет только один адрес электронной почты.

* Не будет необходимости в функции поиска.

## Risks

* Детали заказа могут не поместиться в VARCHAR.

* В DBMS может отсутствовать поддержка внешних ключей.

## Concerns

* Было бы лучше использовать NoSQL?

* What is the DB server we'll use?

Я не знаю, сколько времени Джефф потратил на этот документ, но я просто создал его за 10 минут. Конечно, это очень простая схема для очень простого проекта. Но даже если Джефф потратил на нее час, каждая минута этого часа ценна для проекта. Я имею в виду, что каждый доллар, который я плачу Джеффу за его время, возвращается мне в виде текстового документа.

Теперь у меня есть черновик и я перехожу к следующему шагу. Я прошу Монику взглянуть на него и предложить изменения. Снова проходит час и я получаю запрос на слияние с изменениями, исправлениями, новыми предположениями, новыми рисками и новыми вопросами. Я не общаюсь с Моникой - нет необходимости в этом. У нее есть всю необходимую информацию для работы с схемой БД. Она хороший инженер, и я доверяю ее способности выразить свое мнение в письменной форме.

Нет необходимости сидеть в одной комнате или стоять у доски. Моника достаточно умна, чтобы справиться с этой работой самостоятельно. У нее уже есть все идеи, высказанные Джеффом перед ней; ей также нет необходимости разговаривать с ним.

После правильного обзора и исправлений, когда я подтвержу ее запрос на слияние, у меня будет новая версия моего документа schema.md.

Кроме того, у меня есть история Git этого документа, а также история запросов на объединение с комментариями. Это гораздо лучше, чем заметки совещаний или даже видеозапись совещания. Любой, кто присоединится к проекту позже, сможет понять, как мы пришли к решению использовать PostgreSQL и хранить денежные суммы без копеек. Все это доступно в истории Git и GitHub-запросах навсегда с нами.

Что, если мне нужно больше мнений? Или если я все еще не уверен в том, что схема достаточно хороша? Нет проблем; я попрошу кого-то другого еще раз просмотреть ее и прислать мне запрос на объединение с изменениями. Я даже могу попросить Джеффа сделать это снова после нескольких итераций с другими программистами!

Кроме того, я могу добавить свои собственные замечания в документ и на следующей итерации попросить Джеффа обратить на них внимание и решить их.

Чем больше мы обращаемся к этому документу, тем лучше он становится. И каждая минута, потраченная на проект, превращается в осязаемый продукт: документ с историей изменений!

Вот как профессиональный архитектор собирает мнения и принимает сложные решения. Теперь посмотрим, что сделал бы плохой архитектор.

A Bad Architect

Сначала я созваниваюсь на собрание. Нет, подождите; я назначаю его в Google Календаре. Нет, подождите, подождите. Прежде всего, я создаю повестку дня:

1. Introduction: 10 min
2. Problem: 15 min
  - We need a DB schema
  - Let's choose a server
3. Opinions: 15 min
  - Jeff and Monica have experience
  - Others?
4. Coffee break: 10 min
5. Discussion: 30 min
  - Let's not forget risks
  - Ask Joe about PostgreSQL
6. Conclusions: 10 min

Я уверен, вы знаете, о чем я говорю, и видели такие планы у ваших “архитекторов”. В любом случае, мой первый шаг сделан. Я назначил собрание продолжительностью полтора часа, на котором будут присутствовать все программисты. Мы хорошо проведем время и выпьем кофе. Обсудим проблему, выслушаем все мнения и найдем лучшее решение. Задокументируем это в файле schema.md и вернемся к своим задачам.

Вместо распространения этих сухих и скучных документов Git, у нас будет настоящее человеческое общение с приятным перерывом на кофе, где мы будем обмениваться мнениями о последнем эпизоде «Теории большого взрыва». Разве это не то, что нам всем нравится в нашей офисной работе?

I don’t think so.

Я думаю, что встречи размотивируют, тратят время, растрачивают деньги и ухудшают качество. Те, кто их организуют, либо не имеют представления о том, что делают, либо молча грабят компанию, в которой работают.

Нам были нужны встречи 30 лет назад, когда у нас не было ноутбуков и GitHub. Но даже тогда у нас была ручка и бумага.

Я говорю о встречах, которые предназначены для сбора или распространения информации, обсуждения или предложения чего-либо, или поиска решения в технической области. Единственная правильная цель встреч - это наблюдение за языком тела людей, с которыми вы имеете дело. Политики, бизнесмены, игроки в покер, психологи, врачи и т.д. - им нужны встречи, потому что они должны наблюдать за нашими телами, а не только за нашими мыслями.

Действительно ли нам важно тело Моники, когда мы разрабатываем схему базы данных? Ну, это зависит, верно? Но давайте будем серьезными; за это нам не платят.

Meetings Demotivate

Лучшая мотивация для творческого человека - увидеть результаты своего творчества. Если я не ошибаюсь, наслаждаться процессом творчества без каких-либо результатов - явный признак психического расстройства. Здоровый и творческий человек, например, программист, хочет видеть, как его усилия превращаются в что-то ценное и, желательно, осязаемое.

Встречи практически никогда не приводят к конкретным результатам и редко что-то ценное. Иногда у нас есть “протоколы” наших встреч, но это всего лишь краткие записи на листочках с кратким резюме того, о чем мы говорили. Не настоящий “продукт” для творческого человека.

Таким образом, они снижают мою мотивацию, потому что я просто не вижу, во что превратились два часа моей жизни. Мы там на самом деле не создаем ничего, мы просто обсуждаем. Обратите внимание; я говорю о собраниях, а не о коллективной работе над чем-либо, например, как в парном программировании.

Вы можете сказать, что некоторые встречи действительно порождают отличные идеи, которые являются очень осязаемыми результатами. Вы можете сказать, что только в прямой, личной обстановке эти идеи могут появиться. Вы также можете сказать, что многие яркие технические решения были изобретены именно благодаря волшебному синергетическому эффекту друзей, мыслящих в одном направлении, в одно и то же время и в одной комнате. Этот аргумент имеет смысл, но я рассмотрю его позже.

Meetings Waste Time

Я думаю, это очевидно. В первые несколько минут встречи вы сосредоточены; затем начинаете проверять ленту своего Twitter и рисовать каракули. Все делают то же самое — не потому что мы ленивые, а потому что на встрече нет необходимости полностью сосредотачиваться.

В то время как Моника работает с документом, оставляя комментарии и предложения, она полностью сосредоточена на результате — в основном потому, что некому помочь ей. Ей нужно отправить этот запрос на слияние, и я жду ее. Ее концентрация такая же высокая, как на совещании, когда кто-то задает ей прямой вопрос, и ей нужно дать подробный ответ.

Ее время оптимизировано для достижения подходящего результата, в то время как все остальные занимаются чем-то другим.

На встрече, с другой стороны, мы в лучшем случае слабо концентрируемся. И чем длиннее встреча, тем медленнее мы работаем. Кроме того, чем больше людей присутствует, тем меньше нас это волнует, и тем больше мы заинтересованы в обновлениях на Facebook. Я думаю, что для вас это не является сюрпризом, если вы хотя бы несколько месяцев работаете в сфере разработки программного обеспечения.

Meetings Burn Money

Это тесно соотносится с предыдущим заключением. Встречи являются одними из крупнейших потребителей бюджета любого типа деятельности в проекте, просто потому, что они оплачивают каждого, кто находится в той комнате или на той конференции Skype, при этом результат, который они производят, почти равен тому, что может достичь один человек. Или гораздо меньше.

Хотя это может показаться экстремальным, я должен сказать, что я считаю совещания легализованным способом обокрасть проект. Большинство организаторов совещаний (архитекторы, главные технические директоры, генеральные директоры, программисты и т. д.) не осознают этого. Они верят, что чем больше они говорят, тем лучше они инженеры. И их начальники, по ошибке, ценят такой вид активности со стороны своих подчиненных.

It’s robbery!

Я сказал тебе создать проект схемы базы данных. А сейчас ты приходишь ко мне и просишь встречи, потому что некоторые “аспекты” не ясны? Ты где-нибудь изучал разработку программного обеспечения? Ты знаешь, как работать с техническими документами? Ты способен писать так, чтобы все другие могли понимать и отвечать тебе также письменно? Нет? И теперь ты хочешь, чтобы проект не только заплатил тебе за проект схемы базы данных, но и заплатил мне за разговор с тобой, а также за то, чтобы еще несколько парней сидели рядом с нами и писали сообщения своим друзьям? По сути, ты хочешь ограбить владельца этого проекта. Ни больше, ни меньше.

Meetings Degrade Quality

Качество повышается, когда оно контролируется. Когда кто-то каждый день говорит мне, что мой код содержит ошибки и требует улучшений, мое качество повышается. Когда никому не важно, что я делаю или насколько хороши мои результаты, мое качество падает, несмотря на мою собственную мотивацию.

Встречи способствуют достижению групповых результатов и не поощряют индивидуальные достижения. Конец встречи часто неясен, кто именно предложил хорошую идею и кто внес наибольший вклад. Другими словами, в конце встречи я не знаю, насколько хорошо я себя проявил. Я остался таким же, как месяц назад, или я стал лучшим инженером?

Они улыбаются больше и чаще спрашивают меня “что ты думаешь?”, чем прошлым летом; это, должно быть, означает что-то, верно? Я уверен, что вы понимаете, что это не тот тип обратной связи, который ожидал бы серьезный инженер.

Серьезный разработчик программного обеспечения хочет получать конкретные результаты и обратную связь, например, деньги или обзоры кода. Я хочу знать, что было неправильно в моем черновике схемы базы данных и что я пропустил. И я хочу, чтобы это было документировано где-то. Именно это делает меня лучше, и так я узнаю и расту.

What About the A-ha! Moment?

А что насчет настоящего творчества или известного момента “а-ха!”? Иногда необходимо “мыслить вслух”, чтобы что-то изобрести, верно? Мы все знаем, насколько важным может быть личное общение, когда мы исследуем и разрабатываем что-то новое. Где бы мы были без встреч? Просто невозможно работать только с документами; нам нужно общаться друг с другом, чтобы выразить свои идеи. Разве это не очевидно?

У меня есть только один аргумент в пользу этого. Эйнштейн изобрел свою теорию на совещании со своими коллегами? Я не думаю. И он решал намного большую проблему, чем проектирование схемы базы данных.


Let me summarize. Meetings are an activity that requires almost no skill, while documenting ideas in text and diagrams is a way more difficult job to do. So train and discipline yourself to work with documents and let juniors enjoy their meetings.

Translated by ChatGPT gpt-3.5-turbo/30 on 2023-08-29 at 06:30

sixnines availability badge   GitHub stars