ЭТАП ПРОЕКТИРОВАНИЕ:
КОМПЕТЕНЦИИ КОМАНДЫ АНАЛИТИКИ
Мы рассмотрим третий проектный этап — «Разработка» и разберем его с точки зрения компетенций: JUNIOR, MIDDLE, SENIOR, LEAD.
Действующие лица:

● JUNIOR — решивший стать аналитиком начинающий боец;

● MIDDLE — системный аналитик, который «понюхал пороху», получил опыт на
нескольких проектах и начал осознавать всю глубину профессии;

● SENIOR — аналитик с богатым опытом разнообразных проектов, большим
количеством навыков и теоретической подготовкой;

● LEAD — эксперт и профессионал в области системного анализа, обладающий,
помимо прочего, хорошими управленческими навыками и лидерскими
качествами;

● ООО «Наша команда» — компания-исполнитель, отвечающей за проектирование и аналитику;

● АНО «Госорган» — организация клиента.
Этап Разработки наступает в тот момент, когда программеры садятся писать код по проектному решению. Для непосвященных это всегда самый ожидаемый и значимый момент, когда должна случиться магия, а не вот это вот все. Предыдущие этапы воспринимаются как подготовительные, и бытует заблуждение, что их могут выполнить люди без специальной квалификации.
Как следствие, аналитики мыслятся обслуживающим персоналом проекта, которые готовят рабочее место для программиста. А это значит что? Что на этапе разработки аналитик, вроде как, и не нужен вовсе. Это бред: аналитик и разработчик всегда работают в жесткой спайке. Именно поэтому реализация проектов в парадигме гибких методологий разработки растет по экспоненте.
Опять-таки, нужно понимать, что в этих статьях мы делаем жесткое, олдскульное разделение на обособленные этапы, только чтобы разжевать конкретный предмет исследования — «уровни компетенций аналитика» (ссылка на вводную). А чтобы это сделать и не умереть от потока информации и оговорок, наш объект исследования — «проект» — нужно разделить на отдельные ломтики: Исследование —> Проектирование —> Разработка —> Тестирование —> Внедрение (ссылки). Потом, в боевой практике, вы в своей голове все это склеите и пережените. А пока — как в школе: алгебра отдельно, геометрия — отдельно.
Итак, вернемся к нашим баранам. Разработка — это этап «делания». Причем, к дуэту «заказчик-аналитик» добавляется третье лицо со своим видением, опытом и интересом — программист. Разумеется, это прибавляет веселья… (программисты — вы лучшие, люблю вас!)
Всю сложную гамму взаимосвязей и разделения обязанностей внутри команды аналитики, лучше всего объяснить на примере строительства. Где LEAD — главный архитектор проекта: он этот дом придумал, концептуально описал и, при желании, может разъяснить устройство любой его части от водоснабжения до самого последнего винтика. Может, но не будет, потому что у него есть SENIOR — главный инженер, который всю эту архитектуру не просто понимает, но сразу переводит в конкретные решения: что как где, когда и из чего строить.
Так вот, архитектурный проект и его решение были созданы на предыдущем этапе. А значит здесь их роль заключается в том, чтобы контролировать строительство. LEAD-архитекор контролирует заказчика, чтобы тот вдруг не решил возвести бассейн вместо жилого дома. А SENIOR бригадиров, которые отвечают за свои участки. Старшего — MIDDLEа и младшего — JUNIORа. Бригадиры здесь выполняют самый большой объем работ: они полностью обеспечивают деятельность строительно-монтажной бригады материалами, чертежами и другими ресурсами. Контролируют сроки работ и качество результата, постоянно принимая массу мелких, но значимых решений, которое требуются в моменте.
Как правило, несколько раз за проект, возникает ситуация, когда строители вносят значительные коррективы в проект в связи с реалиями объекта: обнаружены подземные воды, неудачная роза ветров, неподходящий для проводки материал и т.д. Такие новые вводные, если они не требуют глобальных изменений в концепте, обрабатываются и берутся на личную ответственность бригадиров: MIDDLE и JUNIOR. Большие изменения уже требуют включения SENIORа. И глобальная задача всей этой армии — построить утвержденный дом.
Функционал и навыки этапа на боевом примере
Ну, в общих чертах разобрались. Теперь на примере. И здесь я хочу, в кои-то веки, рассказать про позитивный пример «контролируемого звездеца» — проект, где все было сделано по красоте.
ООО «Заказчик» заказал развитие существующей управленческой системы. Предыдущая версия системы была выполнена с огромным количеством разнообразного функционала, большая часть которого не использовалась. Архитектура их системы сильно смахивала на замок Хаула, который они быстро хотели переделать в «уютное альпийское шале».
ООО «Наша команда» ошалевшим взглядом посмотрела на эту архитектуру пьяного кондитера, и пришла к единственному решению: найти критерии, по которым можно разбить все многообразие изменений. И нашла. Результатом этапов Исследования и Проектирования, стало не только техническое задание и проектное решение, но и разбивка требований на 3 блока:
  • 1й — не имел рисков в реализации и не требовал изменения существующего функционала
  • 2й — имел минимальные риски и требовал изменений функционала;
  • 3й — имел высокий риск и зависел от результатов разработки первых 2х блоков.
Эта разбивка дала ПОСЛЕДОВАТЕЛЬНОСТЬ работ. Таким образом, этап разработки был хорошо подготовлен. Реализация первых 2х блоков заняла половину отведенного времени. И на самую высоко-рисковую часть осталось достаточно ресурса.
MIDDLE и JUNIOR :
Занимались построением первых двух блоков:

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

  • собирали и готовили данные для наполнения системы;

  • принимали работу интерфейса;

  • делали промежуточные демонстрации;

  • самостоятельно вносили решения по небольшим корректировкам.
В общем, веселились ребята. Их деятельность на этапе Разработки закрыла 70% общего объема запланированных работ.
SENIOR:
Оставшиеся 30% потратил на то, чтобы:

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

  • реализовать блок 3;

  • в самых сложных местах подхватить у младших коллег блок 2 (но без энтузиазма).

В целом, он веселился примерно так же, но в меньшем объеме и большей сложности.
Таким образом, SENIOR, MIDDLE и JUNIOR закрыли все работы на этом этапе. Чем же был занят LEAD?
LEAD
В идеальном мире, здесь LEAD мог уже пойти на другой проект и раз в неделю проверять статусы. Но в нашей истории, как и во многих других реальных случаях, он занимался тем, что проектировал новый функционал системы, который заказчик по дороге придумал и очень хотел реализовать. Ну, скажем, ему вдруг понадобился гараж возле шале. За доп.бюджет. Но обязательно в те же сроки. И чтобы успеть встроить эту конструкцию в возводимую систему, LEAD собственноручно этим занимался.
К вопросу о доп.бюджете, который всех, уверена, заинтриговал. У опытных заказчиков обычно есть заложенный бюджет на риски. И по мере снижения вероятности риска растет желание этот бюджет потратить на что-нибудь новое и нужное. Поэтому, если ваш проект идет так, как надо, то почти наверняка, LEAD на этапе Разработки будет судорожно проектировать «гаражи», «бани» и даже целые «гостевые домики» строго в рамках сроков.
Резюмируя этот радужный пример, хочу сказать, что на этом проекте каждый был на своем месте, и включен в процесс. Как итог: отличная система, довольный ООО «Заказчик» и очень довольный директор ООО «Наша команда».
Для тех, кто в теме — во время тестирования мы получили незначительные, косметические замечания заказчика к функционалу, причем их количество варьировалось в рамках 5% от общего объема требований. А хоть бы я и хвастаюсь, зато от чистого сердца)).
НАВЫКИ ВСЕЙ КОМАНДЫ НА ЭТАПЕ «РАЗРАБОТКА»*
LEAD


Типовые
— Координировать проект;

— Контролировать соблюдение границ и видения/ концепции решения.

— Минимизировать риски.

Дополнительные
— Все, на что хватит доп.бюджета заказчика.
SENIOR

— Работать с изменениями, рисками и границами;

— В случае гладкого течения проекта, забрать все функции LEADа.
MIDDLE

— Ставить задачи программистам и контролировать выполнение;

— Готовить данные для наполнения системы;

— Взаимодействовать с заказчиком;

— Готовить и проводить промежуточные демонстрации.
JUNIOR

На маленьких задачах:
То же, что и MIDDLE


В случае отсутствия маленьких задач:
— Готовить функциональные тесты;

— Готовить материалы к обучению.
Несмотря на все многообразие функционала на этом этапе, главное здесь — умение разговаривать с каждым участником процесса на его языке: слышать и понимать, говорить и быть понятым. Это очень редкий навык, но он приобретается. Одно из типовых требований к резюме системного аналитика — «умение общаться с программистами». 80% нашей активности здесь занимает коммуникация: вербальная, письменная, визуальная. Не смог объяснить — нарисуй. Не смог нарисовать — станцуй. Все равно как, тебя должны понять! Не уверен, что тебя поняли? Повтори. Уверен, что поняли? Закрепи успех и тоже повтори!
И только 20% времени аналитик может уползти в нору, поплакать, поработать с данными и побыть нормальным интровертом. Но по-другому нельзя. На этом этапе работа делается не твоими руками. А ответственность за нее понесешь ты (это в следующей статье «Тестирование» ссылка). И какое бы ни было у тебя прекрасное и полное описание того, что в итоге должно получится, нельзя ни на секунду выпадать из процесса. Это все равно, что привезти на строй-площадку кучу материалов и уехать на полгода, надеясь, по возвращении получить именно тот дом, который был запланирован. Это невозможно. А так хотелось!
Но если грамотно распределить обязанности внутри команды, приоритетов и сроков реализации, то именно этот этап может дать самый очевидный для всех результат. Который, помимо прочего, сильно облегчит дальнейшую работу над проектом.
Бонус для дочитавших
ТОП 10 стандартных косяков в аналитике
на этапе Разработка
10е место: Не проверять свои решения в реализации.
Вы не можете ошибаться.

9е место: Безоговорочно верить программисту.
Он ведь тоже не может ошибаться.

8е место: Откладывать проверку на реальных данных.
Мы прекрасно все покажем на «Test 1» «User 1».

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

6е место: Общаться только устно.
Картинки и описания — для слабаков.

5е место: Игнорировать технические проблемы, требующие изменений в вашем гениальном решении.
Ты ж программист — давай делай чудо!

4е место: Переложить коммуникацию с заказчиком напрямую на программиста.
Это как слепому с глухим поговорить.

3е место: Начать разработку с самого непонятного места.
Ведь самое непонятно не может сожрать весь ваш ресурс.

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

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

1е место: Снять руку с пульса. Программисты разрабатывают — ну и хорошо. Нет! Не хорошо: делают они, а ответственность несете вы.
* Обращаю внимание для тех, кто не читал вводную статью: навыки суммируются при повышении квалификации. Это значит, что LEAD имеет все навыки SENIOR, MIDDLE и JUNIOR. SENIOR — навыки MIDDLE и JUNIOR и т.д.