10 мар. 2009 г.

Как быть программным менеджером

Хороший program manager — один из ингридиентов секретной формулы для создания действительно великого программного обеспечения. Вероятно, в вашей команде его нет. Потому что его нет в большинстве команд.

Чтобы работать program manager-ом не требуется быть ветераном с 14 годами опыта в программировании. На самом деле, с таким опытом вы знаете чересчур много, чтобы стать хорошим адвокатом для пользовательских запросов.

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



Program manager:
    1. проектирует UIs
    2. пишет функциональные спецификации
    3. координирует команды
    4. служит адвокатом пользователей и
    5. носит "бананы".

Хорошее правило: нужен один program manager для каждой четвёрки программистов. {...}

Моя работа (в качестве program manager) была не в том, чтобы решать проблемы, но в том, чтобы постичь, что нужно пользователям, и убедиться, что программисты нашли решение этих проблем.

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

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

Хороший program manager приходит со своими собственными идеями по поводу того, как должен работать пользовательский интерфейс, и эти идеи могут быть лучше, а могут быть и хуже, чем идеи разработчика. И тогда начинаются долгие споры. Обычно program manager хочет чего-нибудь простенького и лёгкого для понимания конечным пользователем. С использованием телепатии, 30-дюймового экрана, который тем не менее должен помещаться в кармане пользователя. В то время как разработчик стремится к чему-то, что достаточно просто закодировать, с интерфейсом командной строки ("не понимаю, что такого анюзибл в командной строке?!") и связыванием в стиле Python.

Для того, чтобы споры проводились вежливо и основывались на фактах, абсолютно необходимо, чтобы program manager-ы и разработчики были равны. Если разработчики должны отчитываться перед program manager-ом, то в какой-то момент дискуссии program manager-у она надоест и он просто скажет: "OK, хорош болтать. Сейчас мы сделаем это так, как я предложил".

Быть эффективным в роли program manager-а означает: (a) быть правым, и (b) заслужить уважение программистов, чтобы они могли признать вашу правоту.
Как заслужить это уважение?
Этому может помочь то обстоятельство, что будучи program manager-ом, вы еще и неплохо умеете кодировать сами. Да, это нечестно. От program manager-ов не ждут, что они будут писать код. Просто программисты скорее зауважают другого программиста, чем не-программиста, вне зависимости от того, насколько умны они сами.

Другой способ заслужить уважение команды программистов заключется в том, чтобы выказать интеллект, открытое мышление и справедливость в дискуссиях. Если program manager говорит тупые вещи, программисты начинают держать его за клоуна. Если program manager начинает лично или эмоционально относиться к тому, как делаются некоторые вещи, вплоть до того, что его мнение становится необсуждаемым, он рискует потерять доверие команды. Обе стороны, но program manager в особенности, должны избегать эмоций во время дискуссий и быть готовыми рассмотреть новые данные и изменить своё мнение, когда факты этого требуют. Наконец, если program manager замечен в политических играх, в приватных беседах с шефом или в попытках использовать прием "разделяй и властвуй", чтобы выиграть спор, вместо того, чтобы спорить по существу, такой program manager теряет существенную часть доверия программистов.

Комментариев нет:

Отправить комментарий