Владимир Бычко об управлении проектами

пиэм разъясняет, предостерегает, рекомендует

Месяц: Сентябрь, 2014

Об управлении женским коллективом

Женский коллектив

Управление женским коллективом имеет свои особенности. Женщины работают не хуже мужчин (а некоторые занятия даются им значительно лучше), но они зачастую слишком эмоциональны. Замечание по рабочему вопросу может вывести сотрудницу из равновесия на продолжительный период. Они никогда не забывают мелких обид, зачастую формируют коалиции, бойкотируют неугодных, могут не выполнить указание руководителя, не объясняя причин. Кроме того, очень часто семья для сотрудницы приоритетнее работы. Не учитывать этот факт — потерять лояльность, а в перспективе получить ненужную текучку кадров.
 
Есть несколько правил, соблюдение которых позволяет держать женский коллектив в стабильном состоянии.
 

Не реагировать на жалобы сразу.

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

Стандартизировать процессы.

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

Убеждать по одной.

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

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

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

О фильтре в каталоге

Кейс с нужностью ограничений хорошо просматривается на примере организации каталогов товаров.
 
 
Хороший пример: Каталог магазина одежды 6pm.com Рассмотрим фильтр в разделе одежды для мужчин:

Одежда для мужчин

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

Данный подход к фильтрации преследует ещё одну скрытую цель. Сведение к нулю вероятности получения пользователем пустой выборки. Ситуация, когда пользователь вводит группу параметров, жмёт «Найти» или «Отфильтровать», а на выходе получает пустую выборку совершенно недопустима — две-три пустые выборки и он уходит в другой магазин. При помощи данного фильтра получить пустую выборку невозможно — перечень параметров также динамически меняется в зависимости от уже выбранных пунктов. Супер-пупер. Делали долго, дорого, расчудесно.
 
 
Чуть худший пример: Каталог магазина info39.ru, раздел планшетных компьютеров:

Планшетные компьютеры

На динамическую выборку у создателей денег не хватило, но кое-что в плане минимизации пустых выборок сделано. Обратите внимание, я хочу найти все планшеты стоимостью от 20773 до 29773 рублей марки Asus. Таких планшетов в магазине нет. Есть планшеты указанного ценового диапазона, но асусовских среди них нет. Фильтр честно предупреждает — найдено ноль элементов. Тем не менее, нажать на кнопку «Применить» можно. В результате будет пустая выборка. Ну, не совсем пустая, а с заглушкой:
Заглушка
 
 
Плохой пример: Каталог магазина copicomp.ru, раздел беспроводного оборудования:
Беспроводное оборудование
В этом фильтре плохо всё. На самом деле, в этом разделе нет товаров в выбранном диапазоне, но пользователь может об этом узнать только после нажатия на кнопку «выбрать»:

Заглушка

Надпись «В этой категории нет товаров». Ничего подобного, они есть, нет лишь товаров данного ценового диапазона. «Костыльным» решением было бы предложить пользователю наиболее близкие по цене товары, правильным — не дать получить пустую выборку.  Отсутствие динамической фильтрации также не делает чести данному каталогу.

Также обратите внимание на значение по-умолчению в поле «Сортировка». Никакой сортировки «По-умолчанию» не существует. Товары либо отсортированы по определённому критерию, либо расположены в случайном порядке. Было бы более правильно отсортировать товары по цене, от дорогих к дешёвым.

Наконец, «пейджинг». Можно выбрать количество товаров на странице. Корректное решение — подгрузка товаров по мере прокрутки.

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

Два друга

Два друга

Осажденный изголодавшийся Париж (осада Парижа пруссаками началась 16 сентября 1870 года. В январе 1871 года, когда происходит действие новеллы, пруссаки начали артиллерийский обстрел Парижа) был при последнем издыхании. На крышах почти не осталось воробьев, в сточных канавах — отбросов. Люди ели все подряд, без разбора.

Слушать

Об отсутствиях

I need to escape

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

Больничные.

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

Почему бы не купить витамины? Они не так дорого стоят. Купить и поставить баночки в кабинетах. Ещё можно устроить добровольную вакцинацию, это тоже не очень дорого (по сравнению с потерями от постоянного отсутствия сотрудников). Да, на это деньги нужны, но прививки работают.
 

Отгулы.

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

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

Отлучки в рабочее время.

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

Удаление раскладки «Английская США» на Mac OSx

removing english usa

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

layout-mac@2x

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

В MacOSx всё несколько сложнее. Дело в том, что при вводе любого системного пароля раскладка автоматом переключается на «Английскую США» (пароль можно задать только в этой раскладке). Для большинства пользователей это суперудобно — не нужно путаться с раскладкой как в винде. Мне же это создало определённые проблемы. Дело в том, что из-за этой фичи, раскладку «Английская США» нельзя снести штатными средствами. То есть, после установки типографских раскладок, у меня их стало три — кириллица, латиница, плюс Английская США.

Идём дальше. Я использую Punto Switcher для автоматического переключения раскладок. На маке можно задать только две раскладки, между которыми можно переключаться:

Настройки пунто свитчера

Идём дальше. Ещё со времён винды я привык переключать раскладку нажатием на CapsLock (по основному назначению она используется редко). На винде можно это сделать простой настройкой пунто свитчера, на маке всё сложнее и делается в два приёма:

1. При помощи утилиты Seil переопределяем CapsLock, вешая на него какую-нибудь отсутствующую на клавиатуре клавишу, например, F19:

seil

2. В настройках клавиатуры вешаем на F19 «Выбрать предыдущий источник ввода»:

input

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

Проблемы начинаются при попытке использовать виртуальную машину Parallels. При переключении фокуса на окно Parallels, маковская раскладка автоматом переключается на «Английскую США». Для того, чтобы схема переключения раскладок заработала обратно, нужно руками сначала выбрать английскую типографскую, затем русскую типографскую. И так после каждого переноса фокуса на окно Parallels. Похоже, что особенность яблочных продуктов считать себя умнее пользователя в этот раз полностью провалилась.

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

bash <(curl -fsSkL raw.github.com/bolknote/shellgames/master/us_layout_remover.sh)

К сожалению, у меня этот метод не сработал.

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

Макось — очень удобная, быстрая, красивая система, но её отдельные особенности порой вымораживают.

О заимствовании

Make a breakthrough or die

Беда множества стартапов в том, что ещё на этапе постановки целей автор ориентируется «на сейчас» (а в худшем случае — «на вчера»). Выпускаемый продукт, естественно, оказывается заранее устаревшим.

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

— Владимир, разработай, пожалуйста, такой-то элемент для приложения.
— Вот, пожалуйста, четыре варианта.
— А какие продукты конкурентов ты проанализировал, прежде, чем это придумать? Может быть, стоит посмотреть, как это реализовано у них? Понимаешь, если твиттером пользуется стотыщмиллиардов людей, может быть, они привыкли к твиттерной версии? Или ещё какой-нибудь? Иди-ка, проведи исследование конкурентов.

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

Можете себе представить Джобса, исповедующего оглядку на конкурентов? Да он никогда бы не решился рискнуть выпустить телефон без кнопок. Это же рискованно, все привыкли к смартфонам с клавишами.

«В-третьих, телефон без кнопок — говно, потому что за рулем уже номер на ощупь не наберешь. И эсэмэску не отправишь нормально. Остается надеяться, что производители типа «Гриффина» или «Белкина» уже разрабатывают подключаемую клавиатуру.

В целом ничего особенно нового «Эппл» не представил, кроме скорости и хорошего интерфейса. Функции «Айфона» (включая тачскрин) многократно перекрываются предложениями других производителей (которым не хватает только скорости и нормального интерфейса).»

Первое впечатление Лебедева об айфоне.

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

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

Об анализе успехов

Post hoc non propter hoc

Надпись на «Post hoc non propter hoc» на картинке переводится с латыни как: «После не означает вследствие». Общеизвестно, что причины провалов нужно тщательно исследовать, как бы ни был провал неприятен, а причины его глупы. А вот причины успехов — нет.

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

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

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

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

Об организации тестирования

qa

У прочитавших пост о группе управлении разработкой закономерно возникнет вопрос — почему я не упомянул о команде тестировщиков и QA лидере?

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

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

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

Возможны три подхода к организации группы тестирования:

  1. Выделенный департамент тестирования, обслуживающий все продукты.
  2. Тестировщики как части универсальных кросспродуктовых команд.
  3. Тестировщики как части микрокоманд.

Выделенный департамент тестирования.

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

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

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

Тестировщики как части универсальных кросспродуктовых команд.

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

Тестировщики как части микрокоманд.

Почти идеальный подход. При старте доработки формируется микрокоманда из аналитика, нескольких разработчиков и тестировщика. Микрокоманда ведёт производство на всех этапах, от сбора требований, до финальной сдачи заказчику (вливания в релизный билд в случае продуктовой разработки). Тестировщик микрокоманды находится в курсе требований с самого начала и готовит план тестирования с момента передачи требований разработчику, а не по готовности доработки, что позволяет тестировать комфортно, оперативно и эффективно.

О группе управления разработкой

team

Для того, чтобы руководить разработкой продукта, нужно уверенно держать в руках три «руля»:

  1. Административное руководство.
  2. Управление изменениями.
  3. Техническое и архитектурное управление.

 
 
Рассмотрим все три «руля» более подробно.

team

Административное руководство.

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

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

Организация — процессы, напрямую не связанные с производством, но влияющие на него. Инфраструктура (рабочие места, обеды, кофе и проч.) и обеспечение коммуникаций.

Кадры — рекрутинг сотрудников, мотивация.

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

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

team

Управление изменениями.

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

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

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

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

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

team

Техническое и архитектурное управление.

Сюда входит группа работ по обеспечению производства. А именно:

Архитектурное управление — обеспечение технической целостности и непротиворечивости работы модулей системы, структуры базы данных и проч.

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

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

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

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

Консультации аналитиков, выработка вариантов реализации.

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

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

Человек, полностью ответственный за продукт — менеджер продукта. Безусловно, в принятии решений должны участвовать все три менеджера, но старшим руководителем, обладающим право вето и последним словом является именно менеджер продукта. Главный разработчик и главный аналитик стоят на одном уровне и руководят группой разработчиков и группой аналитиков соответственно.