[СММ-2024] Вскрытие аналитиков

Внутренне продолжаю наш спор с @andrei-danilian c созвона на тему “аналитики не нужны или их просто плохо научили”. У меня уже была попытка понять, зачем нужны системные аналитики. Там по описанию выходило, что они переводчиками работают. Давайте разберём описание чему учат в другой онлайн школе. Мне особенно нравится ход, что это курс где делают полноценного аналитика (у которого и бизнес-анализ, и системный анализ в арсенале).

Программа специализации «Профессия Системный аналитик PRO»

  1. Введение в профессию (3 недели)
    Содержание блока:
  • Кто такой системный аналитик и бизнес-аналитик, функции и задачи
  • Жизненный цикл ПО, фреймворки разработки ПО
  • Фреймворк для гибкой разработки продуктов Scrum

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

Окей, жизненный цикл у нас. Делаем ставку, что учат чему-то в рамках V-модели, с повторным проходом по “стадиям” ЖЦ.

  1. Бизнес-анализ и бизнес-процессы (5 недель)
    Содержание блока:
  • Современные подходы к БА
  • Принципы BABOK
  • Метрики, KPI
  • Процессы AS IS
  • Процессы TO BE
  • Оптимизация бизнес-процессов
    Результат:
    Знаете как описать процесс и анализировать процесс. Умеете перекладывать требования в KPI процесса. Умеете оценить эффективность процесса и отслеживать изменения. Сможете выстроить процесс с нуля, а также оптимизировать существующий.

Тут интересно. Процесс у нас, а не система. И мы помним что “бизнес-процесс” это процесс организационный. При этом вдруг откуда ни возьмись KPI. А я-то думаю, почему метрики важнее результатов. Потому что эти метрики, у кого-то гвоздями прибиты, как показатель эффективности работы. Но допустим, здесь как будто бизнес-аналитик ходит по фирме (внимание вопрос по какой фирме, если вы например сервис делаете) и “анализирует” процессы. Как бы ищет, где плохо работает. Может он и не в фирме ищет, а в софте. Там неудобно кому-то заполнять нашу длинную форму. И вот это, что нашёл, предлагает починить. Должен бы предлагать.

  1. Анализ требований (5 недель)
    Содержание блока:
  • Типы требований: БТ, ФТ, НФТ
  • Основные методы выявления требований: наблюдение, интервью, анализ документации и интерфейсов, анкетирование, рабочие группы, наблюдение, анализ легаси и UX
  • Методы документирования требований: User story, use case, задачи в jira
  • Прототипирование
  • Описание бизнес-процессов: нотации и где они используются — BPMN 2.0, EPC, IDEF
  • BPMN 2.0 (пулы, интеграции, основные понятия и построение модели верхнего уровня)
  • Заинтересованные стороны
    Результат:
    Понимаете, что такое требования. Умеете их собирать, документировать, проверять на конфликты, приоритизировать. Знаете, как взаимодействовать с заказчиками. Умеете описывать бизнес-процессы в BPMN и различаете другие нотации

Требования само собой. Не выбраться из них. “анализ легаси” это очень интересно. Но наверно это как раз то, про что одногруппник писал “мы нашли сервис, в который разработчики не в состоянии быстро вносить изменения”. Здесь должна быть шутка, что анализировать легаси необязательно, желательно до такого состояния сервисы не доводить. Ведь легаси, это когда “всем было безразлично как пишется код”. Техдолг копился, копился, а потом вдруг у нас “big ball of mud”.

Use case у нас оказывается “документирование требований”::метод. И там дальше рисование картинок со стрелочками. По результату, кто у нас аналитик. Человек, который в состоянии поговорить с заказчиком. А потом записать текст с требованиями, и начать этот свод правил сводить между собой. Где граница, когда перестать сводить и с кем это делать непонятно. Мы помним, что системы уже большие. Не соберёшь ты по всей системе требования так, чтобы было непротиворечиво. Значит ты ограничен например, той же user story. А значит что? Значит связи с соседями не будут учтены. Синтеза нет. Про рисование ничего не буду говорить.

  1. Проектирование системы (1 неделя)
    Содержание блока:
  • Архитектура информационных систем
  • Интеграции между системами
  • Интеграции через SOAP-сервисы: xml, протокол soap, wsdl, xsd, soap ui
  • Интеграции через REST API: протокол HTTP, принципы REST, как спроектировать RESTful сервис, работа с postman
  • Основы баз данных
  • SQL: структуры простых запросов, работа с таблицами, сложные объединения
  • Основы языков программирования: навык чтения и понимания кода, понимание основ программирования
  • Представление требований и постановка задач: виды представления требований, инструменты для представления требований, таск-трекеры
  • UML:8 основных диаграмм и в чем их создавать
  • Внедряете принципы предметно-ориентированного проектирования
    Результат:
    Понимаете архитектуру ИТ, разбираетесь в последовательности проектирования и интеграции. Умеете составлять задание на разработку, работать с SOAP и REST и БД, понимаете основы программирования, умеете читать код

Добрались до самого интересного. Я про это больше всего думала. Как будто у аналитика в голове должен быть кусок мастерства “проектирования”. Это единственное объяснение разделения труда, т.е. выделения отдельной роли от разработчика. Иначе они просто писатели. Нужен технолог. Но “1 неделя” это очень грустно. И никакого настоящего проектирования там почти нет. Про навыки программирования начальные любопытный кейс, не видела ещё ни одного СА, который может читать код. Т.е. тут скорее минималка, как у тестировщиков (SQL, postman, дернуть АПИ, найти документацию на это АПИ). Снова описать схему чего-то, спецификацию. Главный вопрос, который у меня был, что эту схему нужно “изобрести”. А не просто описать. Ответа чем аналитик её изобретает, каким мастерством, так и нет.

  1. Разработка, тестирование и интеграция (3 недели)
    Содержание блока:
  • Основы Git: основные команды Git на примере кейса, команды для работы с сервером, навык коллективной работы с версиями документации
  • Языки разметки: markdown, asciidoc
  • Тестирование: виды тестирования, приемочное тестирование, место аналитика в процессе тестирования, баги и постановка задач на доработку
    Результат:
  • Понимаете основные языки разметки, умеет пользоваться Git (работа с версиями, отслеживание изменений). Понимаете этапы тестирования и приемки ИТ-продукта. Умеете оценить, насколько готовое решение соответствует требованиям заказчика

Снова приехала часть работ тестировщика и документация. Кто знает из какой версии инженерного процесса у нас “интеграции”?

  1. Сопровождение и утилизация (4 недели)
    Содержание блока:
  • Понятие сопровождения системы
  • Service desk
  • Понятие утилизации
  • Подготовка к утилизации или замене системы
    Результат:
    Понимание способов поддержки и сопровождения систем (часто СА - последняя линия ТП), обновления ПО

Утилизация! И снова техподдержка и часть от тестировщиков (заведи баг, отдай на переделку).

Есть ещё один вопрос у меня, на который нет ответа. У нас в изобретении есть две части: функциональная и конструктивная. Как это выглядит в нашем софте. От бизнес анализа ожидается модель. Даже наверно модель данных и алгоритм. Потому что к сожалению или счастью я не могу как разработчик придумать как правильно считать налоги в Египте. Но проблема в том, что рядовой бизнес аналитик тоже не может. Нужен некий бизнес-архитектор. А на самом деле видимо прикладной методолог. Он изобретает модель. А уже разработчики изобретают как это технически воплотить. И спецификации на схемы в БД, разработчики в состоянии сами себе сделать. Особенно с учётом того, что работающую сходу модель сделать сложно и что-то придётся менять по ходу. Ещё одно я не могу понять. Как быстро тестировать эти модели данных. Окей, у товарищей настоящих инженеров, цифровая модель самолёта тестируется, а настоящий самолёт делается потом. У нас и модель, и воплощение цифровое. Но на самом деле, чтобы закодить что-то более-менее сложное нужно много времени. И я не могу сейчас выдумать, как тут сделать MVP. Какое-то оно по объёму и количеству возможных косяков совсем не minimal. TDD тоже тут не поможет.

8 лайков

Аналитика можно переименовать в «договорника». Договорится что и как делаем с заказчиком, смежниками, разработчиками, сопровождением и тд. Инженерное проектирование как один из методов выработки решения (договора)

Т.е. парламентер, писарь и почтальон. Там же всё по-старому, нельзя договориться один раз. Даже в рамках “что делаем”. И бег по кругу в обе стороны.

  • Рональд просит тебе передать, что Симус сказал ему, что Дину сообщила Парвати, что Хагрид тебя разыскивает…
  • Неужели…Что?!
  • Эээ… Кто сообщил Дину?
  • Парвати.- Дину сказала Парвати… Не хочу повторять это еще раз! Тебя ищет Хагрид.
  • Передай Рональду, что…
  • Я вам не сова!

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

1 лайк

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

1 лайк

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

И что? Так занят, что разговаривать с живыми людьми разучился?

Люди вполне нормально договариваются, если им не мешать (например, не втыкать дополнительные бюрократические процедуры в виде согласований). Я::разработчик напрямую с тестировщиком за 5 минут договорюсь. Подготовлю всё, что надо заранее (описание, тестовый стенд), а потом отдам в работу или договорюсь вместе посмотреть. Так же точно бекендер быстро договорится с фронтедером о формате API. Потому что они знают свою работу.

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

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

И все эти согласования перебежками это очень дорого и очень медленно. Но дело даже не в этом, главная грусть моя в том, что это просто не работает. Если идея была выделить из инженера-разработчика технолога, который может написать описание (у вас в примере чертёж), по которому простой кодер/строитель сможет правильно сложить кирпичи/“блоки кода” в работающий функционал/дом. То тут два нюанса. Программирование к сожалению не настолько конвейрная работа, нет универсальных чертежей, или лекал, как у портных. Второй нюанс, что технолог это как раз старший инженер. И так мы тоже делаем, но это либо старший разработчик ставит задачи младшим, либо техлид/тимлид с
ставит задачи разработчикам. Т.е. опять правильно поставить задачу может только тот, кто её может решить на нужном системном уровне.

1 лайк

От этого в современных работах отказались. “Как реализовывать” знает только тот, кто реализовывает. Наверху только могут поделить работу на более-менее независимые части – это делают продакт и архитектор. В остальном – команды между собой сами договариваются, и люди в командах. Это, замечу, в SAFe даже прописано, хотя там наполовину водопад. Ибо признали уже, что “знание там, внизу, тщательная проработка функций на верхнем уровне – это отрыв от жизни, универсалов на верхнем уровне нет, поэтому работают сразу люди на земле”, это я упоминал тут (где обсуждали SAFe): Заметки с XIV рабочей встречи INCOSE RUS по проблемам системной инженерии: ailev — LiveJournal.

1 лайк

Есть нюанс - разговаривать нужно много - ИБ, смежники. Чертежей тоже требуется много для разных точек зрения на систему свои нюансы бывают. Внутри команды из 10 человек выделение отдельного инженера проектировщика не всегда целесообразно. В когда таких команд 10 и более, специализация становится более востребованной.

Понятийное расстояние не сокращается. Предлагаю на этом остановиться. Когда (если) пройдёте Системный менеджмент и инженерию будет возможность пересмотреть необходимость выделения тех или иных ролей. А на нет, и суда нет.

Мы вот сегодня много обсуждали почему люди могут понимать необходимость изменений, и даже знать “как правильно”, и при этом всё равно ничего с этим в реальности не делать. Сколько нужно слоев сопротивления пройти, а главное надо ли их проходить лично вам, я не знаю. Вполне возможно, что и не надо.

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

Чат и чат-в-форме-комментов – это, кстати, тоже асинхронное общение. Но общение: вопросы, ответы, суждения, а не монолог как документация сама по себе.

1 лайк

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

Экзокортекс, который координирует команду – он:
а) надёжная память (всё пишем, а не проговариваем), причём с хорошим поиском. Мозг людей – нет, плохая память, плохой поиск.
б) разделяемый/shared, то есть доступен многим агентам. Мозг – не разделяем, не доступен многим агентам.
в) может ещё и быть активным, например, что-то проверять, прокидывать какие-то связи, что-то вычислять (то есть уже не память, а компьютер, способный что-то вычислить). Мозг да, тоже может. Но в этом плане уступает не только компьютеру, но и обычному инженерному калькулятору.

Про асинхронность и её достоинства – Асинхронная коммуникация сожрёт синхронную: ailev — LiveJournal

1 лайк

Конфлюенс идеально подходит под это описание. Сразу мышление письмом из коробки. Доступен сразу всем заинтересованным и даже больше - за счет поиска будущим потребителям в т.ч. из других команд. С активностью пока проблема GPT еще не встроили :slight_smile:

Это специфичный продукт для айтишных команд, вместе с Jira. Мы учим, что приспособить можно даже ящик с мокрым песком, веточкой (чтобы записи делать) и лейкой, чтобы песок поддерживать мокрым. Думать сразу в терминах “подходящего софта” – грех. Мы ж обсуждаем методы, они зависят от класса инструментов, а не от конкретных инструментов.

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

Одни из лучших наших кейсов были сделаны в Excel, ибо надо было скоординировать шесть тысяч человек, никаких лицензий никакого софта, кроме Excel, на это бы не хватило.

Пока непонятно, что именно мы обсуждаем. Из всех ваших комментариев, я могу сделать вывод, что обсуждаем мы некое описание. Чем именно оно является неясно. Потому что тут у вас чертёж::описание, комментом выше документация::описание. Это довольно разные штуки, которые выполняют разные функции. Я в посте упоминала описание задач/сторей(user story)/эпиков. Какое конкретное описание у вас делает аналитик, отдавая задачу разработчику? Что там является чертежом из строительства? А что является документацией? И может там что-то ещё есть?

Надо докрутить ваш вопрос с обсуждаемых объектов до ролей в обсуждении: эпики и сториз – это про концепцию использования (и наследство инженерии требований, могут аналитики появляться “по историческим причинам”), а всяческие чертежи – это уже концепция системы, там обычно аналитиков нет, а работы системного анализа (иногда в системной инженерии их отдельно выявляют) направлены на поиск коллизий в текущих проектных решениях, их инженеры делают, а не какие-то отдельные аналитики.

2 лайка

Делает чертеж(документацию)::описание. Назрезку на задачи(разработки):: делает сам разработчик.

Ох) кому и зачем нужна эта документация и почему её не делает сам разработчик.

Аналитики это legacy. Там где это признают, они очень быстро станут deprecated и будут выпилены, как неудачное и старое решение.
Но да, как и любое legacy, много где это будет ещё очень долго жить.

Разработчиков дефицит, + разработчики специализированы по стекам. Тратить время разработчика на проектирование (UI+UX+ Бэк+фронт+смежники) не эффективно.