Кто виноват, если принимают решение единогласно?  Публичный пост

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

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

Я не слишком много команд видел, и часто мне кажется, что всегда должна быть конечная инстанция, которая принимает на себя ответственность за глобальные решения.

Какую систему распределения ответственности вы считаете оптимальной, если цель стоит делать нормальный продукт за нормальное количество ресурсов?

15 комментариев 👇
Sergey Kapralov, Java-разработчик 26 ноября 2020

Как хорошо что в клубе нет этих стереотипов про некропостинг. Какое сокровище попалось...

В вопросах ответственности я наблюдаю две крайности.

  1. Расстрелять врага народов. Эту крайность раскрыл @vas3k в своем комменте. Что характерно, обычно как только речь заходит об личной ответственности, у подавляющего большинства встречающихся мне поклонников коллективной ответственности всплывает именно эта аналогия, из-за чего диалога не получается.

  2. Мы креативный коллектив, как фиалки на клумбе - дружно цветем, когда все идет хорошо, и дружно чахнем всей клумбой когда что-то идет не так. Мы ответственны за все. Возможно это тоже какая то культурная особенность. Возможно это результат оджайл пропаганды. Не знаю. Но факт в том, что такая крайность ровно настолько же омерзительна, насколько омерзительна и первая. Когда за нечто ответственно более одного человека, на самом деле никто не несет ответственности. Это - аксиома. Иногда последствия неощутимы, и складывается ощущение что личная ответственность - фу, а команда рулит. Но в терминальной стадии следование этой крайности вырождается в бесконечные митинги, рост количества бессмысленных паразитных коммуникаций в почте, чатах и привате, падение качества проекта как следствие того, что никто (помним об аксиоме) не ответственен ни за код ревью, ни за пайплайн, ни за процессы, ни за дизайн-документацию, затягивание принятия решений, срыв сроков, факапы, нервотрепка. Спекуляция на командной безответственности в виде интриг, ИБД и guilt-менеджмента. Охота за токсичными ведьмами...

Короче в жопу крайности. К вопросу о том, "Какую систему распределения ответственности вы считаете оптимальной, если цель стоит делать нормальный продукт за нормальное количество ресурсов?".

Ниже - ИМХО. Детали могут отличаться в зависимости от проекта и не столько существенны, сколько - суть.

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

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

Тим-лид ответсвенен за своевременный релиз спринта с заявленным уровнем качества точно в срок. При это тим лид имеет право: устанавливать правила статус-репортинга, issue-трекинга, спринт-планнинга, модерирование код-ревью, и другие полномочия, необходимые ему для выполнения его задачи. На всякий случай поясню здесь отдельно что все вышеописанное про тимлида не означает, что данные полномочия он де-факто будет принимать в одно рыло, как аццкий диктатор. Де-юре, лучше бы ему иметь такое право, но только абсолютно некомпетентный лид будет глух к нуждам команды (в конечном итоге, когда все от него отвернутся, самодур гарантированно свою ответственность завалит).

Размер ответственности пропорционален полномочиям. Если человеку даны полномочия уровня "девелопер", глупо ожидать от него одного что процесы в команде наладятся. Если человеку даны полномочия "тимлид", нерационально растрачивать его ресурс на кодинг.

Два самых важных полномочия, которые должны быть доступны всем ролям: право на фидбэк (право высказываться о рисках и опасениях и быть услышанными), и право на эскалацию (право обратиться на уровень выше с запросом "рассудить", если на текущем уровне произошел сбой в распределении ответственности и полномочий). Без них будет больно, когда что-то пойдет не по плану - все скатится к крайности номер 1.

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

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

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

  Развернуть 1 комментарий

Да, изложил теорию, а на вопрос не ответил...

Какую систему распределения ответственности вы считаете оптимальной, если цель стоит делать нормальный продукт за нормальное количество ресурсов?

Я - за меритократию. За распледеление (явное или неявное) ответствсенности и полномочий в соответствие со способностями и компетентностями. Оценка способностей - тема конечно непростая, но никто и не говорил что все будет просто.

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

  Развернуть 1 комментарий
Yury Katkov, миддл формошлёп 30 апреля 2020

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

Все это может превратиться в свою противоположность если коллектив хреновый, или если просто ищут крайнего.

  Развернуть 1 комментарий
Вастрик, Блогер, питонист, мизантроп 18 апреля 2020

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

Вот здесь, мне кажется, в тебе включился человек твоей культуры. Той самой, где принято «находить и наказывать виновных». Вплоть до вендетты, ну мы помним.

Но есть и другие культуры, где виноватых искать не принято. Есть проблема — ее надо решать. Всё. Месть и поиски виновных — это лишние эмоции, которые вредят бизнесу. Яркий пример — современная Германия. То есть так можно и так работает.

В общем, всё это лишь культурные особенности.

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

  Развернуть 1 комментарий

Да, псот я читал, конечно.

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

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

  Развернуть 1 комментарий

Надо пояснить что я имею ввиду под "не ищем виноватого не работает в трудностях".

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

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

Фактор этот, как правило, человек или группа людей.

  Развернуть 1 комментарий

@Kirk, мне кажется, концепция дает сбой только потому что остальные члены команды точно такие же дети своей культуры, в которой принято всегда надо искать виноватых. Им просто психологически некомфорно принять это. Прям ломает пиздец. Надо помнить про эту особенность своей культуры и уметь с ней работать, только и всего.

  Развернуть 1 комментарий

@Kirk, как уже сказал Вася, это очень сильно зависит от культуры и менталитета, который напрямую отражается и в модели управления компанией.

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

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

  Развернуть 1 комментарий

@Kirk, кстати, в мысли про "не ищем виноватого не работает в трудностях" ты не учитываешь, что можно не искать виноватого, а искать саму проблему (техническую, в процессах, не важно) и решать проблему. Тебе для этого не надо унижать, обвинять, наказывать людей, твои враги -- не люди, а проблема.

  Развернуть 1 комментарий

@APilosian, но вот что делать, когда конкретный человек является источником проблемы?

Например, есть в команде человек, который пользуется авторитетом, ибо долго в ней сидит и дейсвтительно обладает экспертизой, но его решения объективно говно с точки зрения и бизнеса, и разработки.

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

Тут конечно пахнет и confirmation bias'ом, и предвзятостью, и так далее, но что бы сделали вы на моем месте?

Дисклеймер: я не хочу защитить свою точку зрения, я хочу научиться, можете сразу ткнуть меня в книжку, если есть такая которая хорошо, а главное с примерами пояснит

  Развернуть 1 комментарий

@Kirk, отдельные деструктивные личности и тревожащие тебя моменты -- отличный повод для обсуждения с твоим лидом/менеджером во время 1-1 бесед с ним. Вообще, нормальный менеджер уже сам должен заметить проблему и поболтать с этим челом, или как-то перетасовать команду, чтоб этот человек не был единственным непоколебимым авторитетом или еще как-то.

Я не менеджер, я только с позиции пострадавшего рассуждаю :(

  Развернуть 1 комментарий

@APilosian, к сожалению, я никогда не встречал менеджера, о котором мог бы сказать "этот чувак умеет управлять людьми".

Бывало даже, что менеджер был сам по себе источником конфликтов в команде, и на 1-1 я ему так и говорил, лол.

  Развернуть 1 комментарий

@Kirk, F, что еще сказать. Я человек простой, если какой-то процесс меня долгое время не устраивает и его не хотят/не могут решать, а я не хочу с этим мириться -- я иду в другой проект/компанию, win-win.

  Развернуть 1 комментарий

Ох, хотел написать телегу про идеальные сценарии из головы, но потом у меня случилось то, что на картинке.

В общем, из всех предыдущих опытов которые были, может быть полезных поинтов не так и много:

  • при появлении "развилок" в технических решениях, если принято принимать коллективные решения, создавайте док с описанием проблемы, возможными путями решения, плюсами/минусами, ревью на уровне комментов и созвонов и голосованием с последующим занесением в тот же документ принятого решения, возможными последствиями и прочая. Дает немного исторического контекста для будущей команды при попытках осознать происходящее. К нам в команду не так давно подвезли более формализированные гайды по форматам в виде ADR.
  • если плохое решение принимает единолично один человек и никакие эскалации/обсуждения не помогают, то все, на уровне организации тут или "сдаваться и уходить" или "свыкаться и терпеть" (ну и вариант "включаем подковерные интриги, саботируем и выживаем человека из ума команды"), а на уровне кода пытаться по максимуму абстрагировать необходимые чейнджи так, чтобы потом можно было наименее болезненно это все выкинуть (избегать вендор лок фичей, в любые чужие АПИ ходить только через какую-то прослойку, этс)
  • мелкие тех. решения внутренние для сабкоманды (типа чего-то внутри бекенда или фронтенда), которые обычно на техлиде, если у него нет 100%го ответа или хотя бы "чуйки", при прочих равных возможно стоит обсудить/брейнштормить, и в отсутствии какого-либо вменяемого решения своими силами/по гайдам из интернета, отдавать на откуп того, кто будет имплементить (кто идею предложил => тот ее и имплементит). Возможны правда потом моменты "ах, Лёха, я тебе доверился, а ты все провтыкал", но это уже может быть индикатор других проблем (или техлид не опытен, или команда в целом, или редко происходят ревизии и предвосхищения факапов)

А вообще, делать говно не так страшно (все IT ведь говно), сколько осознанно жить в нем, не пытаясь сделать лучше.
Каждое плохое решение принятое кем-то единолично, является поводом меньше доверять суждениям этого человека в будущем.
Каждое хорошее непринятное решение с норм аргументацией, является поводом больше доверять суждениям автора в будущем.
Даже самые вменяемые решения от архитектов, которые идут вразрез с частью команды, могут понижать общую продуктивность и мораль команды.
Даже самые невменяемые решения, которые вся команда придумала и воодушевленно исполнила, могут быть ок. Ну да, могут быть проблемы в продакшене, но сколько вообще проектов доходит до продакшена? 20-40%?

  Развернуть 1 комментарий
Павел Михаловский, Инженер-программист 30 апреля 2020

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

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

  Развернуть 1 комментарий

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб