Фёдор Борщёв

Заметки с тегом «Проекты»

Завершённые проекты — которые я сделал самостоятельно или с командой в «Феде и Самате»
Новее

Небольшие доработочки

Небольшие доработочки

«А давайте ограничим длину обзора до 140 символов? Ну, вдруг мы захотим их в СМС рассылать, да и вообще нечего перегружать людей длинными обзорами. Это же 5 минут всего?».

Нет.

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

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

Что будет, если пользователь отправил обзор длиннее 140 символов? Просто обрежем, или покажем сообщение об ошибке? Если сообщение об ошибке, то где? Что напишем в сообщении? Нужен ли копирайтер? Сможем ли мы доступно объяснить пользователям, что нельзя отправлять больше 140 символов? Есть ли у нас в гайдах стили для таких ошибок? Нет? А кто нарисует?

Ворд целиком состоит из небольших доработочек
Ворд целиком состоит из небольших доработочек

Еще вопросы

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

Есть ли свободные фронтендеры? Должно ли сообщение об ошибке повторять текст, который мы написали для сервера? Если нет, то кто напишет новое сообщение? Как нам сделать, чтобы в будущем любое изменение к «правилу 140» внедрялось одновременно и на сервере, и на клиенте?

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

Счетчик символов

Кто запилит счетчик? Кто проверит работоспособность на IE9 (вдруг мы — сайт банка)? Где мы его расположим? Как он будет выглядеть? Есть ли свободные дизайнеры?

Наверное внешний вид должен меняться по мере приближения к 140 символам. Ой, а что мы будем делать, когда пользователь упрется в лимит? Перестанем принимать ввод? А что делать, если пользователь вставит длинную портянку из буфера обмена? Разрешить обрезать текст или выдать ошибку?

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

Выводы

  • У качественных продуктов не бывает небольших доработок.
  • Объем работ прирастает очень быстро. То, что при планировании кажется 5 минутами, моментально превращается в неделю.
  • Пропихнуть фичу в следующий спринт — легко. Написать — сложно. Поддерживать всю жизнь — заебешься.

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

Как называть новый срок, если проебал старый

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

Когда я опаздываю, я волнуюсь. А когда я взволнован, я неверно воспринимаю реальность — переоцениваю свои силы и называю заниженные сроки. В новые сроки невозможно уложиться, и все повторяется по кругу — доверие разваливается вместе с проектом.

Как называть новый срок, если проебал старый

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

Ошибиться со сроком — не страшно. Страшно — ошибиться второй раз: тебе перестанут доверять.

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

Хуйня Настоящая причина
Я неверно оценил свои силы Я долго разбирался с новым плагином для Ангуляра
Изменились условия задачи Я не учел, что потребуется переверстывать шапку
Я неверно понял задачу Я не обсудил задачу с постановщиком

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

Длинные ТЗ не работают

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

От этих монументальных документов никто потом не отклонялся — в плановой экономике нет конкуренции, можно выпускать одни и те же жигули хоть 30 лет подряд.

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

Не заморачивайтесь на этапе проектирования — все равно в реальной жизни все пойдёт не так, и ваше ТЗ станет никому не нужным.

Чтобы запустить интернет-магазин, не обязательно продумывать 20 состояний корзины. Разбейте проект на короткие итерации и концентрируйте усилия только на текущей:

  • Концептуальная страница-заглушка с телефоном
  • Страница с контактами и десятком самых продаваемых товаров
  • Каталог товаров, «купить в один клик»
  • Корзина
  • Синхронизация с црм, 1с

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

Как ставить результативные задачи

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

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

Дизайнерам тяжелее, чем стоматологам. Вместо желаемого результата им часто присылают неумело описанный процесс: «хочу сверху фоточку чайника, ниже список цветов и объемов, потом неяркий блок с дополнительными товарами и синюю кнопку «купить» (чтобы в первый экран влезала!)».

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

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

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

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

Постановке результативных задач стоит поучиться у Бюро Горбунова:

  • Совет, как писать ТЗ на сайт.
  • Настоящая задача для «Додо пиццы».
  • Настоящая задача для «Регуляра».

Проектный план и диаграмма Ганта

Диаграмма Ганта — популярный инструмент планирования: на ней основан богомерзкий МС-Проджект, она используется в методе критической цепи и ПМБоКе. Если вы запланируете простейшее действие, скажем поклеить дома обои, и нанесете на календарь последовательность операций (сходить в магазин, вынести мебель), то у вас получится диаграмма Ганта.

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

Диаграмма Ганта, слева этапы, справа — календарное представление

Внешний вид диаграммы Ганта, слева этапы, справа — календарное представление

Стратегический план нельзя путать с проектным. Проектный план — декомпозирован. Он говорит участникам, что сделать прямо сейчас, чтобы приблизить результат. Посмотрите разницу:

Диаграмма Ганта Проектный план
Мы находимся на восьмом дне этапа прикрутки макетов. Этап закончится через 7 дней Завтра ты получишь от дизайнера макет, сдача в четверг, значит первый подход нужно закончить во вторник
В пятницу заканчиваем бета-тестирование Закрой до пятницы 20 оставшихся багов
Через день должно закончиться согласование Позвони клиенту и поинтересуйся, почему он уже два дня молчит

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

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

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

Старее