Подобно хорошему дому, сложный сайт нуждается в проекте! Сайт без проекта - это лишние тысячи строк кода на реализацию фич которые не приводят к цели, переделки, костыли, рудименты в результате изменений архитектуры. Поэтому я начинаю каждый уникальный проект с технологии, описанной в книге Аджича Гойко "Impact Mapping: Как повысить эффективность программных продуктов и проектов по их разработке". Хочу рассказать почему выбрал этот метод из десятка других.
6 причин полюбить impact mapping
Как строить impact map
Теперь, когда мы знаем почему impact map так хорош расскажу как его строить. Как видно из названия impact map - это карта, и по сути для её построения подходит любой инструмент для Mind Map, лично я использую облачный сервис MindMaster.com
Шаг 1. Цель
Построение карты начинается с цели, которую должен помочь достичь веб-сервис. Это самый важный этап, т.к. именно от цели в большей степени зависит в какой точке мы окажемся. Это как самолёт: мельчайшее отклонение от курса вначале даст огромную разницу в конце пути. Поэтому отнеситесь к постановке цели с особой тщательностью. Я использую для постановки цели технологию SMART
SCPECIFIC - цель должна быть конкретной.
❌ Не правильно: "улучшить качество обслуживания"
✔ Правильно: "создать журнал электронный записи клиентов"
MESSURABLE - цель должна быть измеримой, чтобы было видно, когда мы её достигли.
❌ Не правильно: "увеличить количество клиентов"
✔ Правильно: "наш сервис должен приносить 25 клиентов в месяц"
ACHIEVABLE - цель должна быть достижимой, причём в пределах доступных Вам ресурсов!
❌ Не правильно: "одному создать свой аналог в контакте с блекджеком"
✔ Правильно: "выделить 80 часов и создать за это время сервис в пределах своей компетенции "
RELEVANT - цель должна быть уместной и желаемой для целевой аудитории.
❌ Не правильно: "сервис доставки бахил для салонов красоты" - проблема доставки бахил надумана, в действительности не беспокоит администраторов.
✔ Правильно: "создать журнал электронный записи клиентов, интегрировать с CRM для доп. продаж"
TIME BOUND - цель должна быть ограничена во времени. Это бывает сложно принять, но только ограничение по времени даёт понять правильно выбрана цель или нет. В случае если наступает дата Х и цель не достигнута нужно принять решение: перенести дату, модифицировать цель или отказаться от неё.
Шаг 2. Роли
Когда цель поставлена, нужно определиться с целевой аудиторией, кто заинтересован в достижении цели?! В impact mapping'e принято выделять собирательный образ, аватар клиента, это должен быть типичный представитель целевой аудитории, только вымышленный, а не реальный человек, чтобы избежать субъективного искажения приоритетов (если конечно вы не делается проект ради одного пользователя)
Ролей не должно быть слишком много, как правило не более 7: пол, возраст обычно не имеют большого значения, главное - какую задачу решает человек.
❌ Не правильно: "мужчина 50 лет"
✔ Правильно: "парикмахер"
Если в процессе проектирования Вы встретите несколько целевых аудиторий с одинаковыми задачами, в качестве роли стоит оставить наиболее специфическую. Например: когда Аллен Купер проектировал интерфейс для планшета в пассажирских авиа-перевозках, он выбрал в качестве роли пожилого Джека с плохим зрением и артритом, и исходя из этого спланировал интерфейс, при этом все прочие сегменты ЦА могут без труда пользоваться этим интерфейсом!
Один и тот же человек иногда играет в системе разные роли, например автор блога:
- Писатель
- Редактор
- Модератор
Чтобы понять потребности персонажа я стараюсь вжиться в его роль, буквально увидеть мир его глазами. Для этого полезно ответить на следующие вопросы:
- Что мы о нём знаем?
- Что ему важно?
- Какие у него проблемы?
- Что помогло бы решить эти проблемы?
Шаг 3. Ключевые действия
Когда мы выделили роли стоит задать вопрос: как данный персонаж достигнет цели при помощи нашего решения?! Ответом будут ключевые действия, которые выполняет пользователь - в оригинале тот самый impact, в честь которого и назван метод 😊
Например для знакомого нам журнала электронной записи клиентов у парикмахера ключевыми действиями будут:
- Записать клиента на стрижку
- Донести ценность своей работы
- Составить рабочий график
ит.п.
Шаг 4. Пользовательские истории
И наконец, последним этапом построения impact map будут пользовательские истории - сценарии взаимодействия пользователя с проектируемым сервисом. Что конкретно должен сделать парикмахер Виталий, чтобы записать клиента на стрижку?! В нашем примере может быть несколько историй:
- Проверить рабочий график
- Выбрать время для клиента
- Создать профиль клиента
- Выбрать клиента из существующих
Некоторые связанные с этим действием истории имеют отношение уже к клиенту Виталия, например:
- Получать напоминания о предстоящей стрижке
- Оставить отзыв
Для построения историй удобно использовать скетчи.
Постарайтесь уйти от проработки деталей и сконцентрироваться на сути: кратчайшем пути совершения ключевого действия, тогда есть шанс найти не очевидные выигрышные решения. Однако так-же бывает полезно использовать общепринятые элементы управления, чтобы сократить период обучения работе с системой - сохраняйте баланс: если пользователь будет работать с системой длительное время - можно подумать о уникальных, удобных для него функциях, а если ему необходимо однократно выполнить несколько действий, например заказать услугу, то постарайтесь сделать эти действия наиболее очевидными и интуитивными.
Что делать после impact map?!
Когда все пользовательские истории готовы - самое время перейти к планированию разработки - сформировать BackLog!
Каждая пользовательская история становится тикетом. Далее нужно оценить техническую трудоёмкость и важность истории и на основании двух этих параметров вычислить бизнес-вес:
1) Нормализуем трудоёмкость до коэффициента от 1 до 5, где 5 - очень сложно, 1 - очень просто
2) Выставим важность от 1 до 5
3) Бизнес вес = Важность \ Трудоёмкость
В результате, на основании бизнес веса мы сможем выставить приоритеты и сформировать спринт - но это уже история для совсем другой статьи про гибкую методологию разработки Agile.
Пример проектирования реального стартапа - MyTeamCode
Для закрепления материала хочу показать пример применения Impact Map на реальном стартапе, которым сейчас занимаюсь.
Знакомьтесь MyTeamCode - социальная сеть для обучения программированию, где вы сможете практиковаться на разработке собственных стартапах в команде единомышленников!
Чего мы хотим достичь?!
Коллективного обучения программированию на стартапах
Почему это важно?!
- Мотивирует
- Позволяет обходить тупики
- Обучая другого сам осознаёшь материал
- Соответствует реальной работе
- Позволяет приобрести опыт
Как мы узнаем что этого достигли?!
- Ученики сформируют 5 команд, которые реализуют MVP своих проектов
Роли, ключевые действия и истории вы можете увидеть на ImpactMap выше. А весь процесс разработки MyTeamCode подробно показан в моём курсе:
ПИШЕМ СОЦ. СЕТЬ НА DJANGO - ОБУЧЕНИЕ НА ЖИВОМ СТАРТАПЕ #1 СПРИНТ
Некоторые материалы в нём доступны бесплатно, в том числе и видео по разработке ImpactMap! А сам курс ещё монтируется, поэтому сейчас его можно приобрести со скидкой 50%! Присоединяйтесь!
Благодарю за уделённое мне время 🙏 Если у Вас остались вопросы по теме статьи - задавайте в комментариях, постараюсь ответить 👇
А чтобы быть в курсе самых интересных технологий в мире веб-разработки - ставьте лайк 👍 и подписывайтесь на "Записки стартапера"! 💖 Огромной Вам удачи и до встречи в следующих материалах!