Добавить в корзинуПозвонить
Найти в Дзене

Пример Impact Mapping'а или как проектировать сайты

Подобно хорошему дому, сложный сайт нуждается в проекте! Сайт без проекта - это лишние тысячи строк кода на реализацию фич которые не приводят к цели, переделки, костыли, рудименты в результате изменений архитектуры. Поэтому я начинаю каждый уникальный проект с технологии, описанной в книге Аджича Гойко "Impact Mapping: Как повысить эффективность программных продуктов и проектов по их разработке". Хочу рассказать почему выбрал этот метод из десятка других. 6 причин полюбить impact mapping Как строить impact map Теперь, когда мы знаем почему impact map так хорош расскажу как его строить. Как видно из названия impact map - это карта, и по сути для её построения подходит любой инструмент для Mind Map, лично я использую облачный сервис MindMaster.com Шаг 1. Цель Построение карты начинается с цели, которую должен помочь достичь веб-сервис. Это самый важный этап, т.к. именно от цели в большей степени зависит в какой точке мы окажемся. Это как самолёт: мельчайшее отклонение от курса вна
Оглавление

Подобно хорошему дому, сложный сайт нуждается в проекте! Сайт без проекта - это лишние тысячи строк кода на реализацию фич которые не приводят к цели, переделки, костыли, рудименты в результате изменений архитектуры. Поэтому я начинаю каждый уникальный проект с технологии, описанной в книге Аджича Гойко "Impact Mapping: Как повысить эффективность программных продуктов и проектов по их разработке". Хочу рассказать почему выбрал этот метод из десятка других.

6 причин полюбить impact mapping

-2

Как строить impact map

Теперь, когда мы знаем почему impact map так хорош расскажу как его строить. Как видно из названия impact map - это карта, и по сути для её построения подходит любой инструмент для Mind Map, лично я использую облачный сервис MindMaster.com

-3

Шаг 1. Цель

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

Расшифровка аббревиатуры SMART
Расшифровка аббревиатуры SMART

SCPECIFIC - цель должна быть конкретной.

❌ Не правильно: "улучшить качество обслуживания"

✔ Правильно: "создать журнал электронный записи клиентов"

MESSURABLE - цель должна быть измеримой, чтобы было видно, когда мы её достигли.

❌ Не правильно: "увеличить количество клиентов"

✔ Правильно: "наш сервис должен приносить 25 клиентов в месяц"

ACHIEVABLE - цель должна быть достижимой, причём в пределах доступных Вам ресурсов!

❌ Не правильно: "одному создать свой аналог в контакте с блекджеком"

✔ Правильно: "выделить 80 часов и создать за это время сервис в пределах своей компетенции "

RELEVANT - цель должна быть уместной и желаемой для целевой аудитории.

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

✔ Правильно: "создать журнал электронный записи клиентов, интегрировать с CRM для доп. продаж"

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

Шаг 2. Роли

Когда цель поставлена, нужно определиться с целевой аудиторией, кто заинтересован в достижении цели?! В impact mapping'e принято выделять собирательный образ, аватар клиента, это должен быть типичный представитель целевой аудитории, только вымышленный, а не реальный человек, чтобы избежать субъективного искажения приоритетов (если конечно вы не делается проект ради одного пользователя)

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

Пример роли для журнала электронной записи клиентов
Пример роли для журнала электронной записи клиентов

❌ Не правильно: "мужчина 50 лет"

✔ Правильно: "парикмахер"

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

Один и тот же человек иногда играет в системе разные роли, например автор блога:

  • Писатель
  • Редактор
  • Модератор

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

  • Что мы о нём знаем?
  • Что ему важно?
  • Какие у него проблемы?
  • Что помогло бы решить эти проблемы?

Шаг 3. Ключевые действия

Когда мы выделили роли стоит задать вопрос: как данный персонаж достигнет цели при помощи нашего решения?! Ответом будут ключевые действия, которые выполняет пользователь - в оригинале тот самый impact, в честь которого и назван метод 😊

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

  • Записать клиента на стрижку
  • Донести ценность своей работы
  • Составить рабочий график

ит.п.

Хорошей идеей для формирования ImpactMap будет доска со стикерами
Хорошей идеей для формирования ImpactMap будет доска со стикерами

Шаг 4. Пользовательские истории

И наконец, последним этапом построения impact map будут пользовательские истории - сценарии взаимодействия пользователя с проектируемым сервисом. Что конкретно должен сделать парикмахер Виталий, чтобы записать клиента на стрижку?! В нашем примере может быть несколько историй:

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

Некоторые связанные с этим действием истории имеют отношение уже к клиенту Виталия, например:

  • Получать напоминания о предстоящей стрижке
  • Оставить отзыв

Для построения историй удобно использовать скетчи.

Скетчи помогают визуализировать пользовательские истории
Скетчи помогают визуализировать пользовательские истории

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

Что делать после impact map?!

Когда все пользовательские истории готовы - самое время перейти к планированию разработки - сформировать BackLog!

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

1) Нормализуем трудоёмкость до коэффициента от 1 до 5, где 5 - очень сложно, 1 - очень просто

2) Выставим важность от 1 до 5

3) Бизнес вес = Важность \ Трудоёмкость

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

Пример проектирования реального стартапа - MyTeamCode

Для закрепления материала хочу показать пример применения Impact Map на реальном стартапе, которым сейчас занимаюсь.

Знакомьтесь MyTeamCode - социальная сеть для обучения программированию, где вы сможете практиковаться на разработке собственных стартапах в команде единомышленников!

Impact Map MyTeamCode Часть 1
Impact Map MyTeamCode Часть 1
Impact Map MyTeamCode Часть 2
Impact Map MyTeamCode Часть 2

Чего мы хотим достичь?!

Коллективного обучения программированию на стартапах

Почему это важно?!

- Мотивирует

- Позволяет обходить тупики

- Обучая другого сам осознаёшь материал

- Соответствует реальной работе

- Позволяет приобрести опыт

Как мы узнаем что этого достигли?!

- Ученики сформируют 5 команд, которые реализуют MVP своих проектов

Роли, ключевые действия и истории вы можете увидеть на ImpactMap выше. А весь процесс разработки MyTeamCode подробно показан в моём курсе:

ПИШЕМ СОЦ. СЕТЬ НА DJANGO - ОБУЧЕНИЕ НА ЖИВОМ СТАРТАПЕ #1 СПРИНТ

Некоторые материалы в нём доступны бесплатно, в том числе и видео по разработке ImpactMap! А сам курс ещё монтируется, поэтому сейчас его можно приобрести со скидкой 50%! Присоединяйтесь!

Благодарю за уделённое мне время 🙏 Если у Вас остались вопросы по теме статьи - задавайте в комментариях, постараюсь ответить 👇

А чтобы быть в курсе самых интересных технологий в мире веб-разработки - ставьте лайк 👍 и подписывайтесь на "Записки стартапера"! 💖 Огромной Вам удачи и до встречи в следующих материалах!