Android-разработчик Коди Энджел написал о том, почему иногда нужно отложить релиз и как отсрочки могут помочь вашей работе в будущем.
Я профессионально работаю в технологиях уже почти шесть лет. Первые два года я обслуживал оборудование, поддерживал компьютерные лаборатории, решал проблемы по телефону, а также устранял поломки компьютеров и принтеров. В 2013 я начал с должности full stack разработчика, работая с PHP/MySQL/JavaScript, затем я работал с C# и MSSQL, а сегодня я создаю мобильные приложения для Android. За всю свою карьеру я узнал, что отсрочки случаются и не всегда они к худшему.
Несколько недель назад я увидел пост на LinkedIn, который совпал с моим мнением.
Иногда задержки рейса происходят к лучшему. Я не против подождать, когда с самолетом что-то не так. Легко расстроиться, когда авиакомпания задерживает рейс, но я был рад, что United обнаружила проблему до взлета.
Оказалось, что их система связи не работала, поэтому самолет пришлось вернуть в терминал. В то же время у моего бизнес-партнера на другом рейсе случился небольшой пожар в двигателе.
Я благодарен, что авиакомпания обнаружила проблему до того, как мы поднялись в воздух. Это был долгий день, но я счастлив, что мы оба добрались в Нью-Йорк.
Мне нравится эта история, потому что тот же подход можно применить к программному обеспечению. Задержки всегда неудобны, но они могут быть лучшим маршрутом к цели.
Не торопитесь, чтобы сделать все верно
В той истории с LinkedIn самолет должен был улететь в конкретное время, но был задержан из-за непредвиденных обстоятельств. Эта отсрочка предотвратила возможную катастрофу, и все добрались до пункта назначения. Вы можете нарушить обещание, если вы используете это время, чтобы сделать все правильно.
Давайте взглянем на индустрию видеоигр. Выход The Legend of Zelda: Breath of the Wild был назначен на 2015 год. В итоге игра вышла 3 марта 2017 и получила безумное количество отзывов. Были ли клиенты расстроены тем, что игра задержалась на 2 года? Возможно. Как человек, который купил Nintendo Switch ради Zelda, хочу сказать, что отсрочка того стоила.
Уведомите клиентов о задержке как можно скорее
Неверно было бы сказать пассажирам о задержке, когда они уже сидят час в самолете и ждут взлета. Если вы будете ждать до последнего момента, чтобы рассказать клиентам об отсрочке, вы разозлите людей.
С другой стороны, если вы понимаете, что в самолете есть проблема, и вы сообщаете об этом людям, когда они ещё ждут посадку, вы получите немного менее расстроенных пассажиров. Они находятся в полукомфортной среде, когда ещё могут спланировать альтернативные варианты и попытаться исправить свои планы. Если вы сообщаете своим клиентам о срыве дедлайна, они не будут довольны, но, по крайней мере, они будут не так злы, как могли бы быть.
Учитесь на своем опыте
Задержка позволяет вам понять, что что-то не так. Есть ряд вещей, которые могут вызвать задержку: слишком много ошибок, неточная оценка, нехватка персонала или слишком много обещаний. Если вы обнаружите, что задерживаете несколько функций по одной и той же причине, вы не учитесь на своем опыте.
Если задержка была из-за слишком большого количества ошибок, то выясните, почему они возникли. Инженерам не хватает опыта или правильного руководства? Вы слишком их торопите? Являются ли требования достаточно конкретными или существует слишком много места для интерпретации? Это три возможные причины возникновения ошибок, есть много других причин, но я бы хотел, чтобы эта статья была прочитана в течение 10 минут.
Была ли задержка вызвана неточной оценкой? Если ваша команда практикует Scrum, то вы можете найти дополнительное время, чтобы сделать покер планирование для оценки истории, это будет стоить того времени. В одном моем проекте, который пришлось отложить, наша команда только начинала, и мы не смогли дать точные оценки. В течение нескольких месяцев мы тратили время на то, чтобы убедиться, что все согласны с тем, что работы оценивались на 1, 2, 3, 5 или 8 пунктов, и мы заметили, что наши оценки были довольно близки. Моя команда постоянно получала 50 очков за спринт. Число произвольно, но главное — постоянство. Из того, что я видел, неточная оценка, как правило, объясняется тем, что не было уделено время на понимание того, как оценивать проект в самом начале — уделяйте этому внимание на раннем этапе и это принесет свои плоды в будущем.
Более детально я хотел бы остановиться на излишних обещаниях. Они могут случаться по причине того, что инженеры думают, что слишком большое количество обязанностей полезно для них (сначала да, но не когда ты работаешь по 80 часов в неделю, чтобы выполнить их). Хотя, по моему опыту, много обещаний клиенту дают в большей степени продакт-менеджеры, отдел продаж и менеджеры. В разработке всегда лучше обещать меньше, но делать больше. Так клиент получает то, что хотел, и не расстраивается при отсрочке какой-то функции.
Не давайте конкретных обещаний
Задержки происходят, когда вы или кто-то другой даете обещание сделать что-то в конкретное время. Отсрочки дедлайнов происходят, когда кто-то установил срок без точной оценки, и вы должны отложить запуск (или выпустить полуготовую функцию с багами).
Самый идеальный путь в 2017 — частые релизы маленьких функций. Гораздо проще выпускать серию функций за квартал, чем одну функцию раз в три месяца. Пример такой работы вы можете видеть сегодня в играх Steam Greenlight. Greenlight позволяет клиентам покупать игру на альфа или бета-стадии и тестировать её, пока разработчики продолжают работать над функциями. Так они могут получать отзывы и предложения от пользователей и планировать функции на будущее.
И если вы не делаете конкретных обещаний, вам не нужно ничего откладывать. Если функция будет закончена в следующем квартале, это не станет концом света, потому что у ваших пользователей уже будут небольшие части этой функции, которые вы уже сделали.
Хорошее случается с теми, кто ждет
Москва не сразу строилась. Нью-Йорк не решил проблему с оружием за одну ночь. Ничто не создается за вечер и иногда занимает гораздо больше времени, чем вы ожидали. Немного дополнительного времени для проверки окупит себя в будущем. Это может привести к отсрочке релиза, но если релизы происходят достаточно часто, это не станет проблемой. Когда ваш цикл релизов происходит по модели waterfall, тогда задержка выхода функции может стать серьезной проблемой, поэтому, если проблему можно разбить на меньшие части, стоит это сделать.
Примите отсрочки
Задержка — возможность для обучения, которая поможет вам в будущем. Важно понять, почему она произошла, и постараться это предотвратить в будущем. Она, возможно, случится снова, но ущерб будет меньшим. Поймите, что отсрочки происходят, когда вы не можете распределить свое время, но уже пообещали конкретную функцию клиентам. Вы можете получить негативные отзывы от нескольких расстроенных людей, но они будут рады пользоваться хорошо работающим продуктом.