Эта статья покажет, как использовать графически-текстовые методы для структуризации процессов и разработки ПП как при продуктовом подходе, так и при проектном. Данный подход является классическим водопадным, но с применением элементов, заимствованных из Agile. В Waterfall модели есть 6 ступеней: пресейл (да, да, да пресейл не часть водопада, а часть воронки продаж, но мы ее рассмотрим вкупе, т.к. без него никуда), обследование, моделирование, проектирование, разработка и внедрение.

Проблемы, с которыми сталкиваемся

Я Team Lead и Бизнес-Архитектор компании ПервыйБит. По специфике нашей компании мы занимаемся крупными корпоративными проектами по внедрению комплексов программных продуктов. Зачастую мы сталкиваемся сразу со множеством проблем. Давайте по порядку разберем эти проблемы:

1.       Как оценить проект на стадии Пресейла?

Классика (ну по крайней мере в нашей компании)

Зачастую к нам приходят заказчики (в основном российские) с запросом: «Мы хотим внедрить ERP решение». Поскольку мы занимаемся в основном 1С, то это обычно бухгалтеры, причем цель перехода они объяснить не могут. Часто это просто кто-то что-то не может сделать и думает: «А ERP ведь может все…» или собственник сказал: «Мы ведь не хуже западных компаний, но SAP дорого (да и сбежал из России), а вот ERP от 1С это по нашему бюджету».

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

В итоге мы назначаем платное «Экспресс»-обследование (в кавычках, так как это минимум 2, а то и 8 недель) или аудит (тоже платный), ну или на крайний случай, если они не хотят платить деньги за данные услуги, считаем по экспертному методу. Я внедрял ПО на похожих предприятиях и примерно знаю, сколько времени нужно на проект и сколько стоит каждый контур (естественно закладываем риски).

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

Я стал ИТ-специалистом не так давно (3-5 лет назад), до этого я был 15 лет начальником производства на предприятии по производству оборудования для государства и мне приходилось работать с разными людьми (алкоголики на производстве, саботажники, бездельники, формалисты и т.д.), так что я умею работать с разными людьми и имею право так писать.

Да, бывает, что западные компании переходят на российский софт (ну сбежал SAP, ничего не поделаешь). Они дают ТЗ на 100500 страниц, где описано, как это сделано в SAP, и плюс еще приврали (ну им кажется, так будет лучше работать) и конечно, они расскажут вам, как все это нужно и назначат тендер… В итоге функциональности выше крыши (как следствие и пилить типовое решение уууу как долго…). Даже если ты выиграешь, они потом при реализации скажут: «Ой, мы упустили это в ТЗ, но вы ведь профессионалы и должны были предусмотреть, что это не склеится в единую структуру…»

Итог всего: или мы закладываем стоимость Bugatti Bolide (и все равно можем промахнуться), или сильно условная цена после экспертной оценки.

Как я предлагаю делать

Просите организовать встречу с бизнесом (всех сразу) буквально на 2 часа (ну проект от 10-15 млн., смогут оторвать людей на 2 часа) и вы с ними в быстром темпе накидываете цепочки событий (это и есть USM). Выглядит это примерно так (мы пользуемся приложением StoryMap прямо в JIRA):

  • Сверху идут процессы;

  • под ними идут действия;

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

Первый этап составления USM
Первый этап составления USM

Задача этой сессии — просто записать все процессы и обозначить шаги, но это не так просто, как может показаться, тут еще важна последовательность. Надо выстраивать процессы в той последовательности, в которой они идут (благо в инструменте есть Drag&Drop, и все легко перетаскивается, если вы захотели что-то поменять).

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

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

2.      Как понять специфику бизнеса и взаимосвязи между контурами (Обследование)?

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

Классика (ну по крайней мере, в нашей компании)

  • Отправляем ряд аналитиков, которые обследуют каждый свой контур;

  • аналитики провели интервьюирование, получили ряд протоколов;

  • архитектор проекта, если он не смог присутствовать на всех встречах, по этим протоколам рисует себе «картину жизни» в компании (допустим, архитектор почти все понял);

  • аналитик рисует схему процессов AS IS в IDEF0 по своему контуру;

  • архитектор проекта по этим схемам и описаниям подтверждает, правильно ли он ранее понял структуру или нет, и на основании этого всего добра архитектор строит модель AS IS по компании (и если он не прав, а часто ошибки там все равно есть, то никто его не поправит, т.к. пользователи бизнеса, которые проверяют, ничего не понимают в нотации IDEF0, но скажут вам: «Да, все верно», они ведь «образованные» и видят, что все верно);

  • далее аналогично с моделью ShouldBe;

  • и в итоге архитектор выдает целевую архитектуру и дорожную карту развития (от старта проекта это занимает от 1 до 3 месяцев).

Как я предлагаю делать

  • Первым делом, если была составлена USM на пресейле, собираемся «кружком» проектной команды и пересматриваем видео с сессии создания User Story Map и тех, кто там не присутствовал, погружаем в специфику (обязательно здесь появятся вопросы: что, как и почему. Все это тщательно фиксируем на следующем уровне карты (обычно для таких вопросов я в Jira ставлю тип «история» или «вопрос», а для ответов или фиксации реальных требований «задачу»). Эти вопросы вы зададите бизнесу. Когда получите ответ, не стесняйтесь завести новую задачу, а эту удалить после получения ответа. Карта — это рабочий инструмент, а не свалка идей и вопросов (на этом очень многие обжигались и тонули в куче карточек). На командной встрече вы уже сможете, не начиная обследования, понимать общую картину, с чем столкнётесь. И когда аналитики разбегутся по контурам на интервьюирование ключевых пользователей, они начнут заполнять этот нижний уровень карты (не отменяйте протокол, помните, карта — это ваш инструмент, а протокол — это то, что проверяет и подтверждает заказчик);

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

  • после того, как интервью закончено, наступает время отрисовки и описания процессов AS IS. И тут нам приходит на помощь USM, ведь когда мы рисовали карту и двигали карточки таким образом, чтобы у нас образовывались последовательные истории, мы получили почти IDEF0 (тут меня наверно чем-то закидают методологи… ну допустим «помидорами», но я скажу). Абстрагируйтесь и возьмите верхний уровень карты. На что похожа предыдущая история? Это вход, сверху – пользователи (ну в IDEF0 их надо вниз), следующая история — это выход из предыдущей. Да, это не совсем IDEF0, но по нему вы легко нарисуете (что-то объединив, что-то декомпозировав) и самое главное, по USM архитектор легко сведет общий AS IS;

  • далее, обратившись к уровню ниже, мы увидим функции, которые клиент хочет получить, и легко нарисуем процесс ShouldBe (в нашей компании мы отрисовываем в BPMN 2.0);

  • далее, поскольку архитектор видит всю картину целиком и на схемах, и в USM, он уже более корректно может выбрать целевую архитектуру и создать дорожную карту;

  • и тут последний «гвоздь» - срок на такое мероприятие в разы меньше чем в «классике».

3.       Что моделировать (Моделирование)?

Вот мы сделали документацию и теперь-то нам уже не нужна USM? И опять я скажу, что нет, она нам нужна даже больше, чем до этого момента.

Классика (ну по крайней мере в нашей компании)

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

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

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

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

  • архитектор создает отчет по моделированию.

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

Как я предлагаю делать

  • Кейс у вас уже есть, кейсы для моделирования — это USM. Все, что нужно команде, это собраться и распределить кто что показывает;

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

  • аналитики наполняют базу примерами (данные примеры формируют сквозную цепочку операций согласно USM), в результате у заказчика будет сквозной пример;

  • при демонстрации у нас под рукой USM, на основе которой мы можем проговорить функциональность и не забыть ее. Обычно те истории, которые показаны или обсуждены в рамках моделирования, меняют статус на «Принято в типовом функционале», если удовлетворили заказчика в типовом варианте или «Принято к разработке», если заказчик подтвердил, что данная функциональность требуется именно в том виде, в котором она может быть получена только после доработки (обычно сразу ставим приоритет, «Высокий» это MVP, «Средний» в рамках проекта, «Низкий» на развитие системы);

  • далее в договоренности переносится почти вся USM (ведь она у нас уже ранжирована и подтверждена);

  • формирование финального отчета является формальностью.

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

4.       Проектирование и разработка (эти 2 этапа я традиционно объединяю)

«Ну уж тут без ЧТЗ не обойдешься», скажут многие и опять будут не правы. Хотя я и не говорю, что ЧТЗ не нужно, ладно, дальше почитаете и поймете.

Классика (ну по крайней мере в нашей компании)

  • Аналитик пишет огромный трактат (как вы помните, функциональность обсуждалась давно и что-то могло забыться, особенно если на моделировании вскользь коснулись), который должен проверить заказчик. Если аналитик не начинающего уровня, он пишет с привязкой к объектам системы (вплоть до регистров). Когда пользователь получает эту штуку на проверку, ну надо же подтвердить, что требование верное, он приходит в ужас и говорит: «Да это то, что нужно!» (аналитик же говорит, что это то, что заказали) и тут все вспоминают картинку с качелями, но я приведу другую (надо же разбавить стереотип);

Доработка функциональности
Доработка функциональности
  • далее разработчик берет в работу, и вуаля – хобот;

  • аналитик тестирует;

  • тестировщик тестирует;

  • показывают пользователю, а он говорит, что это не то.

Даже не буду комментировать это.

Как я предлагаю делать

Ну тут даже расписывать не буду, все очень просто. Когда аналитик работает с программистом, он для него пишет краткое ТЗ, далее они по USM проходятся, ну конечно, не по всей карте от и до, но по основным моментам. И по этой карте аналитик погружает программиста в специфику проблемы, что есть, что будет и как это должно произойти. В процессе этой беседы аналитик с программистом декомпозируют задачу, или группу задач, в мелкие «камушки». После получения мелких камней с техническими тонкостями, аналитик корректирует ТЗ и определяет MVP конкретной доработки. Я обычно делаю через релизы JIRA, MVP это первый, и далее еще 1 релиз, в нем всегда одна карточка «Проверил, проверь еще». Потом уже релизы делаются на дополнительные «бантики» и удобство пользователя. Каждый релиз вы демонстрируете пользователю и обязательно просите сделать минимум 3-4 документа или что там дорабатывалось.

5.       Наконец внедрение

Тут не буду вас путать классикой, просто расскажу, как USM помогают жить на внедрении:

  • USM сам по себе - это прекрасные сценарии того, как ведут себя пользователи, следовательно, можно прогонять сквозные и интеграционные тесты просто глядя на карту;

  • USM помогает найти ошибки, когда у пользователя что-то не получается;

  • USM помогает, если в процессе внедрения нужно разработать дополнительный функционал;

  • USM помогает сформировать план развития системы.

6.       А теперь об управлении проектом

Ну а теперь поговорим про то, что USM — это не только про продукт… Да, да это прекрасный способ управления проектом.

Когда мы начинаем проект, я его просчитываю (финансово) в MS Project, но проблема в том, что очень трудозатратно отслеживать фазы проекта, это кто-то должен вносить факт в документ. Но стоп, у нас ведь есть прекрасный инструмент JIRA. Хотя СТОП, мы тут всю дорогу обсуждали водопадную концепцию и тут всплывает, давайте управлять проектом инструментами Agile? Да, я не запутался, все просто, Jira может многое, а приложения для Jira еще больше. Вот я и пользуюсь StoryMap управления:

  • Epic – это этап проекта;

  • Story – это задача проекта.

Теперь как это выглядит, если после расчета в Project, я экспортирую задачи в Jira (занимает 2 минуты). Вот пример:

USM по ходу проекта
USM по ходу проекта

Далее есть еще такая классная штука как RoadMap, идет в том же приложении, что и StoryMap, но дает огромные возможности вести в Jira График Gant и смотреть, как команда продвигается по нему:

Road map для отслеживания проекта
Road map для отслеживания проекта

Заключение

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

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

Комментарии (6)


  1. tempart
    06.07.2023 15:24

    (Всё ждал третьего "SAP сбежал", но не случилось. Шутка)

    На шаге 2.

    Есть: Вы рисуете IDEF0, зачем-то показываете её заказчику, который её не понимает. Ок, понятно, что про рабочее взаимодействие с заказчиком не думаем. Ну хоть формально что-то показали

    Должно быть: Всё классно, но где артефакт, который вы покажите заказчику как результат анализа? Не увидел / не понял

    О, а на шаге 4 зачем показывать заказчику системный анализ, в чём прикол заказчику в этом знании, тем более, утверждении решения для кодинга?


    1. Johnyart Автор
      06.07.2023 15:24

      По просьбам трудящихся, напоминаю, все же, SAP сбежал из России)))

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

      По поводу показа ЧТЗ заказчику, ну проектная технология, по классике PMBOK, должна быть подтверждена заказчиком, и используя USM + MVP мы обходим это ограничения, просто показывая функциональность «на живую», а подписывается краткий концепт.


      1. tempart
        06.07.2023 15:24

        (спасибо за шаг навстречу пожеланиям трудящихся! ) )

        С первым понятно, что это часть анализа проекта, ценность именно для проекта. Повторюсь, на мой субъективный взгляд, IDEF0 не для заказчика (но для отчётных доков - да, для солидности).

        Т.е. USM, ок. Спасибо за ответ


  1. NVG13
    06.07.2023 15:24

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


    1. Johnyart Автор
      06.07.2023 15:24

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


      1. klis
        06.07.2023 15:24

        Т.е. "SAP сбежал", а Jira - норм? Что за двойные стандарты?