Русский
Русский
English
Статистика
Реклама

Продуктовая разработка

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

02.10.2020 12:06:25 | Автор: admin

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

Возможности человеческой памяти ограничены

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

У человека два вида памяти.

Первый рабочая память: кратковременное хранилище небольшого количества информации.

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

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

Рабочая память малоемкая и неустойчивая. Специалист по когнитивной психологии Джордж Миллер в 1956г. в книге о волшебном числе 7 предположил, что средний человек может удерживать в краткосрочной памяти около 7объектов (плюс-минус 2).

Если дизайн разработан таким образом, что пользователю в рабочей памяти требуется в течение более чем 7секунд держать более 3объектов или 1объект в течение более чем 70секунд, то будут появляться ошибки: информация в рабочей памяти очень легко теряется.

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

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

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

  • Определение веса эмоциями. Бывало ли такое, что вы увидели кошку во дворе и сразу же вспомнили, что у вас была похожая в детстве? У человека, особенно взрослого, сильные воспоминания часто эмоционально привязаны к объекту увидев такой объект, вы наверняка вспомните связанные с ним события.

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

Факторы, влияющие на работу памяти

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

Перечислю некоторые факторы, которые влияют на рабочую память:

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

На этих рисунках одинаковое количество букв. Какой из них запомнить легче: левый или правый?На этих рисунках одинаковое количество букв. Какой из них запомнить легче: левый или правый?
  • Сходство и путаница. Если объекты похожи, их можно легко объединить в одну порцию.

Какое изображение запомнить легче: левое или правое?Какое изображение запомнить легче: левое или правое?
  • Повторение. Повторение объектов может приводить к ошибочному воспоминанию в рабочей памяти. Например, если нужно запомнить число 5774, вы можете запомнить его как 5744.

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

  • Прерывание. Прерывание мешает вносить информацию в рабочую память особенно когда внимание нарушается во время работы с информацией.

Факторы, влияющие на получение информации из долговременной памяти:

  • Сила объектов в долговременной памяти. Сила определяется востребованностью и актуальностью информации. Востребованность это то, как часто информация используется или извлекается из долговременной памяти. Актуальность определяется тем, как давно вы извлекали эту информацию из долговременной памяти последний раз.

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

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

Подходы в дизайне интерфейса, облегчающие работу памяти

Мы уже выяснили, что рабочая память хранит мало и недолго, а у долговременной памяти много слабых мест и на первых этапах запоминания она ненадежна. Дизайнер должен помочь пользователю запомнить важную информацию до момента, когда она понадобится. Нельзя требовать запоминать состояние системы или выполненное действие. Вот некоторые подходы, которые помогут снизить нагрузку на рабочую память пользователей (Lee, Wickens, Liu, Boyle, 2017; подробнее в книге):

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

Примеры отображения предыдущих поисковых запросов в Google Картах и Pinterest.Примеры отображения предыдущих поисковых запросов в Google Картах и Pinterest.
  • Визуальное эхо. Пользователь с легкостью может повторно просмотреть визуальный материал. Поэтому, давая звуковой контент, необходимо также делать визуальное эхо, передающее то же сообщение: визуальный материал можно легко повторно просмотреть, а звуковой нет.

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

Автор Vishnu Prasad, источник https://dribbble.com/shots/9866905-Final-steps-in-OnboardingАвтор Vishnu Prasad, источник https://dribbble.com/shots/9866905-Final-steps-in-Onboarding
  • Буквы вместо цифр. Обычно буквы человеку запомнить проще, чем цифры. Поэтому, например, рабочий номер телефона лучше записывать не как 467-968-2378, а как 467-YOU-BEST.

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

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

Чтобы дизайн помогал работе долговременной памяти, нужно в первую очередь избегать разработки систем, которые повышают нагрузку на память этого вида. Для этого можно применять следующие подходы (Lee, Wickens, Liu, Boyle, 2017; подробнее в книге) как вы увидите, именно так работают многие интерактивные системы.

  • Поощряйте пользователей использовать информацию регулярно. Частое воспоминание повышает силу информации в долговременной памяти.

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

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

Примеры из Google и Instagram.Примеры из Google и Instagram.
  • Развивайте полезные привычки. Разрабатывая интерфейс, мы учитываем его контекст, повторяемое использование функций и вознаграждаем пользователей, с тем чтобы закрепить нужное поведение и пресечь нежелательное.

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

  • Единообразная работа в рамках системы и с другими приложениями. Чем единообразнее работа разных функций и действия с объектами разных типов, тем меньше пользователю нужно запоминать. В интерфейсе со множеством исключений и низким уровнем единообразия между функциями и объектами различных типов пользователю приходится хранить в долговременной памяти особенности каждой функции и каждого типа объектов, а также правильный контекст использования. Необходимость запоминания большого количества информации затрудняет изучение таких интерфейсов. (Джонсон, 2014; подробнее в книге.)

Дизайн должен соответствовать знакомой пользователю ментальной и концептуальной модели. Простой пример: круглые переключатели позволяют выбрать один вариант, флажки в квадрате несколько. Источник https://www.justinmind.com/blog/mental-models/

Литература:

John D Lee, Christopher D. Wickens, Yili Liu, Linda Ng Boyle (2017). Designing for People: An Introduction to Human Factors Engineering 3rd Edition.

Джефф Джонсон (2014). Умный дизайн. Простые приемы разработки пользовательских интерфейсов.

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимаетсялокализацией игрприложений и сайтовна 70 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаемрекламные и обучающие видеоролики для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее..

Из песочницы Почему мы занимаемся аутстаффингом IT-персонала и не стыдимся этого

16.10.2020 12:13:24 | Автор: admin
Привет! Мы Holyweb, веб-разработчики с инженерным подходом, адепты JS, и мы любим аутстаффинг. А вы?



Аутстаффинг это тема, от которой у многих коллег по рынку сразу начинает пригорать. Считается, что сдача персонала в аренду это нечто недостойное, чем занимаются не от хорошей жизни. По большинству сайтов веб-разработчиков нельзя понять, работают они по такой модели или нет. Но даже если и работают, либо говорят об этом завуалированно, либо маскируют за какими-то другими названиями усиление, масштабирование команды, time & material и т.д.

Судите сами: на Хабре мы насчитали 3к материалов про аутсорсинг, заказную разработку, продуктовую разработку и тд, и меньше 50 публикаций про аустаффинг. Как это вообще возможно?

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

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

  • Аутсорсинг, аутстаффинг а в чем вообще разница?
  • С какими клиентами есть смысл работать по аутстафф-модели?
  • Почему аутстафф нравится нам больше, чем аутсорс?
  • Почему клиенту аутстафф приятней, чем аутсорс или инхаус?
  • В каком случае веб-студии / продакшну лучше не пытаться в аутстафф?

Поехали!

Аутстаффинг, аутсорсинг а в чем вообще разница?


Прежде всего, разберемся с матчастью.

Аутстаффинг это


  • Человек / команда людей, которые находятся в штате веб-продакшна, но их часы полностью выкуплены компанией-заказчиком. Чаще всего это full time работа на одном проекте. Реже part time, в таком случае проектов может быть два.
  • Заказчик обычно выбирает одного разработчика или целую команду, проводит собеседование, а то и не одно. Сюда же тестовые задания и даже лайвкодинг. В общем, все круги жесткого отбора.
  • За формирование бэклога и постановку задач отвечает менеджер со стороны заказчика. Разработчики общаются с ним напрямую. Все коммиты, отчеты и действия фиксируются в клиентской системе управления проектами.
  • Функция подрядчика дополнять, усиливать или вовсе заменять команду заказчика. Обычно закрывается потребность только в одной определенной функции (например, frontend разработка на React.js).
  • Менеджер со стороны подрядчика занимается общим аккаунтингом и HR-сопровождением.
  • Формат оплаты retainer (когда клиент платит фиксированную сумму в месяц за разработчика / команду) или time and material (выработанные часы, умноженные на ставку, в идеале с оплатой простоев по вине клиента).



Аутсорс-разработка это


  • Человек / команда людей, которые находятся в штате подрядчика, и он на свое усмотрение формирует команды для клиентских проектов.
  • Заказчик не взаимодействует с конкретными разработчиками. Чаще всего он не в курсе, сколько людей какой квалификации делают его проект. Оценивается только результат.
  • Чаще всего разработчик совмещает проекты и переключается между ними по несколько раз в день.
  • Подрядчик берет на себя полную ответственность за разработку или ее кусок. Формирует бэклог, ставит задачи и контролирует выполнение менеджер на нашей стороне.
  • С клиентом общается менеджер подрядчика, иногда тимлид.
  • Формат оплаты чаще всего fix price, иногда time & material (как правило, на долгой техподдержке, реже на разработке с нуля).

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

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

Аутсорсинг это такси, аутстаффинг каршеринг. А свой автомобиль инхаус-команда




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

С какими клиентами есть смысл работать по аутстафф-модели?


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

Размер проекта тоже не определяющий фактор. Аутстафф подходит как для больших проектов, которые требуют постоянного развития (читай бесконечного), так и для таких, когда за 1-2 месяца цели достигаются и контракт заканчивается.
Инга Морозова
Руководитель партнерской программы Globus


Как правило, клиент уже приходит с пониманием того, по какой модели работать. Крупные заказчики из сферы финтех, FMCG, IT в последние несколько лет предпочитают держать экспертизу у себя внутри и выбирают именно работу по аутстаффу. Но это не означает, что какие-то проекты не отдаются по аутсорсу зачастую по такой модели к нам приходят свежие проекты, новые продукты, в рамках которых ещё не написано огромного количества кода. Словом, все зависит от проекта и клиента.
Но есть действительно важные моменты, на которые стоит обратить внимание. Если хотя бы по двум пунктам случилось совпадение здесь можно работать по аутстафф-модели. В противном случае, стоит подумать еще раз, не случится ли разочарования и у клиента, и у вас?

Внутри компании клиента есть IT-компетенции


Разработка IT-продукта сложный процесс, и клиент должен понимать, как она устроена. Иначе эффективной работы не получится. Даже несмотря на наличие нужных компетенций, немногие компании могут (или хотят) собрать крутой боеспособный IT-отдел. Есть работы/направления, которые по разным причинам клиент не хочет отдавать внутренней команде разработки.

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

В чем прежде всего заинтересованы мы? Чтобы разработчик был равномерно загружен и не случалось простоев. Значит, у клиента должны быть необходимые компетенции, которые позволят правильно ставить и принимать задачи. Слова рефакторинг, багфикс, тестирование должны быть понятными обеим сторонам, чтобы не возникало возражений в духе: А почему вы сразу не написали код правильно? Я не буду платить вам за то, что вы исправляете свои же ошибки. Совсем хорошо, если на стороне клиента есть техлиды в том же технологическом стеке, на котором вы работаете.
Руслан Ишмухамедов
Управляющий партнер Evapps


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


У нас на проекте какая-то (!)

Есть явная и осознанная потребность в масштабировании


Допустим, у клиента есть очень масштабный проект, который требует в один момент нанять 30-40 человек. Это настоящий вызов для HR-отдела. Цифровая конкуренция будет только нарастать. И пока одни теряют ценное время на поиски разработчика мечты, другие уже выкатывают новые релизы. Или такая ситуация: производительность команды не сбалансирована, есть недостаток определенной экспертизы, из-за этого постоянно растет технический долг.


Типичный HR, которому нужно ввести на проект 40 сотрудников за 2 недели.

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


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

Мы сразу обозначаем, кто мы и как работаем. Обычно в первом же запросе от клиентов есть описание специалистов. Например: Нам нужно два Golang-разработчика и три Kotlin-разработчика с определенным опытом и компетенциями. Это значит, что сам клиент ждет от нас аутстаффинга.

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

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


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

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

Клиент готов играть не в одни ворота


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

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


В некоторые игры трудно играть одному

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

Максим Кравец
CEO Holyweb


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

Почему аутстафф нравится нам больше, чем аутсорс?


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

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

Именно поэтому мы активно развиваем аутстафф как отдельное направление своего бизнеса. Вот какие плюсы для компании несет в себе эта модель.

Меньше шанс влипнуть в неприятности с некорректной оценкой проекта по fix price
Мы все знаем, что оценивать проекты по фиксу это как идти по канату в темноте с завязанными глазам над пропастью, на дне которой точеные пики.


Ну, вы поняли.

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

Прогнозируемая загрузка и выручка


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

Экономия ресурсов. Избавляемся от хаоса и энтропии


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


Олег, у нас все сломалось!

Получаем опыт в разных сферах


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

Почему клиенту аутстафф приятней, чем аутсорс или инхаус


Окей, мы разобрались, почему аутстафф приносит профит нашему бизнесу. Давайте теперь посмотрим, почему клиент заинтересован в нем не меньше?

Чего хочет клиент от своего подрядчика или инхаус-команды? Ответ известен: получить больше (результата, качества, отгруженных задач, запущенных проектов) и потратить меньше (времени, денег, своих ресурсов).

В чем ему поможет аутстафф?

Быстро усилить свою команду



Меньше времени больше результата!

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

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

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


Мы пропустили через свои жернова немало чужого legacy-кода. Вот пример того, что иногда пишут тимлиды заказчика. А у нас время было и код доработан!

Сэкономить деньги



Тот же результат, а деньги сэкономили

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

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


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

Получить от исполнителя максимальную погруженность в продукт



Меньше собственных ресурсов но больше вовлеченности и инициативы.

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

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

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


Офис заказчика на момент разработки

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


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

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

В каком случае веб-продакшнам лучше не пытаться идти в аутстафф


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

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

Вы не готовы качать HR-направление и саппортить своих сотрудников


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

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


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

У вас много джунов


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

Аутсорс-разработка позволяет сбалансировать команду и плавно растить своих разработчиков, тогда как в аутстаффе некомпетентность невозможно прикрыть. Вы к этому готовы? А ваша команда?
Сергей Полуэктов
CEO MediaSoft


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

Вы не умеете в удаленную работу


Мы изначально начали строить свою команду как удаленную и распределенную и сейчас это приносит свои плоды. За два с лишним года мы прокачались и в собеседованиях по Zoom, и в постановке задач, и в контроле. Научились поддерживать атмосферу хотя некоторых ребят из команды мы ни разу не видели вживую. Такой подход позволяет нам собирать настоящие бриллианты, не ограничиваясь одним регионом (и даже одной страной). Если вам это не подходит, если вы не умеете работать неизбежными с рисками, а офисные печеньки и кофеварка вам милее всего на свете, то подумайте еще раз.

Вы не готовы работать под NDA


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


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

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

Что в итоге


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

Если совсем коротко обобщить, то вот плюсы аутстаффинга для веб-продакшна:

  • Долгая и хорошо прогнозируемая загрузка разработчиков. Это можно посчитать, этим легко управлять.
  • Наша команда получает разносторонний опыт и прокачивается со скоростью х3.
  • Мы не можем влипнуть с некорректной оценкой по fix price потому что мы не работаем по такой модели.

А вот плюсы для клиента:

  • Возможность быстро нарастить IT-экспертизу. Концентрация на цели продукта, а не на HR-рутине.
  • Глубокая интеграция специалиста в свою команду.
  • Быстрое масштабирование команды в обоих направлениях: при необходимости усилить, по завершении проекта прервать сотрудничество и никто не будет уволен.

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

***


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

  • Как наши ребята относятся к аутстаффу? Как мы сохраняем свою команду и почему за два года нас покинул только один сотрудник?
  • Какие есть риски у клиента и у нас? Разбор по мотивам собственных граблей.
  • Про собеседования с клиентами. Как готовиться, на что обратить внимание?

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

Recovery mode ИТ-аутстаффинг глазами клиента обсуждаем с руководителем разработки Mail.ru Cloud Solutions

03.03.2021 14:04:54 | Автор: admin

В 2021 году половина российских компаний планирует нанимать временный персонал для привлечения к проектной деятельности. Это показал опрос Hays, в ходе которого высказались почти 5 тысяч респондентов. 15% из них планирует за счет аутстаффинга оптимизировать свои расходы. 7% опрошенных испытывают сложности с поиском подходящих сотрудников в штат.

Компании Holyweb, которая специализируется на аутстаффинге ИТ-персонала, стало интересно, что стоит за этими цифрами. Они решили задать вопросы непосредственно тому, кто принимает такие решения руководителю разработки на стороне клиента.

Глеб Корсунов, CBDO Holyweb, обсудил с Михаилом Кебичем, руководителем разработки публичного облака Mail.ru Cloud Solutions, какие существуют опасения относительно аутстафф-подрядчиков, как безболезненно подключить внешних специалистов к инхаус-команде и как влиять на их мотивацию.

Приятного чтения!

Стоит ли бояться, что подрядчик выйдет из проекта или заберет половину команды?

Функция аутстаффинга дополнять, усиливать или заменять команду заказчика. Это рабочий инструмент, у которого есть свои плюсы и минусы. Мы в Mail.ru Cloud Solutions им пользуемся и нам он помогает.

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

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

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

С помощью аутстаффинга мы решаем задачи управления ресурсами быстро привлечь под задачу дополнительные руки и так же быстро сократить этот ресурс, если он не нужен здесь и сейчас. Если кто-то из аутстафферов уйдет, на наш бизнес это никак не повлияет. У нас своя разработка: все, кто отвечает за предоставление сервиса в режиме 24/7, работают во внутренних командах Mail.ru Cloud Solutions. На аутстафф мы стараемся отдавать полностью отчуждаемые задачи, чтобы они находились в зоне ответственности одной команды разработки от и до. Это могут быть сложные и объемные проекты на нескольких месяцев. Впрочем, мы всегда стремимся уменьшать циклы разработки стандартный спринт для инхаус-команды составляет две недели, и аутстафф двигается в том же ритме.

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

Как отношение инхаус команды к аутстафферам влияет на качество сотрудничества?

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

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

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

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

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

Как доверять, но проверять?

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

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

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

Эта позиция в той же степени распространяется и на внутренних сотрудников Mail.ru Cloud Solutions.

Аутстафф-сотрудники не такие мотивированные, как штатные? Так ли это и как можно на это влиять?

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

При правильной организации процессов и хорошем онбординге вовлеченность и мотивация аутстфферов сопоставима с мотивацией штатного специалиста.

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

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

Когда можно делать первые выводы об эффективности аутстафферов? Первый месяц работы самый важный?

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

Если аутстаффер работает внутри команды, то мы в Mail.ru Cloud Solutions оцениваем его точно так же, как и штатных сотрудников. Онбординг новых специалистов занимает столько же времени, они полностью интегрируются в команду и работают по той же системе и с теми же KPI, что и инхаус-разработчики. КПД каждого отдельного разработчика измеряется в зависимости от сложности сервисов и задач, с которыми работает его команда. Быть эффективным и попадать в сроки команды невозможно без качественной коммуникации.

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

При оценке внешней команды мы смотрим на ее результативность. Качество коммуникации можно оценить уже в начале работы. Через 2-3 недели становится понятно, насколько аутстафферы проактивны, самостоятельно инициируют обратную связь или нет, сразу ли сообщают о возникшей проблеме, предлагая собственные пути решения.

Как найти баланс при подборе разработчиков не перегнуть палку и не проглядеть подходящих кандидатов?

Мы проводим полноценное техническое интервью такое же, как для сотрудников Mail.ru Cloud Solutions, которых берем в штат. Обязательно уделяем внимание софт-скилам разработчика и его кругозору. Кроме того, устраиваем собеседование с руководителем команды и продуктовым менеджером.

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

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


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

Остались вопросы? Пишите в комментарии или Глебу в Facebook ответим всем.

Если вы хотите присоединиться к команде Mail.ru Cloud Solutions: прямо сейчас открыты вакансии Python/Go-разработчика в команду PaaS и Go-разработчиков в команды объектного хранилища и IAM.

Полный и актуальный список вакансий MCS.

Подробнее..

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

31.03.2021 10:06:06 | Автор: admin

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

История, описанная ниже, перевод статьи с Medium.com , которая вызвала бурное обсуждение внутри коллектива моей компании (я даже сохранил для вас некоторые комментарии). Но, я уверен, рассказ покажется до боли знакомым очень многим читателям Хабр.

Каково это быть продакт-менеджером, который противостоит инженерному хаосу?

Начальник отдела разработки созвал всех на собрание:

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

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

Что вы имеете в виду под переписать код? спрашиваете вы.

Глава отдела разработки пожимает плечами: Мы используем мультитул версии 1.6, говорит он, но версия 4.3 была выпущена на прошлой неделе, поэтому мы должны быть как минимум на версии 4.x.

"Хорошо, скажете вы, повлияет ли это на фичи, которые мы уже добавили в список?"

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

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

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

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

Вы не собираетесь выпускать пар при помощи пассивно-агрессивных комментариев. Все остальные так делают.

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

"Для того чтобы проект был актуальным и поддерживаемым желательно постоянно заниматься обновлением зависимостей, у нас этим занимается архитектор. Если этого системно не делать, то в какой-то момент происходит накопление обновлений до критической точки и простой переход с версии 1 до 2 превращается в переход от версии 1 до 5 и в переписывание всего проекта.

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

Руководитель мобильной разработки Мегаплана, Игорь Суховерхов

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

Через неделю вы снова встречаетесь. "Как продвигаются дела с кодом?", спрашиваете вы.

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

Проходит месяц. Вы снова встречаетесь:

"Как идут дела?", спрашиваете вы.

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

Они стреляют друг в друга из игрушечного пистолета. И их раздражает, что в офисе нет стола для настольного тенниса.

В подчинении у технического директора работает младший разработчик, который восемь недель проучился на интенсивном курсе программирования в Codiversity. Каждый раз, когда они писали какой-то код, они стреляли друг в друга из игрушечного пистолета. А еще эту парочку раздражает, что в офисе нет стола для настольного тенниса.

"Не самое страшное в этой истории. Я, например, играю на гитаре или хожу к холодильнику. Раньше во времена до карантина, когда мы работали в офисе, ходили с друзьями играть в кикер и на прогулку за кофеечком. А ещё дартс, тренировал меткость".

Руководитель мобильной разработки Мегаплана, Игорь Суховерхов

Младший разработчик объясняет несколько преимуществ Spasm. Это MVVM(Model-view-viewmodel) паттерн, тогда как Doohickey это MVC(model-view-controller) паттерн, который действительно старомоден. Вы ждете своей очереди и вежливо спрашиваете о некоторых срочных доработках, которые нужно добавить в продукт.

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

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

Ой, дружище, говорит младший разработчик, это такая головная боль.

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

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

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

1) Делайте всё вовремя и не затягивайте с обновлениями.

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

3) Считайте все в деньгах. В какой-то момент стоимость поддержки начнет кратно расти это знак, что пора что-то делать.

4) Если проект хочет развиваться и масштабироваться, а его код устарел и не поддерживается еще один сигнал, что пора заняться рефакторингом

Вы смотрите на экран. Но даже на надеетесь увидеть там законченную работу.

В следующий раз, когда вы встретитесь, у руководителя отдела разработки будет готова демо-версия. Мы еще не закончили работу над пользовательским интерфейсом, говорит он, размахивая рукой, UX-дизайнер не вернулся к нам с готовым результатом, и мы на пока хотели оставить прототип с низкой точностью воспроизведения, чтобы вы знали, что работа еще не закончена.

Вы смотрите на экран. Но даже не надеетесь увидеть законченную работу.

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

Она делает несколько глотков кофе, делает паузу, чтобы вдохнуть его аромат.

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

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

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

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

Руководитель мобильной разработки Мегаплана, Игорь Суховерхов

Креативный директор не согласна: Но ведь сейчас прекрасная возможность! Затем, резко сменив тему: Поговорим об аналитике?

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

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

Я предлагаю использовать Analogix, говорит креативный директор. Начальник отдела разработки быстро изучает этот сервис и видит, что для Spasm есть плагин, так что он за.

"И можем ли мы добавить его на текущий сайт, чтобы сравнить аналитику?" спрашивает креативный директор.

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

Из-за переключения контекста?" предполагаете вы.

Да, говорит он, это добавляет когнитивную нагрузку.

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

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

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

Как вы выполняете другие задачи?, спрашиваете вы: Такие как импорт XML-файлов. Исправление ошибки импорта XML было одной из тех задач, решения которой вам удалось добиться в прошлом спринте.

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

Прошло четыре месяца, и все, что вам смогли показать это веб-сайт, на котором все написано черным шрифтом Times New Roman на белом фоне и красиво оформленное изображение, иллюстрирующее две из 378 фичей.

Залог хорошего планирования:

1) Точность оценки задач. В scrum это приходит с опытом: каждый новый спринт команда всё лучше и лучше оценивает свои возможности.

2) Дедлайны и сроки работа не должна быть бесконечной.

3) Измеримость конечного результата.

Ну, и конечно хороший проджект-менеджер :)

На следующей встрече начальник отдела разработки сообщает вам, что уходит на работу в Dunkr. Это стартап. Как Uber, только для одежды, говорит он. Судя по всему, они используют Spectral Spasm. Это новая версия Spasm, которая гораздо круче предыдущей. Он в восторге от новой должности. Мне даже дали опционы на акции, говорит он вам.

Новый руководитель отдела разработки приступит к работе через пару недель. Вы уже можете это представить. Новый сотрудник будет убеждать вас, что нужно переключиться на Spectral Spasm, поскольку то, что вы используете сейчас, безнадежно устарело, и всем разработчикам надоело с этим работать.

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

Руководитель мобильной разработки Мегаплана, Игорь Суховерхов

Две недели спустя вы встречаетесь в кофейне с новым руководителем инженерного отдела. У меня есть некоторые мысли, говорит она. Вы готовитесь ее выслушать. Еще одно изменение приоритетов, тот же контент, переписанный в другом формате или стиле. Вы уже забыли, перешли ли они только что на Jira или, наоборот, ушли с нее.

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

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

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

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

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

Подробнее..

Перевод 3 самых больших факапа разработчика

30.04.2021 16:23:36 | Автор: admin

В оригинальной статье на сайте Medium, хотя и написанной от лица мужского пола, можно сказать от библейского первого человека Адама, в пример топового разработчика приводится девушка, которая в 11 лет сделала свой сайт, а к 23-м годам стала миллиардером. Судя по тому, что у нас в компании девушки-разработчики большая редкость (их всего две), а мы типичная IT-компания, для адаптации к местным реалиям пришлось превратить ее в парня. Получилось почти как у Киплинга. Помните, пантера Багира в оригинальных книгах был мачо-мальчиком, а в советском мульте превратился в супердевочку с голосом актрисы Касаткиной.

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

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

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

Тысячи URL-адресов были потеряны

Работая в крупном финансовом учреждении, я разработал систему для очистки неиспользуемых маршрутов на сетевом уровне F5. Пул маршрутов F5 мог поддерживать примерно 5000 URL-адресов. Затем он засорялся. Моя система автоматизировала процесс мониторинга трафика по этим URL-адресам, уведомляла владельцев о неиспользуемых ресурсах и в конечном итоге очищала их. Она не давала системе F5 выйти из строя и освобождала от ручной обработки операций.

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

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

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

Выяснилось, что большинство ресурсов, неактивных в течение недели, остаются такими целый месяц. Другими словами, важные приложения не бездействуют в течение недели. Так что в конечном итоге ущерб был управляемым; из 1000 удаленных URL лишь несколько команд пожаловались на проблему. Однако негативная обратная связь и стресс от проблемы сильно повлияли на меня и моих менеджеров. Особенно, когда мы только узнали о проблеме и не осознавали масштабов ущерба. В результате мы развернули военный штаб: вооруженная до зубов команда была готова в любой момент вручную воссоздать потерянные ресурсы или удаленные URL'ы.

Как это могло случиться?!

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

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

Что я вынес из этой ситуации?

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

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

Эта история научила меня тому, что, хотя код можно хорошо контролировать, инфраструктуру и данные часто нет. Критически важно использовать инструменты миграции базы данных (например, DBMate и Terraform) для управления этими компонентами системы. На них нужно обращать столько же внимания, сколько на сам код приложения, если не больше.

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

База данных и учетные записи должны быть доступны по умолчанию только для чтения, должны иметь четкие стратегии резервного копирования и восстановления. Например, на моей следующей работе разработчик случайно удалил файлы из корзины prod S3. Если бы у нас не было стратегии управления версиями S3, которую я установил всего за неделю до этого (она отключена по умолчанию, черт возьми, Amazon!), мы могли потерять ее навсегда.

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

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

Отправил письмо с кодом не сотруднику компании

Перед увольнением с работы я скинул себе код на электронную почту. Я почти год работал над библиотеками Spring и в процессе создал несколько действительно хороших шаблонов тестирования. Я не хотел потерять отличные идеи и планировал использовать их для серии постов в блоге.

Примерно через месяц, в первый день на новом рабочем месте, я получил сообщение, от которого побледнел: Чувак, у нашей команды большие проблемы. Кто-то отправил код по электронной почте за пределы компании, к этому делу уже привлекли юристов. Ты не знаешь, кто бы это мог быть?

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

Жена забрала меня в тот день с работы и была в отличном настроении. Она спросила, как прошел мой первый день, на что я ответил: Думаю, я нас подвел. Улыбка с ее лица исчезла. Когда я рассказал, что произошло, она абсолютно спокойно отреагировала и сказала, что хотя это действительно глупый поступок, мы справимся. Всю неделю голова была как в тумане, пока юристы из моей бывшей компании не связались со мной и не сказали, что не будут выдвигать обвинения, если я подпишу соглашение об удалении этого кода немедленно.

Как это могло случиться!?

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

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

Что я вынес из этой ситуации?

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

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

Он вам больше не понадобится это не просто принцип любого программного обеспечения. Смог бы я еще раз взглянуть на этот код? Даже если это привело к появлению нескольких статей в блоге, оправдан ли такой риск? Конечно, нет. Когда вы увольняетесь с работы или закрываете любую другую главу своей жизни, просто идите дальше. Ничего с собой не берите, не смотрите назад просто двигайтесь дальше.

Потерял работу во время пандемии

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

Однако к июлю стало ясно, что нам нужно или сокращать команду, или наш корабль пойдет ко дну. В 11:30 генеральный директор лично отправил мне сообщение в Slack со зловещей просьбой позвонить ему в 12:00. В 12:15 меня уволили. Цитирую: Адам, мы вынуждены немедленно отпустить вас. Мы считаем, что вы хорошо поработали, однако из-за сложных условий мы сокращаем персонал. Я был одним из 15 человек, бесцеремонно уволенных в тот день, без предупреждения, выходного пособия, даже без пяти минут, чтобы попрощаться с командой (учетная запись Slack была отключена во время разговора).

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

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

Как это могло случиться!?

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

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

Я был новым сотрудником и мне дали вести крутые проекты с нуля. Я работал над конвейерами машинного обучения и анализировал данные в Jupyter. Однако наши основные системы были довольно посредственными приложениями Flask. Меня никто особо не подталкивал разбираться с этими системами, поэтому я и не лез. Когда в них обнаруживались баги, я их не устранял. Когда они тормозили работу, я ничего не предпринимал; меня никто не просил, и я не проявлял инициативу.

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

Что я извлек из этой ситуации?

Меня никуда не брали. Особенно обидно было, когда я почти получил работу мечты в компании, которая занимается AV-технологиями, но мне отказали на последнем этапе собеседования (второй год подряд). В конце концов я устроился java-разработчиком в посредственную компанию. Я быстро понял, что скучное ПО это круто: у него простые требования и давно сформировавшийся пул пользователей. Такие вещи, как эта кнопка не работает, легко исправить, и для этого не требуется докторская степень или годы планирования. На самом деле очень приятно пользоваться простыми и максимально доступным инструментарием и получать за это благодарности от реальных людей.

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

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

Наконец последнее, чему я научился, это постоянно давать самому себе обратную связь. Как я себя чувствую? Почему я работаю над проектом X? Важен ли проект X для успеха компании? Если нет, то что важно? Не привязывайтесь сильно к своей работе. Часто мы боимся обратной связи, потому что она может задеть наше эго, но ее принятие это единственный способ движения вперед.

P.S. Позор тем компаниям, которые оставляют соискателей без обратной связи.

Основной вывод из прошлых ошибок заключается в том, что вы всегда будете сталкиваться с препятствиями и неудачами. Они не только неизбежны, но и необходимы. Редко когда неудачи являются следствием провала отдельного взятого человека. Факапы это возможность лучше понять себя и окружающих. Начальник сравнял вас с землей или вознес до небес? Семья и друзья не бросили в трудную минуту? В любом случае у вас есть отличная возможность перевести дыхание и подумать о планах.

Подробнее..

Трансформация аутсорсинговых компаний в инженерные путь смелых из Беларуси, Украины и России

13.04.2021 14:10:30 | Автор: admin
Аутсорсинг отличная инженерная школа. Но куда мы отправимся дальше?Аутсорсинг отличная инженерная школа. Но куда мы отправимся дальше?

В ИТ-сообществе слово аутсорсинг часто воспринимается как обидное. Руководители компаний и команд, которые занимаются заказной разработкой ПО или электроники, и сами разработчики предпочитают не называть себя аутсорсерами. Даже из моих предыдущих статей об инженерных командах и их пути могло показаться, что я против этой бизнес-модели. Так что давайте разберемся, почему аутсорсинг стал для нас инженеров из Беларуси, Украины и России важной школой, и почему лидеры ИТ-рынка больше не хотят называть себя этим словом.

Сразу отмечу свое отношение к термину аутсорсинг: мне нравится эта бизнес-модель, я много лет строил компанию в сфере заказной разработки электроники и встроенного ПО, а сейчас трансформирую бизнес в этой сфере.

Более того, я уверен, что аутсорсинг сыграл ключевую роль в развитии ИТ-сектора в наших странах. Если аллегорически сравнить его с высшим образованием, то можно сказать, что это отличная бизнес-модель для обучения большого количества специалистов с оплатой в процессе обучения. Сначала надо пройти путь абитуриента и сдать экзамен на первый контракт. Потом побыть студентом, где тебе будут платить небольшую стипендию это период, когда молодая аутсорсинговая компания получает контракты, позволяющие держать на плаву небольшую команду. Затем появляются несколько клиентов и, возможно, один-два ключевых. Ключевой клиент как профессор в магистратуре или аспирантуре. Аспирант обслуживает интересы профессора в обмен на обучение. Профессор, т.е. зарубежный клиент, получает всю славу, результат и вполне солидные деньги за проект, который был создан при поддержке аспирантов.

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

Кто и чему учится в рамках аутсорсинговой бизнес-модели:

  • Основатели и менеджеры бизнесу и управлению.

  • Инженеры разработке и инженерной культуре.

  • Продавцы длинным и сложным B2B-продажам, где нужно вырабатывать доверие, продавая воздух.

Представьте, как долго мы выходцы из постсоветских стран проходили бы этот путь, если бы такая бизнес-модель как аутсорсинг в мире не существовала? Ведь она позволила нам получить и накопить интеллектуальный и денежный капитал. В 90-х и нулевых мы только стартовали. В 2010-х те, кто заработал капитал, инвестировали в собственный бизнес. А сегодня предприниматели с 2030 летним опытом готовы инвестировать в сторонние компании и передавать знания новому поколению.

После развала Союза у нас не было опыта в бизнесе, не хватало инженерных знаний всё это мы получили во многом благодаря аутсорсингу!

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

Тот же EPAM, который некоторые до сих пор по-привычке считают аутсорсинговой компанией, уже давно совершил разворот к сервисно-инжиниринговой модели. Как пишут Ведомости, если до 2005 г. около 80% заказов этой компании приходилось на аутсорсинг в разработке продуктов для технологических компаний, то сейчас на подобные заказы приходится около 20%. Сам Аркадий Добкин, основатель EPAM, так объясняет этот термин в прошлогоднем интервью журналу Большой:

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

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

Посмотрите сами: где была бы Индия со своим ИТ и где был бы Китай со своим производством, если бы не заказные проекты зарубежных заказчиков?

Зрелость индустрии соответствует зрелости государства и общества. Поэтому логично, что на данном этапе мы (IT-компании в Беларуси) занимаемся аутсорсингом, как и наши соседи в Украине, России, Болгарии, Молдове и т.д. Даже Польша, Чехия, Литва и Румыния все еще входят в список стран для ИТ-аутсорсинга, хотя там ситуация постепенно меняется. А в таких странах как Дания и Германия структура бизнес-моделей и компаний уже совсем другая. Это положение дел обусловлено стоимостью оплаты труда, индексом экономического развития и другими параметрами, поэтому не стоит думать, что мы все-еще занимаемся аутсорсингом, потому что кого-то из наших инженеров несправедливо недооценили.

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

Почему в Германии много продуктовых компаний? Потому что там есть не только стартапы, но и инвесторы. Почему у нас рождаются единицы сильных стартапов, а в европеских странах сотни? Это только кажется, что везде есть фонды и везде есть классные инженеры. Бизнес-ангелы у нас в Беларуси только-только появились, они вкладывают скрепя зубами несколько десятков тысяч долларов по небольшой оценке, иногда забирая большую долю в стартапах, демотивируя этим фаундеров. Поэтому инженерные команды, которые делают свой продукт или запускают корпоративный спин-офф, предпочитают воспользоваться зарубежными институтами финансирования и поддержки инноваций, они переезжают в ЕС, чтобы быть ближе к развитым бизнес-экосистемам и быстрее достигать свои цели.

Трансформация аутсорсинга

Но и аутсорсинг как бизнес-модель не стоит на месте, она трансформируется под давлением рынка вместе с прочими моделями. Какие у нас есть варианты для трансформации? Во-первых, важно понять, что на пути между аутсорсер и продуктовая компания есть промежуточные гибридные модели. Во-вторых, мы можем посмотреть на опыт компаний в развитых экономиках Западной Европы, где заказная разработка тоже имеет место в Германии, Дании и Финляндии успешно работают инженерные сервисные компании, которые зарабатывают отнюдь не на ценовых преимуществах. А на чем же?

Давайте рассмотрим, в какие бизнес-модели они используют:

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

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

  3. Сервисная компания + аутсорсинг. Компании в Западной Европе, которые занимаются заказной разработкой или инженерным сервисом, позволяют своим клиентам быстро подключить к проекту нужных инженеров, не нанимая их в штат. Заказчик таким образом снимает с себя задачу найма узких специалистов и бремя социальных выплат на штатных работников. При этом часть задач сервисная компания передает на аутсорсинг в Восточную Европу так они снижают затраты.

Как на это смотрят сами руководители компаний из Западной Европы? Мой коллега Зоран Вельковски, основатель датской инжиниринговой компании TekPartner, так прокомментировал перспективы сотрудничества в отрасли:

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

Только компании с огромным бюджетом на НИОКР, такие как Apple, Tesla, Microsoft и Google, могут позволить себе полную вертикальную интеграцию. Всем остальным нужна внешняя помощь, т.е. аутсорсинг всех видов деятельности, которые не относятся к основной компетенции компании.

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

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

В Беларуси, к примеру, уже была возможность за 1015 лет реализовать свою среднесрочную ИТ-стратегию в Парке высоких технологий (ПВТ), воспользовавшись специальным налоговым режимом и более низким уровнем жизни, чем в ЕС и США. В краткосрочной и среднесрочной перспективе это были правильные действия. Но дальше нужна трансформация и выбор проактивной позиции: мы можем использовать опыт европейских сервисных компаний и заниматься высокооплачиваемым инженерным сервисом, добавляя исследовательскую и интеграционную составляющую, обеспечив свою географическую близость к клиенту и более глубокое понимание его рынка.

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

Ведь что такое сдача проекта delivery? Наш классический проджект-менеджер это не деливери-менеджер, потому что он, как правило, не обеспечивает бесшовную интеграцию проекта в бизнес клиента. Живой пример из нашей компании: мы в Promwad разработали для своего клиента ТВ-приставку в рамках проекта за несколько десятков тысяч долларов, а на этапе delivery ценность наших услуг и бюджет проекта исчислялся уже в сотнях тысяч долларов. Мы интегрировали свою разработку в цепочку поставок клиента: поставили приставку на серийное производство в оптимальной для клиента локации, запускали там автоматизированное тестирование и дописывали ПО. Но это случилось, потому что мы стремились увеличить свое участие в бизнесе клиента, действовали проактивно.

Рецепты

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

  1. Расти за счет дорогих сервисов и большей маржинальности, но для этого нужно слышать клиента и быть к нему ближе географически за счет локальных офисов в ЕС и США.

  2. Дополнять свои услуги продуктами / платформами / решениями.

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

При этом, как видите, вы не становитесь продуктовой компанией. Ведь мы тут не обсуждаем жесткий разворот в продуктовую стратегию.

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

В этой статье я Роман Пахолков, основатель Promwad, поделился ключевыми выводами, которые подтолкнули меня к созданию новой стратегии для собственной компании к специализации на конкретных индустриях и развитию лидеров направлений в нашей инженерной команде. Более того, мы даже запустили целое отраслевое сообщество Hardware Ecosystem для всех, кто работает в сфере электроники. Там есть и подмастерья-студенты, и профессора. Верю, что объединившись, мы сможем достичь большего.

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

Подробнее..

Как мы хакнули умные подушки и запустили приложение для умной спальни Асконы

21.08.2020 18:08:22 | Автор: admin
Привет! Меня зовут Сергей Солдатов, я директор по продукту в компании 65apps. Мы разрабатываем мобильные приложения, используем в работе продуктовый подход. Хочу поделиться с вами нашим недавним кейсом, где именно продуктовый подход помог погрузиться в непривычную предметную область и создать сервис с уникальной ценностью. Это наш совместный проект с компанией Аскона приложение для управления умной спальней.

Для начала забавный факт: перед началом работы всей проектной группе, а это: директор по продукту, арт-директор, руководитель проекта, аналитик, дизайнер, разработчики iOS, Android и QA-специалист, Аскона передала свои умные девайсы, видимо, чтобы мы лучше высыпались и продуктивнее работали. Прямиком с завода к нам в ижевский офис приехали подушки, трекеры сна, основание кровати все это было необходимо подключить. Мы действительно спали на этих подушках и это тот самый случай, когда я готов их неистово рекомендовать. Я уже не смог вернуться к своей старенькой синтепоновой, и после сдачи проекта купил всей семье умные подушки (Аскона не платит мне за рекламу, а жаль).

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

Продуктовый подход


Аскона более 30 лет разрабатывает решения для комфортного и здорового сна. Объединив накопленную экспертизу и современные технологии, компания замахнулась на создание продукта, который поможет сделать сон эффективнее, с этой идеей клиент пришел к нам.

Что такое Умная спальня? Это экосистема из самых разных устройств от управляемого основания кровати до умных светильников и гардин. С ее помощью можно создавать в спальне индивидуальную атмосферу, максимально подходящую для комфортного сна.

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

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

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

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

Как мы превращали идею в продукт


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

В MVP вошли три устройства:

Smart pillow умная подушка, которая отслеживает сердечный ритм и частоту дыхания человека;

Sleep-dot небольшой датчик, контролирующий уровень влажности и температуру воздуха в помещении, а также фиксирующий время засыпания человека;

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

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

На этой же встрече мы набросали примерный Customer Journey Map, но в начале работы оставалось ощущение, что он все же не закрыт, поскольку на старте многое не было видно. Сначала наша фантазия ограничивалась теми решениями, которые уже были доступны, поэтому многие крутые идеи приходили уже в процессе работы. Например, в ходе работ над MVP я увидел ту фичу, которая будет отличать наше приложение от аналогичных решений. Подключаемые устройства передают в приложение множество самых разных данных, но сама по себе их ценность не так велика для пользователя, да и разобраться в них непросто. Мы решили, что наше приложение должно давать пользователю не только скоринг, но и персонализированные советы о том, как сделать сон лучше. Эта идея прекрасно ложилась в цели Асконы и видение продукта, так что клиент подключил к работе над рекомендациями своих экспертов-сомнологов специалистов, которые занимаются профилактикой и лечением расстройств сна.

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

Еще за три спринта мы разработали аналогичный сценарий подключения слип-дота и переключение между устройствами.

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

Разработка: что делать, если нет SDK


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

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


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

На старте работ у них не было никаких SDK к девайсам. Попытка декомпилировать родное приложение дала нам 16 тыс. строк кода с комментариями на китайском.

Здесь пригодился навык поиска на Github SDK для подушки и слип-дота ребята нашли именно там, а вот SDK для основания пришлось писать самим.

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

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

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

Редизайн в середине проекта


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

image

Все выглядело убедительно и заказчик согласовал макеты.

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

Наши дизайнеры полностью переосмыслили всю работу приложения и некоторые пользовательские сценарии.

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

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

image

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

image

В приложение мы добавили возможность сохранять пресеты индивидуальные настройки основания. В заводском пульте такой функциональности нет.

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

Тестирование: берем работу на дом


Тестирование приложения шло непрерывно, с самого первого спринта.

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

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

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

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

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

Что дальше?


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

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

Совет дизайнеру работа в продуктовой команде

22.09.2020 14:11:12 | Автор: admin

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



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



image


Познакомься с командой


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



Правильно работай с критикой


Работу дизайнера частенько будут обсуждать и комментировать. Много комментировать. Даже люди, которые не имеют отношения к дизайну в принципе. Дизайн такое направление, где каждый имеет своё мнение, и каждый старается его озвучить. Вкусы у всех людей тоже разные, поэтому постарайтесь не принимать критику близко к сердцу и не переходите в оборонительную позицию, дайте каждому высказать своё мнение. Замечания могут быть в виде конструктивной критики или вкусовщины. Первый вид очень полезен, он обозначит моменты, где вы могли что-то не учесть или не придать значение. Второй почти бесполезен. Но неизбежен.



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



Готовься к встречам


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



Работа с ожиданиями


Рассказывайте команде о том, в каком статусе находятся ваши задачи. Если у вас проблемы или вы не успеваете, сообщите об этом сразу, не стоит делать вид, что всё хорошо. Это поможет команде скорректировать roadmap или предпринять какие-то меры, а не получить нож в спину в последний момент.



Социальный капитал


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



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



Продакт vs Дизайнер


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



Для того чтобы минимизировать такие ситуации, надо понять несколько вещей:


  1. Нужно общаться со своим PO действительно много. Он руководит командой, а вы создаете условия для того, чтобы идея, стоящая за продуктом, была удобно и понятно реализована. Вы делаете одно дело, просто у вас разные роли. От того, насколько хорошо у вас выстроена коммуникация, зависит успешность продукта.
  2. У вашего PO другой mindset. Он не мыслит критериями красиво или не красиво. Его работа связана с метриками и финансированием, и всё что сложно подсчитать или что не принесёт существенной прибыли или роста метрик, его мало интересует.
  3. Самое главное: PO поможет сделать вам всё что угодно, если он сам в это поверит.


Договорённости


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



Культура общения


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



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



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

Подробнее..

Из песочницы Start Up Организационные и технические аспекты запуска в крупной IT-компании

26.10.2020 00:19:14 | Автор: admin

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


image


В этой статье мы поделимся опытом запуска стартапа в компании системном интеграторе ОТР2000 с точки зрения выбора и внедрения гибкого подхода к разработке протестированных и
работоспособных программных продуктов.


Продукты стартапа


Для перехода к деталям и особенностям внедрения методологии, необходимо понять результаты данной трансформации в контексте жизненного цикла стартапа. Существуют два основных этапа [1]:


  1. Поиск жизнеспособной экономической модели продукта;
  2. Развитие и масштабирование продукта.

Два наших продукта ЧАТ СТП и ЕЦУ прошли первый этап и в настоящий момент имеют дорожную карту развития вплоть до 2022 года. Поставка MVP третьего продукта Сервисы ИИ для подтверждения жизнеспособности концепции ожидается к концу 2020-го, после чего будет принято решение о выделении инвестиций для развития и масштабирования.


image


Теперь по порядку немного о наших продуктах молодого департамента ЦИИ Центр искусственного интеллекта в ОТР2000. Продукт Чат СТП (неформальное название Мессенджер). Данный продукт предназначен для предоставления технической поддержки клиенту в части сопровождения информационных систем в B2B- и B2G-секторе. Мессенджер является дополнительной альтернативой телефонным обращениям и включает в себя кастомизируемый под свои потребности жизненный цикл обработки обращений.


Продукт ЕЦУ единый центр управления (неформальное название Супервизор). Идея ЕЦУ обеспечить омниканальность различных ИС заказчика в одной системе для эффективного управления и получения всей доступной информации в одном инструменте. ЕЦУ является мощным аналитическим инструментом в части сопровождения проектов и информационных систем.


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


Результаты продуктовых команд


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


  1. Короткие релизные циклы;
  2. Отношение выпущенных фич к новым в бэклоге;

image


Короткие релизные циклы позволяют быстрее предоставлять клиенту реализованную гипотезу для получения обратной связи в части доставки ценностей и необходимых изменений. Если через пару выпущенных версий клиент понимает, что нужно убрать или изменить определенный функционал, мы, несомненно, делаем это, так как мы не боимся изменений, даже если они поступают в последний момент [2]. Для эффективного управления данными изменениями для наших продуктов налажен релизный цикл, равный в среднем 2 неделям, по результату которого мы выпускаем протестированную и работоспособную версию программного продукта, готовую для установки в продуктивную среду клиента.
Соотношение выпущенных фич с новыми в бэклоге характеризует:


  1. Интерес клиента к продукту красная линия на графике. Данная линия характеризует идеи и гипотезы клиента, которые придают уверенность каждой выпускаемой версии в том, что она будет являться более ценной, чем предыдущая. В случае если линия имеет пологий темп роста, необходимо прилагать больше усилий для вовлечения клиента в процесс разработки продукта.
  2. Уровень мотивации команд зеленая линия на графике. Если зеленая линия имеет такой же темп роста, что и красная, это говорит о том, что команда понимает цель и ценность каждой версии и стремится успевать за идеями клиента. Если линия пологая, то необходимо приложить усилия в части формирования и развития команды.
  3. Уровень декомпозиции в каждой новой версии мы стремимся выпускать от 5 до 8 новых фич, что позволяет нам иметь релизный цикл, равный двум неделям. Если за релизный цикл выпускается одна большая фича, необходимо задуматься о более детальной декомпозиции.

Становление и развитие продуктовых команд


Культурная среда компании является началом проведения трансформации в части новых практик и подходов. В нашем случае компания ОТР2000 является системообразующей IT-компанией, надежно закрепившейся на B2G-рынке с 2000 г., и насчитывает около 4000 сотрудников, географически распределенных по всей России и за рубежом. На протяжении 20 лет компания экспоненциально росла в части поддержки и развития своих продуктов, что отразилось в выстраивании жесткой матричной структуры департаментов управления. Данный выстроенный механизм имеет водопадную структуру, и перед тем как выпустить очередную версию продукта, необходимо пройти фиксированные этапы через департаменты.


  1. Департамент бизнес-анализа.
  2. Департамент проектирования.
  3. Департамент разработки.
  4. Департамент тестирования.
  5. Департамент выпуска версий.

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


В рамках создания молодого подразделения Центр Искусственного Интеллекта в ОТР2000 в начале марта, было принято решение апробировать гибкие методики разработки программных продуктов, которые позволяли бы в кратчайшие сроки выпускать работоспособные версии для инкрементного увеличения ценности продукта.


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


image


В продуктовую команду должны входить для фуллхауза следующие роли (сразу стоит отметить, что данные роли может выполнять один человек):


  • Владелец продукта отвечает за содержание бэклога и видение продукта
  • UX/UI отвечает за дизайн продукта и пользовательский опыт
  • Архитектор отвечает за архитектуру продукта и интеграционные вопросы
  • Backend-инженер отвечает за back продукта
  • Frontend-инженер отвечает за front продукта
  • QA-инженер отвечает за работоспособность продукта
  • DevOps отвечает за выпуск продукта
  • Скрам мастер отвечает за коммуникации и развитие продуктовой команды

Становление и развитие продуктовой команды проходило через много этапов, из которых можно выделить следующие основные:


  1. Первый этап Обнуление. На данном этапе все члены команды должны были забыть старые подходы из того времени, когда они работали в больших департаментах, так как от них теперь не требовались бумаги для перехода из одного этапа на другой. Теперь в команде были все необходимые роли для решения открытых вопросов и развития собственных процессов и подходов.
  2. Второй этап Коммуникации. В одной команде сфокусированы все необходимые роли, скрам-мастер внедрил необходимые ритуалы для поддержки процесса разработки выпуска работоспособных версий продуктов, что упростило коммуникации для решения многих проблем.
  3. Третий этап Роль владельца продукта. Данный этап является самым важным, без него команда не сможет сформироваться и дальше начать развиваться. Понимание и принятие роли владельца продукта должна пройти не только на уровне команды, но также на уровне заказчика и компании в целом.
  4. Четвертый этап Роль скрам-мастера. Скрам-мастер не является руководителем сверху, наоборот, принимая все преимущества модели manager as servant, создает и развивает организационные механизмы разработки продуктов таким образом, чтобы команды ни в чем не нуждались и находились в непрерывном росте и развитии.

Ритуалы в продуктовых командах


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


image


Мы успешно апробировали и используем следующие ритуалы в рамках 2-недельного релизного цикла:


  1. Stand Up ежедневная 15-минутная встреча, на которой каждый участник команды рассказывает об успехе проделанной работы, блокерах и планах на текущий день. В качестве инструмента используется Kanban-доска.
  2. Release Planning двухнедельная 2-часовая встреча, на которой проходит планирование очередной версии продукта, где команда декомпозирует пользовательские истории (user stories) на подзадачи и оценивает сроки реализации в попугаях. В качестве инструмента используется бэклог продукта.
  3. Demo двухнедельная 2-часовая встреча которая проводится после выпуска версии продукта с целью демонстрации нового функционала и получения обратной связи от клиента. В качестве инструмента используется протестированная и работоспособная версия продукта.
  4. Retrospective 2-часовая встреча, которая проводится после выпуска 34 версий с целью анализа организационных подходов и поиска их улучшений. Результатами данной встречи являются конкретные шаги, направленные на улучшение качества и скорости выпускаемой версии.

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


Организация CI/CD релизов


В целях организации короткого инкрементного релизного цикла мы внедрили CI/CD-подход. Данный подход заключаются в следующих технических и организационных возможностях:


  1. CI (continuous integration) непрерывная поставка инкремента продукта в виде MR (merge requests) в общий репозиторий программного кода командой продукта.
  2. CD (continuous deployment) непрерывная компиляция и сборка продукта из общего репозитория программного кода продукта.

image


Имея данные возможности, продуктовая команда быстрее определяет проблемы и дефекты при очередном CD, а также устанавливает причинно-следственные связи для их устранения. Для продуктов команд ЦИИ мы в среднем имеем 15 МР и 4 деплоя сборки в день. На картинке проиллюстрирован общий организационной подход в рамках внедрения CI/CD в разрезе управления средой разработки для одной из команд. Отображение данного подходя является базовым, что обеспечивает легкость масштабирования на дополнительные команды и смежные продукты.


Название окружения
Назначение
local
Локальная среда разработки отдельно взятого разработчика. В данном окружении разработчик разрабатывает программный код продукта в части только своих, обозначенных задач. По окончании вливает данные изменения ветки /master или /dev в зависимости от выпускаемой версии продукта.
/dev
На среде развития продукта разрабатываются новые фичи (функционал) и происходит непрерывная интеграция изменений в общий репозиторий с дальнейшим разворачиванием очередной версии билда. На данном стенде проводится интеграция компонентов продуктов, а также функциональные, нагрузочные и регрессионные тесты для согласования выпуска версии в PreProd заказчика.
/master
На среде поддержки продукта осуществляется исправление только критических проблем, возникших при эксплуатации ранее выпущенной версии. Перед выпуском на PreProd проводятся только регрессионное тестирование версии.

Стоит также отметить, что разница версии в ветках /dev и /master отличаются на инкремент ровно одной версии. Данный подход позволяет выносить версию в Prod по окончании релизного цикла и не зарываться в деталях и проблемах, выпущенных, например, 2 месяца назад.
PreProd
На данной среде проводятся интеграция и отладка выпущенных продуктов со смежными информационными системами, а также интеграционное и регрессионное тестирование для согласования выпуска версии в Prod-среду. В дополнение на данном стенде проводят демонстрацию нового функционала заказчику и фокус-пользователям.
Prod
На данной среде происходит эксплуатация пользователями выпущенных в релиз продуктов. На данном стенде не проводится тестирование.

Единственным критерием внедрения эффективного CI/CD-подхода является полное прохождение жизненного цикла сборки от локального MR отдельного разработчика до установки версии в продуктивную среду силами одной команды. Ответственным за процесс и работы CI/CD составе команды отвечает DevOps-инженер.


Инструменты продуктовых команд


Существует много моментов, которые мы хотели бы показать в рамках использования и внедрения инструментов разработки продуктов. Однако в этой статье мы лишь подсветим основные инструменты, которые прижились и доказали эффективность:
Управление содержанием продукты Atlassian (JIRA, Service Desk, Confluence).
Управление CI/CD Gitlab.
Управление коммуникациями Discord, Telegram.
Управление развитием команд Mural.


Интересные лайфхаки при использовании инструментов:


  1. Управление каждым продуктом осуществляется с помощью двух проектов JIRA:
    a. JIRA управления бизнес-требованиями, к которой имеет доступ клиент, генерируя поток новых идей. С использованием данной JIRA заказчик понимает, что TTM (time to market) равно 1 месяц.
    b. Производственная JIRA разработки функционала, к которой клиент не имеет доступа, и он понимает, что уровень декомпозиции новых фич позволяет выпускать версии каждые две недели для приемки в разрезе бизнес-требований.
  2. Для каждого из продуктов настроен свой репозиторий, который исключает зависимость продуктов друг от друга для релиза.
  3. Мы замкнули все внутренние и часть внешних коммуникационных каналов в одном инструменте. Таким образом обеспечивается легкость управления данными коммуникациями через каналы, и все команды находятся в одном информационном поле.
  4. С помощью webhooks можно с легкостью настроить нотификацию в дискорде в части бизнес-логики использования JIRA. Например, появилось новое требование для продукта в JIRA, нотификация автоматически появляется в нужном канале для привлечения внимания.
  5. Инструмент Mural является универсальным, и там много встроенных шаблонов для фасилитации встреч; он является палочкой-выручалочкой для каждого скрам-мастера.

Заключение


В заключении хотели бы отметить, что целью статьи является возможность поделиться результатами запуска и развития стартапа с точки зрения внедрения фундаментальных процессов и подходов для непрерывной поставки ценности в виде инкрементов продукта. Приведенные результаты, достигнутые за 6 месяцев, могут служить определённой метрикой для сравнения. Мы как стартап не останавливаемся на месте и решаем следующие стратегические вопросы в рамках развития:


  1. Внедрение модели продуктовой разработки в рамках заказной.
  2. Внедрение организационного и технического подхода в части разработки ядра продукта и слоя кастомизации.
  3. Внедрение масштабируемого фреймворка SAFe на смежные продуктовые команды, которые являются поставщиками продуктов в других компаниях.

Ссылки на источники литературы
[1] Стив Бланк, Боб Дорф Стартап. Настольная книга основателя.
[2] https://agilemanifesto.org/iso/ru/manifesto.html

Подробнее..

Разработчикам в продуктах делать нечего и до 30 лет надо фигачить

24.01.2021 16:23:06 | Автор: admin

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

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

Про возраст

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

Но большинство наших ребят молодые, те, кто понимает: сейчас надо пользоваться моментом и нарабатывать опыт. При этом клепать однотипные простые проекты в местном веб-продакшне им не улыбается (или они уже этого наелись). Хочется погружения, работы в потоке, а не прыжков с проекта на проект по пять раз в неделю. Да и тупо залезть в интересный тебе стек.

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

Про опыт

В разных странах практикуется такое явление, как Gap Year. То есть год после школы и перед следующим учебным заведением ты тратишь на то, чтобы посмотреть свет. Бывшие школьники путешествуют, набираются опыта, размышляют о своем будущем.

Мы видим себя примерно тем же самым, только для уже опытных разработчиков. Ты поработал в паре продакшнов, но осесть пока не решаешься мы зовем к себе. В формате аутстаффинга ты сможешь поработать на нескольких крупных проектах, лучше понять, как там всё устроено изнутри. Понять, что для тебя ок, а что вызывает желание свалить поскорее.

Ну и всё это на фоне роста основных скиллов.

Если говорить конкретнее, то у нас есть заказчики из финтеха, есть просто технологические компании, есть ecommerce с посещалкой в несколько миллионов. Сомнительных проектов у нас просто нет, мы не беремся за сайты Свидетелей Иеговы, как тутписали в комментах:)

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

Михаил, QA-специалист Holyweb

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

Про стабильность

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

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

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

Поэтому аутстафф-компания (по сути сервисная) от такого защищает. Отвалился один проект перешли в другой.

Даниил, React-разработчик Holyweb

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

Про деньги

Ага, вы продаете джунов как мидлов, платите им 30К, остальное в карман! примерно так часто пишут про аутстаффинг.

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

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

Про комфорт разработчика

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

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

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

Геннадий, PHP / Node.js разработчик Holyweb

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

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

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

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

Про нелюбовь к релокейтам

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

Суть в том, что иногда разработчики просто не хотят переезжать в Москву, на Кипр, в Мачу-Пикчу или куда угодно еще. В силу разных причин. В то же время разработчик из региона, доросший до мидла, обычно начинает искать работу вне своего города: потому что местные компании в большинстве случаев не хотят или не могут платить соразмерно запросам. Остается удаленка.

Возможен и другой сценарий, не про деньги: ты вырос из штанишек верстальщика, освоил React и готов на нем работать а тебе подсовывают всё ту же верстку. Просто потому что конвейер, рук не хватает, некогда объяснять, работаем дальше. И снова ты идешь искать работу на удаленке.

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

Про ООО НДА

Еще одно популярное сомнение звучит так: у вас, наверное, всё под NDA, что я напишу в резюме?. На самом деле, это надуманная проблема работодатели почти никогда не смотрят на названия проектов, в которых вы участвовали, им важна ваша роль в этих проектах и конкретные решенные задачи. Ну и наличие Большой Важной Компании в резюме сейчас не говорит примерно ни о чем: все работодатели понимают, что такие пылесосят резюме как угорелые и потом выплевывают обратно на рынок кадров откровенно слабых специалистов с перегретыми ожиданиями по зарплате и раздутым ЧСВ. Конечно, это не правило, но такое бывает часто.

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

Про софт скиллы

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

Разработчики приходят и адски фейлят собеседование. Несмотря на то, что все, повторю, опытные. Почему так произошло? Да просто потому, что прохождение собеседований это такой же навык, как и любой технический.

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

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

Про то, как мы собеседуем клиентов

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

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

Более того, эти требования к клиенту могут меняться в зависимости от потребностей команды. Например, у нас был случай, когда разработчику Vue.js накидывали задачи по верстке. Это, конечно, было не тем, что он хотел делать и он нам об этом рассказал. В итоге мы нашли компромисс с заказчиком и разработчик стал получать задачи по Vue.

Петр, React-разработчик Holyweb

Особенность работы в моем проекте, это довольно крупная IT-компания их система безопасности, довольно хорошая. Поэтому у аутстафферов есть ограничения: во многие внутренние системы у нас просто нет доступа, невозможно посмотреть документацию. Раньше я много слышал об этой компании, а теперь лично для себя сделал вывод, что вряд ли пошел бы туда на другой проект или штатным сотрудником.

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


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

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

Дэннис, React-разработчик Holyweb

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

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

Итого, что дает программисту работа аутстаффером:

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

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

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

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

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

  6. Отношение к аутстафферу в команде проекта ровно то же, что и к своим разработчикам это просто выяснено на нашем опыте.

Понимаем, что у вас все равно остались вопросы так что пишите в комментариях или мне в Telegram.

Подробнее..

Иван Дёмшин, Head of Engineering в Miro, о продуктовой разработке, смене технологий и эволюции процессов в компании

27.07.2020 14:05:23 | Автор: admin
Это конспект интервью сИваном Дёмшиным, Head ofEngineering вMiro, про историю продукта икомпании, структуру продуктовой разработки, смену технологий нафронте ибэке, эволюцию тестирования, процесс найма иразвития инженеров.



Полную двухчасовую версию можно посмотреть на Ютуб-канале Хекслет.

Оглавление:
История продукта и компании
RealtimeBoard Miro

Как устроена продуктовая разработка
Рабочее окружение
Стек, монолит
Релизы

Выбор технологий и их эволюция
Flash Canvas
Angular React
Сервера и базы данных
Java
Эволюция тестирования
Рост нагрузки и рефакторинг

Процессы в разработке
Техническое решение и code review
Performance Review
Как устроен найм инженеров
Джуниор-позиции

История продукта и компании


Miro платформа для визуальной коллаборации ввиде бесконечной онлайн-доски (online collaborative whiteboard platform). Ключевое слово коллаборация, совместная работа, соответственно, ключевые метрики, покоторым мымеряем свою эффективность, количество коллаборативных досок иколлаборативных сессий, которые случаются впродукте.

Мыназываем себя платформой, потому что уже вышли зарамки просто продукта: унас есть открытый API, marketplace, кабинет разработчика, поэтому любая компания может расширять продукт под себя.

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



Яруковожу разработкой вMiro. Явырос вПерми ипродолжаю здесь жить. Компания исторически появилась вПерми, отсюда родом наши основатели. Большая часть нашего отдела разработки находится сейчас здесь, ав2019 году мызапустили иактивно развиваем второй инженерный офис вАмстердаме.

Раньше яработал взаказной разработке: начинал спостроения аналитических хранилищ данных вкачестве разработчика, потом проектировалих, азатем руководил большими проектами. В2016 году присоединился кMiro, когда вкомпании работало 30человек. Стех пор мысильно выросли: сейчас унас пять офисов, 400человек, изних 140инженеров.

image
Компания появилась в2011году. Первым нашим продуктом была интерактивная кафедра стачскрин-панелью для управления проектором, звуком ипрезентацией вбольших аудиториях. Пользователь фактически получал бесконечную доску, накоторую мог выкладывать контент, управлять имипоказывать аудитории. Это была визуальная коллаборация, ноотпервого лица, когда работал сконтентом один человек.

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

Примерно до2016 года все сотрудники работали вПерми. Пользователи сами платили заподписку, нокнам уже приходили компании ссотнями итысячами сотрудников, которые хотели заключить договора иполучать инвойсы. Для работы стакими компаниями нам нужны были продажники, поэтому мынаняли Head ofSales для создания sales-команды вАмерике.

Затем появился первый сотрудник Customer Success команды, вАмстердаме, и также начал строить свою команду.

Самой большой функцией у нас была и остаётся продуктовая разработка, которая сегодня составляет примерно половину компании.

Смена названия


Оребрендинг мызадумывались ещё в2015году, носделали его витоге в2018. Наше прежнее название RealtimeBoard длинное исложное. Внём часто допускали ошибки, сокращали доRTB или, что самое плохое, вообще его забывали. Кроме того, оно неэмоциональное, заним нет истории. Мыхотели сделать новое название коротким, ёмким, говорящим, запоминающимся.

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



Кновому названию быстро привыкли имы, ипользователи. Мыбыстро растём, поэтому несколько миллионов новых пользователей даже незнают отом, что мыназывались иначе. Приятным бонусом ребрендинга стали награды от European Design Awards за айдентику, которую мы разработали в рамках ребрендинга совместно с европейским агентством Vruchtvlees.

Как устроена продуктовая разработка в Miro


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

Мне раньше было сложно представить, что так много человек может работать над одним продуктом. Носегодня язнаю, что вUber, Slack иAtlassian над одним продуктом работают тысячи инженеров. Мыпродолжаем расти ипонимаем, что нас сейчас явно недостаточно, иследующая целевая точка вмоей голове 300 человек вразработке, апотом мыпродолжим расти дальше. Это непросто число изголовы. Унас есть стратегическое планирование, мыпонимаем, где мыхотим быть через два года, через пять лет ичто нам для этого нужно сделать.

Сточки зрения оргструктуры есть гильдии: фронтенд, бэкенд, QAитак далее. Для работы над проектами они объединяются вкросс-функциональные команды.

Команды распределяются по ключевым направлениям:
  • Горизонтальный продукт основная функциональность продукта, которую видят все пользователи: стикеры, текст, шейпы, фреймы и т.д.
  • Системное направление отвечает за core-платформу и инфраструктуру.
  • Growth всё про рост числа пользователей: активация, вовлечение, возврат, монетизация.
  • Enterprise доработка продукта для крупных компаний, у которых много специфических требований. Во-первых, тысячи и десятки тысяч их сотрудников пользуются Miro, а это значит что для их аккаунтов нужны разные права доступа и удобные инструменты управления ими. Во-вторых, есть международные стандарты качества и безопасности для SaaS-продуктов, которым мы должны соответствовать. Мы не делаем кастомизацию под конкретного пользователя, а выбираем, что необходимо сделать в соответствии со стандартами и требованиями большинства крупных пользователей.
  • Платформа мы запустили открытую бету в 2019 году. Уже есть открытый API, кабинет разработчика, marketplace, всё это нужно поддерживать и развивать, давать больше возможностей внешним разработчикам, которые хотят создавать для себя и других дополнительную ценность на базе нашего продукта.
  • Основные юзкейсы продукта новое направление, которое мы активно масштабируем. Пользователи приходят в продукт, чтобы решить конкретную задачу, но большинство способов, с помощью которых они её решают в Miro, можно объединить в несколько групп: Meetings & Workshops, Ideation & Brainstorming, Research & Design, Agile Workflows, Strategy & Planning, Mapping & Diagramming.

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


Рабочее окружение


Основной софт инженеров: IntelliJ Idea, Jira, Slack, Zoom, Miro, Confluence. Большинство сотрудников работают на MacBook, большинство инженеров на MacBook Pro, некоторым покупаем более мощные машины при необходимости.

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

Стек, монолит


Фронт у нас на Typescript, React и AngularJS. Бэкенд Java. Базы данных Redis, Postgres, для кластерного взаимодействия Hazelcast и ActiveMQ. Хостимся в Amazon, в одном дата-центре. В продакшене порядка 400 серверов. Application servers, которые обрабатывают доски пользователей, бывает до 100, всё автоматически оркестрируется.

Используем стек от Atlassian: Jira, Bitbucket, Bamboo и собственные скрипты, которые прикручены к Bamboo и позволяют всё раскатывать на сервера. Пока все релизы один большой релиз на фронт и один большой на бэк. Сейчас думаем, как сделать, чтобы этих релизов было больше.

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

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

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

Релизы


Сама сборка занимает 15-20 минут, включая выполнение юнит-тестов. End-to-end тесты могут выполняться до 40 минут. Весь процесс занимает полтора-два часа, чтобы довести мастер до релиза. Это долго, нам ещё есть над чем здесь поработать.

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

Выбор технологий и их эволюция


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

Маленькие компании, которые только начинают иищут product market fit, бегут быстро, быстро собирают MVP ибыстро ихвыбрасывают. Для них важнее найти рынок, анесоздать сложные технические решения. Нокогда рынок найден технические решения выходят напервый план, потому что позволяют создать запас прочности для роста ибезопасности.

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

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

Больших смен технологий у нас было несколько, на фронте и на бэкенде. Приведу несколько примеров.

Flash Canvas


До 2015 года весь фронт был на Flash, потом Flash начал умирать и мы перешли на HTML и Canvas. Смена стека хорошо сказалась на производительности и удобстве продукта, привела к заметному росту аудитории. Переход занял примерно год, это был большой и сложный проект. Статья про детали этого проекта.

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

Angular React


Последние пару лет мы постепенно переходим с Angular JS на React. Основные причины:
  • React позволяет лучше типизировать, а в дальнейшем это позволяет лучше рефакторить код и гарантирует, что ничего не отвалится.
  • React даёт больше возможностей для оптимизации приложений. Когда мы внедряли ленивую загрузку и разбивали тяжёлый монолит на фронте, Angular вставлял палки в колёса. Нам пришлось найти обходные пути для оптимизации загрузки с помощью Angular, а всё новое уже пишем на React, его же используем при глоабльном рефакторинге.
  • React хорош с точки зрения найма, так как найти разработчиков на Angular JS сильно сложнее.


Сервера и базы данных


В 2015 году мы перехали с арендуемых серверов Hetzner на хостинг в Amazon. Больше года идёт проект по переносу основной базы данных с Redis на PostgreSQL. У нас есть статьи об этом: проектное управление миграцией данных, создание отказоустойчивого кластера.

image

Наш кейс осложняется тем, что с Key Value хранилища мы переезжаем на SQL базу. Рефакторинга много. Важно делать всё так, чтобы приложение не останавливалось. Это как поменять колесо у едущей машины, потому что база данных фундамент, на котором стоит приложение. Непосредственно для контента досок мы реально делали всё без maintenance. Да, процесс перехода затянулся по времени, зато пользователи ничего не заметили, продукт работал.

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

Java


Java очень сильно помогает нам в плане производительности и ресурсов разработчиков, которые мы можем найти. Знаю, что Booking переходит с Pearl на Java, потому что они устали переучивать своих инженеров.

К нам приходят инженеры с С++ и DotNet и нормально адаптируются. Если ты опытный разработчик, пробовал разные технологии и знаешь, как строится система, то погрузиться в новый язык уже не так сложно. Главное, чтобы инженер придумывал правильные решения, а в язык закопаться он точно сможет, я верю в это.

Эволюция тестирования


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

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

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

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

image

Подробное описание всех этапов нашего QA-процесса.

Рост нагрузки и рефакторинг


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

Запас прочности понадобился не только на бэкенде, но и на фронтэнде и клиенте, так как в продукте возросло количество синхронных работ. Если раньше на одной доске могло работать одновременно 20 человек, то сейчас это 300 человек. Наши фронтэнд-инженеры много занималась и продолжают заниматься производительностью загрузки. Например, мы делаем так, чтобы dashboard со списком досок грузился отдельно от всего остального и делал это быстрее, чем раньше. А если пользователь переходит прямо на доску, не через dashboard, то должен грузиться код и контент доски, без всего остального.

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

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

Процессы в разработке


Техническое решение и code review


Любая задача начинается с подготовки продуктового решения. Продуктовое решение это ответ на вопрос Что мы будем делать?. Продакт-менеджер на основе продуктовой стратегии и OKRs проводит большое исследование, чтобы выяснить, чего сейчас не хватает пользователям в нашем продукте. На основе исследования продакт описывает решение. Продуктовая гильдия обсуждает решение, дорабатывает при необходимости.

На базе продуктового решения формируется техническое решение, которое отвечает на вопрос Как мы будем это делать?. Его разрабатывают инженеры команды, которая будет реализовывать функционал. Техническое решение проходит несколько процессов review:
  • с командами, с которыми есть пересечения в функциональности;
  • security review по компонентам, которые мы будем затрагивать в архитектуре;
  • как мы будем деплоить результат.

После начинается непосредственно разработка. Важно, чтобы code review не тормозил разработку, поэтому недавно вместо обязательного получения двух code review мы внедрили персональную ответственность на уровне компонентов. Теперь на уровне кода мы всегда знаем, кто отвечает за этот кусок, что сильно облегчает коммуникацию при разработке. Соответственно, как только ты внёс изменения в код, автоматически назначается reviewer, владелец этого кода. Если код твой, то review делает участник твоей команды.

Зачем мы ввели персональную ответственность? Раньше было несколько человек, старичков, которые знали, как работает весь продукт и могли проверить любой кусок кода. Но по мере роста продукта возможностей этих людей стало не хватать, они уже не могли знать про всё, что происходит в разработке. Процесс code review начал тормозить остальные процесса, было непонятно, к кому идти на code review. Тогда мы начали нести всю необходимую компетенцию по конкретным блокам продукта в команду, которая работает над ними. Так команды смогли проводить code review самостоятельно. В своё время это помогло нам сильно ускориться.

Performance Review


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

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

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



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

К сожалению, люди часто не успевают расти так же быстро, как компания это нормально. Мы готовы много инвестировать в обучение, потому что рост компании напрямую зависит от роста сотрудников. У нас есть компенсация внешних курсов, есть рекомендуемые курсы и менторы. Обязательное обучение компенсируем на 100% (например, английский язык), остальное стараемся компенсировать 50 на 50, чтобы была взаимная ответственность за результаты.

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

Как устроен найм инженеров


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

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

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

После скрининга тестовое задание, затем техническое интервью, которое включает в себя в том числе обсуждение тестового задания. Затем встреча с командой, в которой будет работать кандидат. Для нас это обязательный этап, потому что он помогает в первую очередь понять culture fit кандидата, а не его технические навыки.

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

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

Джуниор-позиции


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

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

Высокие требования при найме


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

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

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

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

22 сентября, Онлайн-митап Product Engineering Meetup 2 Культура разработки

17.09.2020 16:18:03 | Автор: admin
22 сентября мы проводим онлайн-митап Product Engineering Meetup #2 Культура разработки в продуктовых компаниях.

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

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

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

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

Регистрация доступна по ссылке, а подробности программы читайте под катом.



Доклады


История эволюции фичи: от MVP до одной из основных функциональностей продукта Евгений Жуков, Backend Developer (ManyChat)

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

Как перестать беспокоиться и начать верить А/Б тестам 2 Максим Кислов, Frontend Engineering Manager (Badoo)

После того как вы победили А/Б тесты и интегрировали их в свое рабочее окружение, кажется, что все позади. На самом деле приключение только начинается: у команды нет накопленной экспертизы, процессы не налажены, а бизнес хочет полагаться на А/Б тестирование для принятия ключевых решений и ожидает результатов. Я расскажу:

  • как организовать работу с А/Б тестами внутри компании;
  • как дать бизнесу ответ на вопрос ну как там наш тест?;
  • как определить границу ответсвенности техлида и разделить ответственность с продактом.

Инициатива не наказуема. Почему разработчика важно погружать в продуктовую жизнь Лаша Харчилава, Ведущий Менеджер Продукта (Работа.ру)

  • Что нужно сделать в первый день новому продакту, чтобы жизнь разработчика стала лучше.
  • Что такое продуктовый онбординг и зачем он разработчику.
  • Для чего нужны разработчики в краткосрочном и среднесрочном планировании продуктовых задач.
  • План к действию: есть проблема сначала спроси у разработчика.
  • Какая связь между разработчиками и результатами АБ-теста.

Как релиз продукта вышел на полгода позже, а пересмотр процессов разработки научил нас попадать в сроки Борис Герн, B2C Product Lead (Додо Пицца)

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

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

В презентации рассказывается о том, как команда одного из наших продуктов приходила к своему рабочему процессу:

  • Какие ошибки были совершены на старте
  • В какой момент мы поняли, что что-то идет не так
  • Какие шаги предпринимали, чтобы исправить ситуацию
  • Какие практики и процессы оказались рабочими, что мы используем сейчас
  • Какие выводы мы сделали и как планируем применить это в будущем

Участие


Встреча пройдёт онлайн, 22 сентября. Начало в 19:00.

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

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

Как организовать эффективное управление продуктом в b2b

21.02.2021 14:07:08 | Автор: admin

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

Поэтому c одной стороны время и затраты на начало пользования продуктом бизнесами значительно выше, чем на потребительском рынке. А с другой компаниям гораздо тяжелее отказаться от уже используемого продукта, чем отдельным пользователям. Кроме этого, входящий трафик в b2b и b2c сегментах существенно отличается: у второго он обычно значительно выше.

Я Group Product Manager компании iDeals, которая создает b2b-продукт виртуальные комнаты данных (VDR). В этой статье подробно расскажу о том, как мы выстроили продуктовый процесс и что делаем на каждом из этапов.

Для чего

Продуктовый процесс:

  • уменьшает субъективизм в принятии решений продуктовыми менеджерами,

  • упрощает понимание того, что и в какой момент времени необходимо делать,

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

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

Продуктовый процесс

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

Идея

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

  • анализа рынка и конкурентов;

  • качественных исследований пользователей и клиентов (интервью, опросы и т. д.);

  • количественных исследований пользователей и клиентов (Heap, Bigquery, Google analytics и т. д.);

  • обратной связи от потенциальных и нынешних клиентов и пользователей;

  • идей от стейкхолдеров или других команд;

  • внутренних запросов от других команд;

  • выводов после измерения показателей успеха.

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

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

Примеры идей:

Привет! А можно ли как-то увидеть все свои заметки из комнаты данных? Я бы хотел видеть их в одном месте, чтобы не кликать на разные файлы, для которых я их сделал.

Здравствуйте!

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

Гипотеза

Гипотеза отличается от идеи глубиной проработки. Обычно в ней 4 блока, которые по сути отвечают на следующие вопросы:

  1. Какая проблема решается? Идея в формате гипотезы, которая содержит информацию об аудитории, проблеме и условиях, когда она возникает.

  2. На кого повлияет? Более детальная информация об аудитории или персоне, которая испытывает проблему.

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

  4. Как сейчас решается проблема? Информация об обходном пути внутри продукта или за его пределами, с помощью которого сейчас решается проблема.

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

На этом этапе в процесс вступает приоритизация, которая призвана бороться с субъективизмом и ориентировать продуктовый процесс на работу только с самыми влиятельными и важными идеями. Для этого в iDeals мы используем модифицированный подход RICE от Intercom (Reach * Impact * Confidence / Effort), который дополнили еще одним параметром Strategy (S) и в итоге получили RICSE (Reach * Impact * Confidence * Strategy / Effort):

  • Reach (охват) определяет, на какое количество пользователей, транзакций или, в нашем случае, проектов (комнат) повлияет решение проблемы из гипотезы.

  • Impact (влияние) условный коэффициент того, как сильно решение проблемы из гипотезы повлияет на пользовательский опыт аудитории. Мы используем шкалу от 0 до 3 с шагом 0.25, каждый из шагов значит силу влияния: от 0 нет влияния, до 3 влияние огромное.

  • Strategy (стратегия) показывает, на сколько это решение ложится в наши долгосрочные планы. Мы используем три значения стратегии: 0,3 нет соответствия стратегии; 0,8 частичное соответствие; 1 полное соответствие.

  • Effort (трудозатраты) это высокоуровневая оценка, для которой мы используем числа Фибоначчи, к которым привязаны календарные периоды: 1 до 2 недель; 3 до месяца; 5 до квартала; 8 до двух кварталов; 13 два квартала и больше (или по факту, когда оценка крайне неточна, но понятно, что решение будет очень трудозатратным).

  • Confidence (уверенность) условный коэффициент уверенности во всех других показателях и может принимать значение от 0,1 до 1. Обычно мы используем шаг 0,2 для каждого показателя, в котором есть сомнения. Например, если мы не очень уверены в охвате, то уверенность 0,8, а если еще и во влиянии 0,6 и т.д.

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

Пример гипотезы:

Какая проблема решается?

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

На кого повлияет?

Пользователи с включенной двухфакторной аутентификацией, независимо от роли и прав доступа.

На что повлияет?

  • Уменьшение расходов на отправку кодов для двухфакторной аутентификации через СМС и звонки.

  • Уменьшение количества случаев, когда из-за невозможности доставить код пользователь не может войти в систему.

  • Повышение уровня удовлетворенности пользователей.

Как сейчас решается проблема?

Отключением двухфакторной аутентификации.

Валидация

При валидации мы пытаемся получить более правильную оценку всех показателей RICSE, а также максимально приблизить Confidence (уверенность) к 1. Таким образом, весь этап валидации это попытка оцифровать уверенность и оценить неопределенность. На данном этапе мы подключаем продуктового аналитика, вместе собираем данные и строим первые прогнозы по гипотезе.

Этот этап имеет два возможных пути решения:

  1. У нас есть все необходимые данные для подтверждения гипотезы и движения дальше.

  2. У нас нет данных для подтверждения гипотезы.

В первом случае мы проверяем ретроспективно, исходя из разных данных, которые у нас уже есть. Для этого используем типичные инструменты: Google Analytics, Heap, BigQuery; опросы для количественных данных, интервью, запросы и отзывы клиентов для качественных.

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

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

Гипотезы с наибольшей приоритизацией берутся в дальнейшую проработку.

Пример гипотезы и валидации:

Гипотеза

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

Данные для валидации:

По данным за 4-й квартал 2020-го года около 30% всех проектов имеют больше одного архива в формате ZIP, RAR или 7Z, но при этом только 1.7% из проектов с архивами хоть раз использовали функцию разархивации.

Решение (PRD)

Данный этап целиком и полностью посвящен самому решению и созданию product requirements document (PRD / документ с требованиями к продукту) и состоит из следующих шагов:

  • исследование рынка на предмет того, как лежащая в основе гипотезы проблема решается прямыми и непрямыми конкурентами, а также продуктами из других отраслей;

  • определение персон, которые являются покупателями и пользователями решения;

  • определение возможных флоу, которые являются характерными для разных персон;

  • создание пользовательских историй (user stories) для понимания полной картины и всех возможных нюансов;

  • обсуждение уже полученных наработок с технической командой на предмет того, является ли это все возможным, нужно ли проводить дополнительные технические исследования или создавать технические концепты (proof of concept);

  • детальная проработка пользовательского опыта и интерфейса (UX / UI);

  • проработки UX / UI и консультации с технической командой могут быть итеративными;

  • создание динамических прототипов для подтверждения жизнеспособности и удобства разработанного решения с реальными или максимально похожими по профилю пользователями;

  • определение необходимых маркетинговых активностей: коммуникация через имейл / продукт; материалы для маркетинг-сайтов, влияние на прайсинг и планы и т.д.;

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

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

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

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

Таким образом получается, что формула RISCE: React * Impact * Strategy * Confidence / Effort получает подтверждения по всем элементам и гипотезы / решения вновь приоритизируются уже учитывая все переменные в формуле.

Дорожная карта (Roadmap)

В конце каждого квартала продуктовые менеджеры вместе с инженерными менеджерами и командами составляют дорожную карту (Roadmap) на ближайший квартал для каждой технической команды (их у нас 6). В нее попадают уже подготовленные решения. Иногда и гипотезы для технической или продуктовой проработки, которые имеют наивысшие значения приоритета по RICSE.

Также мы оставляем часть инженерного времени (до 15-20%) на доработки, связанные с инструментами для внутренних потребителей (команды поддержки, продаж и тд.), техническим долгом и идеями, которые не имеют твердого подтверждения данными, но кажутся перспективными.

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

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

Имплементация

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

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

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

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

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

Верификация

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

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

Вывод

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

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

Как устроен продуктовый процесс в вашей компании? Делитесь в комментариях!

P.S. Спасибо Дмитрию Ковалю за помощь в подготовке статьи.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru