Skip to content

Latest commit

 

History

History

assignment

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Задания — Product Flow Assignment

С помощью «Product Flow Assignment» вы можете быстро составить задание на разработку продукта либо услуги. Подходит для самостоятельного использования или внутри команды, с внутренним или внешним заказчиком.

Подсистема «Product Flow Assignment» даёт инструменты для описания результата работы в виде задания, но нарочно избегает учёта задач и не может заменить таск-трекер. Если вам нужен учёт задач или заказов, то используйте Product Flow Assignment совместно с Product Flow Tasks, либо с любым другим таск-трекером: Trello, Asana, GitHib Issues, etc.

Чем задания отличаются от задач, проектов и заказов

Product Flow Assignment даёт инструменты для учёта заданий, но нарочно избегает учёта задач, проектов и заказов. Во-первых, не всем такой учёт нужен. В малых командах можно прекрасно жить и без него. Чем меньше бюрократии — тем лучше.

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

Задание может существовать отдельно от задачи. Например, если вы строите дом, то архитектор может начертить вам общий план строения -- подготовить задание ещё до того, как бригада строителей приступит к работе. Более того, архитектор может подготовить несколько разных планов строения (задания), но строить вы будете только что-то одно.

С чего начать

Product Flow Assignment многое заимствует из Jobes To Be Done (JTBD). Полезная литература по теме:

Шаблоны

Концепт

Шаблон:

${название сущности}: !concept
  определение: |
    Короткий ответ на вопрос "Что это такое?" …

  ${название примера}: !example |
    Описание ситуации …

  # Заложенная на будущее точка расширения функциональности.
  # Отмечается тегом !extension
  ${название расширенного примера}: !extension |
    Описание ситуации …

  # Пример того, чего точно быть не может. Показывает где заканчивается эта сущность и начинается другая.
  # Например, для "Машинного масла" мы можем исключить ситуацию "Жидкость для утоления жажды".
  # Отмечается тегом !exclusion
  ${название исключения}: !exclusion |
    Описание ситуации …

Вот пример с концепциями сайта менторов Девмана:

Программа обучения: !concept
  определение: Программа обучения — это большой список учебных задач для ученика.
  Общая программа: !example |
    По одной программе обучения проходят обучение сразу несколько учеников. Один мог начать занятия
    месяц назад, а другой — сегодня, поэтому прогресс у них разный, но план занятий — общий.
  Python: !example |
    Программа обучения по Python рассчитана включает в себя уроки на сайте dvmn.org, упражнения
    sql-ex.ru и командные проекты.
  JavaScript: !extension |
    Программа обучения готовит не питонистов, а фронтендеров.
  Fullstack: !extension |
    Программа обучения включает сразу два языка программирования: Python и JavaScript.
  Академическая гребля: !extension |
    Программа обучения готовит не IT-шников, а спортсменов, у которых нет
    ни привычных "языков программирования", ни "стека технологий".
  Обучение без конца и края: !exclusion |
    Программа обучения обязана быть ограничена по учебному времени. Если у обучения нет сроков, то и в создании
    программы обучения смысла мало.

Учебный час: !concept
  определение: |
    Учебный час — это усреднённый по всем ученикам показатель. Если Петя прошёл урок за 3 часа,
    а Вася — за 5, то считаем, что урок занимает 4 учебных часа. Дальше эти учебные часы умножаются
    на хитро рассчитанный индивидуальный коэффициент, чтобы оценить сколько времени потребуется Пете, а сколько — Васе.

Учебная неделя: !concept
  определение: |
    Учебная неделя длится семь календарных дней, но начинается не обязательно в понедельник.
  Cо среды по вторник: !example |
    Учебная неделя длится со среды по следующий вторник включительно.
  Индивидуально: !example |
    У разных учеников учебная неделя стартует в разные дни календарной недели. У Пети — со вторника, а
    у Сергея — с воскресенья.
  Не семь дней: !exclusion |
    Ни праздники, ни болезни, ни академы — ничто не влияет на продолжительность учебной недели с точки
    зрения «Сайта менторов».
    Она всегда семь календарных дней.

Роль

Шаблон:

${название роли}: !role
  мотивация:
      - Чего хочет роль …
      - Чего ещё, бывает, хочет …
  старт: …  # Точка, с которой роль обычно начинает взаимодействие с продуктом

  ${название примера}: !example |
    Описание ситуации …

  # Заложенная на будущее точка расширения функциональности.
  # Отмечается тегом !extension
  ${название расширенного примера}: !extension |
    Описание ситуации …

  # Пример того, чего не может быть. Показывает где заканчивается эта роль и начинается другая.
  # Например, для "Администратора сайта" мы может исключить ситуацию "Разработчик сайта", считая их
  # разными ролями.
  # Отмечается тегом !exclusion
  ${название исключения}: !exclusion |
    Описание ситуации …

Вот пример с ролями сайта менторов Девмана:

Ментор: !role
  Мотивация:
    - Управлять процессом обучения ученика от недели к неделе
  Старт: Главная страница сайта менторов
  Ментор нулевичков: !example |
    Менторит нулевичков — учеников без опыта программирования. 
  Ментор новичков: !example
  Ментор джунов: !example
  Ментор универсал: !example |
    Менторит как нулевичков, так и новичков с джунами.

Глава подразделения менторов: !role
  Мотивация:
    - Организовать эффективную работу подразделения менторов
  Старт: Главная страница сайта менторов

Заказчик обучения: !role
  Мотивация:
    - Выполнить обязательство перед учениками по организации обучения
    - Делегировать занятия с учеником ментору
    - Обеспечить учеников менторами
    - Не платить лишние деньги за обучение
  Старт: Главная страница сайта менторов

Функция

Шаблон:

${название роли} — ${что хочет сделать с помощью продукта}: !func
  ${название истории}: !story
    ситуация: 
    успех: 
    отказ: 
    что понадобится:
      - ${продукт}. ${функция}

  # Заложенная на будущее точка расширения функциональности.
  # Отмечается тегом !extension
  ${название истории}: !extension
    ситуация: 

  # Пример того, чего точно быть не может. Показывает где пролегает та граница функциональности, за которую
  # не следует выходить. Решение о такой границе (scope) принимает product owner.
  # Отмечается тегом !exclusion
  ${название истории}: !exclusion
    ситуация: 

Пример функций для процесса авторизации на сайте:

Пользователь сайта — Войти в аккаунт: !func
    Войти по почте: !story
        ситуация:
            - Уже зарегистрирован, есть аккаунт
            - Регистрировался по почте через письмо с подтверждением
            - Не авторизован на сайте
        старт: Клик по ссылке на урок из закрытой части сайта
        успех:
            - Зашёл на страницу сайта
            - Вижу, что URL текущей страницы совпадает с адресом ссылки
        что понадобится:
            - Пользователь сайта — Подтвердить email по ссылке с токеном

    Войти через GMail: !extension
        ситуация:
            - Уже зарегистрирован, есть аккаунт
            - Регистрировался через GMail
            - Не авторизован на сайте

     Забыл пароль: !story
        ситуация:
            - Уже зарегистрирован, есть аккаунт
            - Регистрировался по почте через письмо с подтверждением
            - Не авторизован на сайте
            - Забыл пароль
        старт: Клик по ссылке на урок из закрытой части сайта
        успех:
            - Зашёл на страницу сайта
            - Вижу, что URL текущей страницы совпадает с адресом ссылки


Пользователь сайта — Подтвердить email по ссылке с токеном: !func
    Ссылка протухла: !story
        старт: Открытое в почтовом клиенте письмо с предложением подтвердить email.
        отказ:
            - Вижу сообщение о протухшей ссылке
            - Вижу предложение зарегистрироваться заново
            - Вижу ссылку для перехода к регистрации

    Email подтверждён: !story
        старт: Открытое в почтовом клиенте письмо с предложением подтвердить email.
        успех:
            - Вижу сообщение о подтверждённой почте
            - Вижу предложение авторизоваться
            - Вижу ссылку для перехода к авторизации

    Отключены ссылки в почтовом клиенте: !exclusion
        ситуация:
            - Пользователь отключил в своём почтовом клиенте поддержку ссылок в письмах