пятница, 6 марта 2015 г.

MCDP: Философия управления



Вступление

Военная история и варгейминг - мои хобби. Недавно я прочитал публикации из серии Marine Corps Doctrinal Publications (MCDP). Это набор статей, в которых излагаются основополагающие подходы, принятые на вооружение в Корпусе морской пехоты США. Я не планировал найти что-то за пределами моего хобби, но оказалось, что там затрагиваются такие вопросы, которые интересны мне и с профессиональной точки зрения. Ключевые идеи, заложенные в них, не потрясают новизной или оригинальностью. Тем не менее,  я посчитал эти статьи интересными, так как в них даётся очень простой и конкретный понятийный аппарат, описывающий вопросы управления, планирования и оптимизации операций. Сказать по правде, у меня сложилось такое впечатление, что там простыми и понятными словами описано то, что мучительно открывают и пытаются рассказать миру сторонники agile.

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

Всего я планирую написать три статьи:
  1. Философия управления.
  2. Планирование.
  3. Скорость.

Философия

Война хаотична и непредсказуема, этим она и трудна. Есть две крайних подхода к объяснению ее природы: детерминистический и вероятностный.

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

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

Корпус морской пехоты США твердо придерживается вероятностного взгляда на войну, и это определяет подходы ко всем аспектам его жизнедеятельности.

А что у нас?
В нашей епархии складывается парадоксальная ситуация. Сейчас крайне моден agile, который вторит вероятностному взгляду на вещи. Слова о гибкости, адаптивности и обратной связи буквально переполняют страницы публикаций по теме. А в реальных окопах разработки все происходит как-то по-другому. Последовательность событий выглядит примерно так:

  1. Бизнес без консультации с разработчиками подписывает контракт.
  2. Составляется План, зачастую без количественной оценки. Очень быстро он теряет связь с реальностью и забывается. 
  3. Кодим-фиксим-кодим-фиксим.
  4. Ближе к дедлайну руководство почти случайно видит систему и устраивает разнос, так как всё не так, как надо.
  5. Кодим-фиксим-костылим-кодим-фиксим-костылим, но теперь по выходным.
  6. Кое-как отчитываемся по контракту, с замиранием сердца ожидая, когда клиент первый раз потыкается в систему.
  7. ... PROFIT??? 
И всё это под флагом Scrum`а. А под капотом старый добрый принцип "копаем от забора и до обеда".
"Agile is like teenager sex. Everyone wants to do it, many say they’re doing it, only some actually are, and very few are doing it right."


Управление

Как сделать децентрализованную систему управляемой? Определяющее свойство такой системы - распределение ответственности за принятие решений по всем уровням. Чтобы  дать подчиненным свободу для проявления инициативы, но при этом оставить их действия согласованными, применяется два метода:
  1. "Mission order" -  ставить подчиненному цель, а не давать инструкции, оставляя выбор конкретного метода решения задачи исполнителю приказа.
  2. "Commander's intent" - ясно раскрывать, общую цель и контекст действий (принцип называется ).
В статьях указывается что любой командир должен хорошо понимать цель и задачи как минимум двух командных эшелонов вверх от него. Командир взвода должен быть в курсе целей и планов роты и батальона. Большое внимание уделяется целеполаганию. Поставленные цели должны помогать подчиненным проявлять инициативу, а не мешать этому. Для этого цели должны быть достаточно широкими ("general"), но не туманными ("vague"). Подробнее о целях в следующей статье.

Этот подход требует, чтобы в отношениях между командиром и подчиненным было доверие. Командир должен доверять подчиненному, чтобы дать ему свободу действий. Подчиненный должен доверять командиру, чтобы не бояться проявлять инициативу. Командир не должен допускать перфекционизма ("zero defect mentality") у своих подчиненных, так как боязнь совершить ошибку сковывать инициативу.

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



А что у нас?

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

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

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

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


Заключение

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

Впрочем, не везде всё так плохо:

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

Есть о чем задуматься. В следующей статье я хочу осветить подход КМП США к планированию.

1 комментарий:

  1. На склонность российского софтварного менеджмента мыслить инструкциями накладывается характерный для России PDI (power distance index), который приводит вот, например, к такому: https://pbs.twimg.com/media/BfNyZ5DIcAAGlwp.jpg

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

    Офигенно, при просмотре Блоггер теряет комменты. Ладно я параноик и бекаплю текст :)

    ОтветитьУдалить