Решение Проблем: 10 Правил Менеджера

Рассмотрим следующую ситуацию: вы руководитель проекта и в вашем проекте возникла проблема.

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



Решение проблем: 10 правил менеджера

Все работает! Существует распространенное мнение, что проблемы решают исполнители, а менеджеры только ходить вокруг и мешать .

Однако что произойдет, если на проекте нет менеджера? Представим ситуацию: в поддержку приходит гневное письмо: «Я нажал кнопку, и произошла 500-я ошибка!» Причем приходит не одно письмо, то есть проблема массовая.

Кому я должен передать ошибку? Допустим, поддержка предполагает, что проблема возникла на стороне клиента, и передает ошибку программисту JavaScript. Программист JavaScript смотрит на описание и говорит: «Скорее всего, проблема на сервере.

Я не имею к этому никакого отношения».

Сотрудник техподдержки кивает и идет к серверному программисту.

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

к админу Админ смотрит загрузку процессора, загрузку диска, свободное место, логи, но тоже ничего криминального не находит. С этого момента проблема, возникшая на проекте, похоже, «ни на чьей стороне»: никто не считает себя ответственным и не считает нужным взять на себя ее решение.

И каждого можно понять: у каждого свои задачи, план развития, да и к тому же нарезать новые фичи гораздо интереснее, чем иметь дело с загадочной пятисоткой, которая появляется, конечно же, не по вашей вине.

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

Конечно, это не единственно возможный вариант развития сценария.

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

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

Итак, как изменится описанная выше ситуация, если предположить, что на проекте все еще есть ПМ? Правило №1: Каждая проблема становится вашей Первым делом мы нашли владельца проблемы: это, собственно, PM. Все технари могут быть уверены, что проблема не их, но руководитель проекта должен считать любую проблему пользователя своей личной проблемой.

Правило №2: Пользователи никогда не лгут Это важно помнить: каким бы безумным ни выглядел доклад, особенно если он не единственный в своем роде, скорее всего, в нем есть правда.

Правило №3: нельзя доверять никому.

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

Но мы помним, что пользователи не врут! Правило №4: решайте проблему сверху После того, как мы выяснили, что проблема есть и она наша, неплохо было бы приступить к ее решению.

Всегда следует начинать сверху, то есть с того места, где появляется симптом.

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

Отсюда следует пятое правило ПМА.

Правило №5: устраняем не симптом, а причину В рассматриваемой ситуации, чтобы докопаться до причины, менеджер идет к верстальщику и выясняет, в каких случаях он отображает 500-ю ошибку на UI. Что на это ответит верстальщик? «Когда я получил неправильный ответ от сервера».

— «Хорошо, какой ответ ты получил от сервераЭ» - спрашивает ПМ.

«Статус 500», — отвечает верстальщик.

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

Правило №6: принцип наибольшей лени Поскольку руководитель проекта должен действовать по принципу наибольшей лени, в этот момент нужно довериться клиентскому программисту и двигаться дальше.

Правило №7: проблема в ответственности премьер-министра Как может действовать на этом этапе условно неопытный ПМ? Попробуйте отправить верстальщика к серверному программисту в надежде, что «они как-то договорятся друг с другом».

Что происходит, когда разработчики предоставлены сами себе? Верстальщик приходит к серверному программисту, сообщает о 500-й ошибке и получает ответ: «Ну вот и вся база».

Верстальщик соглашается: «Ну да, это есть в базе».

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

После этого проходит день, два, неделя.

Все это время менеджер твердо уверен, что проблема устранена.

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

В этот момент наш условный ПМ думает: «Как так? Но мы всё узнали!» Так он приходит к седьмому правилу менеджера проекта: я решаю проблемы, другие люди не обязаны их решать.

Хорошо, если они решатся, но это не обязательно.

Поэтому хороший руководитель проекта в такой ситуации должен пойти к самому программисту.

Правило №8: Записывайте каждый шаг Программист ему, естественно, скажет, что причин 500-й ошибки очень много, а доступа к производственным логам у него нет, поэтому разобраться в чем дело он не в состоянии.

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

Отсутствие у программиста доступа к производственным журналам — решаемая проблема.

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

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

Рассмотрим самый жестко запрограммированный вариант: менеджер в проекте новичок, импорт логов никто не настраивал, а данные с продакшена доступны только в продакшене.

Выход один: зайти к админам и попросить логи.

Предположим, что у нас все не так уж и плохо, и логи у нас еще есть; однако лаконично говорят: «500» — и ни слова больше.

Правило №9: не забывайте о главном Следующая ошибка, которую может совершить менеджер, — это сказать программисту: «Хорошо.

Займитесь логированием» и забудьте о проблеме.

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

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

После этого все возможные дела должны быть тщательно подшиты.

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

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

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

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

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

Правило № 10: Убедитесь, что ваши симптомы исчезли После того как вероятная причина ошибки определена, менеджер делегирует ее решение ответственному за эту часть системы лицу.

Теперь самое главное – добиться исчезновения симптомов.

Есть только один способ проверить это — спросить у автора отчета об ошибках, все ли в порядке.

Только после этого проблему можно считать решенной.

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

Такие случаи случаются, но, конечно, в этом нет необходимости.

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

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

И он действует соответственно.

Не только технари Еще один важный вывод из моей истории: руководитель проекта не обязательно должен быть техником.

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

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

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

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

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

Об этом я постараюсь рассказать в следующих статьях.

Денис Аникин, технический директор Mail.Ru Post Теги: #разработка сайта #mail.ru #менеджмент #управление проектами

Вместе с данным постом часто просматривают: