В данной статье представлен небольшой обзор инструментов, которые я активно использую в своей работе. Меня зовут Андрей Канивец, я аналитик систем жизненного цикла изделий. 

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

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

Учебные материалы

Первый материал – это запись лекций из Лектория ФПМИ. Анализ требований (3 курс, весна 2019), лектор Иван Архипов. Курс дает общее представление о порядке разработки, о роли аналитики в процессах и подробно рассматривает инструменты, связанные с выявлением и управлением требованиями. 

Еще один интересный курс от лектора МФТИ Артемия Малкова, который называется  «Маркетинг инновационных продуктов». Он позволяет понять, как бизнес строит свои цепочки от разработки продукта до его использования, в каком месте появляются требования и ожидания пользователей, что такое безусловные требования и какие инструменты для работы с такими данными есть. Один из инструментов, который я вынес из данного курса – это матрица фичей. С ее помощью можно сравнивать те функции, которые есть у конкурентов, выбрать то, какие функции будут сделаны и в каком релизе своего продукта.

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

Ну и в заключении хочу упомянуть канал BPMN2ru, на котором подробно рассказывают о нотации BPMN 2.0 и вариантах ее применения. О каждой группе знаков нотации BPMN есть отдельные подробные материалы, которые позволяют понять их назначение и дают представление о том, как сделать схемы в этой нотации более простыми и понятными. На начальном этапе анализа, когда необходимо разобраться с тем, как работают процессы у наших потребителей, построение схемы работы в данной нотации помогает мне выявить узкие места процессов и опять же, с помощью инструментов ТРИЗ, понять, как мы можем их расшить.

Программы и сервисы

Что касается программных инструментов, то я уверен, что многие из них вы используете или знаете о них, но тем не менее, хочу отметить их в данной статье и дать свои комментарии.

В начале несколько слов по поводу приложения для быстрого прототипирования. Здесь я использую Lazarus IDE – открытую среду программного обеспечения для компилятора Free Pascal. Одним из важных аспектов является то, что язык программирования Free Pascal не только прост в использовании, но также поддерживает многие возможности современных языков программирования. Кроме того, в нем имеется богатый набор библиотек и пакетов, охватывающих различные области применения, такие как графика, базы данных, сетевые технологии, веб-разработка и т. п. Все это позволяет быстро создать рабочий прототип, отработать нюансы для того, чтобы потом программисту можно было детально пояснить, что и как нужно сделать, на что обратить внимание. В принципе, код, сформированный на языке Pascal, с помощью языковой текстовой модели достаточно хорошо преобразуется в код на языке C# или C++.

Вид прототипа:

Переработанный дизайнером интерфейс:

Следующая группа инструментов – это программы для работы с видео. Здесь я часто использую OBS Studio, простое приложение для того, чтобы делать запись с экрана. Оно очень удобно, когда необходимо зафиксировать какую-то последовательность действий для того, чтобы объяснить дизайнеру или программисту то, что нужно сделать. Второе приложение – это ScreenToGif, оно позволяет в компактном формате GIF-изображения сделать фиксацию всего экрана или его части для того, чтобы наглядно продемонстрировать, как должна работать та или иная функция, либо тот или иной контрол. Обработанная GIF анимация в итоге прикрепляется к артефактам, которые передаются программистам или дизайнеру в качестве ТЗ.

Пример записи работы функций:

Еще один набор инструментов я использую для работы с аудиозаписями. Когда я хочу сделать какую-то запись, зафиксировать что-то, то использую редактор Audacity, либо он-лайн редактор Audio Editor Online, который позволяет подавить шумы в записи и выделить голос, для того, чтобы сделать его более четким. Еще один инструмент – это проигрыватель VLC и его функция конвертирования, что позволяет отделить звук от видеоряда и таким образом сохранить его для последующей обработки. 

Особое место занимают приложения для работы с текстом. Когда я открыл для себя MarkDown разметку, то практически перестал пользоваться Word'ом. Все документы я пишу именно в Markdown разметке. Это дает большое преимущество, когда мне нужно отслеживать изменения в тексте от версии к версии, поскольку текстовые документы легко сравнивать, смотреть и отслеживать изменения в каждой новой итерации. Существует множество редакторов, работающих с Markdown разметкой, но я использую два. Joplin, который представляет собой простое и удобное приложение для управления блокнотами и заметками. Редактор в его составе поддерживает Markdown разметку, включая обычный, жирный и курсивный текст, заголовки, таблицы и изображения. Кроме того, в этом редакторе имеется возможность использовать расширенную разметку Markdown для создания сложных таблиц и списков и диаграмм. Одним из главных преимуществ Joplin является возможность упорядочивать заметки через блокноты и теги. Второе приложение — это редактор Typora, который представляет собой минималистичный Markdown редактор в виде десктопного приложения с продвинутой поддержкой разметки и удобным интерфейсом WYSIWYG (то, что ты видишь, то и получишь). Typora активно развивается и распространяется в формате продукта с одноразовой оплатой лицензии для разблокировки всей функциональности.

Стоит также отметить, что все упомянутые выше редакторы поддерживают вставку диаграмм в формате Mermaid.js , который представляет собой инструмент для создания диаграмм и графиков, реализованный с помощью JavaScript. Интерпретатор Mermaid.js использует текстовое описание диаграммы, на основе которого формирует векторный рендерер для создания и изменения сложных диаграмм. Он поддерживает множество различных типов диаграмм для программных проектов, включая блок-схемы, UML, графы Git, диаграммы пользовательских путей и многое другое. Основное преимущество использования Mermaid.js с Markdown заключается в том, что вы используете читаемый текстовый формат, который может генерировать диаграммы. 

Например текст описания диаграммы:

flowchart LR

    A[Начало] --> B{Данные\n готовы?}

    B -->|Нет| C[Подготовить\n данные]

    C --> D[Проверить]

    D --> B

    B ---->|Да| E[Конец]

в редакторе будет иметь следующий вид:

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

Кроме упомянутых выше приложений для работы с текстом, я часто использую Notepad++, думаю, его знают многие, это достаточно удобный и многогранный текстовый редактор с множеством плагинов. В основном, я применяю его для сравнения двух файлов и для обработки текста с помощью регулярных выражений. Например, поиск с помощью выражения (<(/?[^>]+)>) позволяет найти в и очистить текст от xml-тегов Для составления регулярных выражений я обращаюсь к сервису regex101, поскольку с его помощью можно задать выражение и посмотреть, как оно отработает, найдет ли то, что нужно. 

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

Несомненно, я как и многие, использую в своей работе нейронные сети. Одна из них – это модель для автоматической транскрибации аудио записи whisper.cpp. Эта модель представляет собой порт открытой модели компании OpenAI и может работать локально, на компьютере пользователя. Модель достаточно хорошо распознает русскую речь, а для для удобства работы имеется сборка WhisperDesktop с простым графическим интерфейсом.

Помимо этого, я использую большую языковую текстовую модель с помощью приложения LM Studio, которое позволяет подгружать различные языковые модели с HuggingFace и запускать их локально на компьютере. Если у ПК есть видеокарта с 4-6 ГБ оперативной памяти, то работа модели будет достаточно быстрой. Вариант модели Saiga, которая называется Saiga-Mistral, предобучена на достаточно большом количестве русского текста и хорошо его обрабатывает. 

Сценарии использования

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

Создание артефактов технического задания

Обычно порядок формирования задания для программистов строится следующим образом:

  1. Аналитический блок: Здесь мы определяем требования, цели и ожидания от разрабатываемой функциональности. Фиксируется информация в ALM или на локальной машине в текстовых документах с MarkDown разметкой.

  2. Прототипирование: Затем создается прототип с помощью Lazarus IDE, где набрасываются основные элементы интерфейса и реализуются простые алгоритмы. Прототип помогает визуализировать идеи и позволяет наглядно продемонстрировать работу функций.

  1. Видеофиксация сценария пользователя: Далее, с помощью видеозаписи, фиксируется типовой сценарий использования функций. Здесь программисты и дизайнеры могут оценить, как функциональность будет взаимодействовать с пользователем, и могут дать обратную связь по внесению изменений.

  1. Обработка видео: После записи видео из него извлекается аудио. Затем с помощью модели Whisper.cpp производится транскрибирование аудио в текст. 

  2. Подготовка артефактов. Подготовленный текст с помощью языковых текстовых моделей преобразуется в User Story или Use Case.

    При обработке текста языковой моделью я использую следующие промты:

    для уточнение формулировки User Story:

    • В следующем сообщении я отправлю необработанную пользовательскую    историю. Проанализируй этот текст и перепиши пользовательскую историю, выдели главную ценность для пользователя.

    для формирования Use Case:

    1. Будь системным аналитиком.

    2. Напиши Use Case, за основу возьми текст из предыдущих сообщений.

    3. Напиши ответ в формате Markdown. 

    4. В ответе используйте шаблон Use Case:" 

    5. **Название**: название\

    6. **Область применения**: область применения\  

    7. **Участник**: первичный актор\

    8. **Заинтересованные стороны и интересы**: заинтересованные стороны и интересы\

    9. **Предусловия**: предусловия\

    10. **Постусловия**: постусловия\

    11. **Основной сценарий**: основной сценарий\  

    12. **Альтернативный сценарий**: альтернативный сценарий".

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

    Стоит дополнительно отметить, что когда я делаю запись, то стараюсь проговаривать все текстом, близким к формулировкам User Story или Use Case, то есть я говорю: «Я как, системный инженер, хочу то-то-то, для того-то и для того-то». Это позволяет языковой модели лучше работать с исходным текстом и выдавать хорошие результаты.

  3. Фиксация артефактов. В итоге все сформированные тексты фиксируются в ALM системе в форме артефактов и дополняются различными материалами, такими как GIF-анимации, картинки и приложения.

Анализ видеоматериалов

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

Работа в этом сценарии выглядит следующим образом:

  1. Первичная обработка видео. Здесь мы выполняем отделение звука от видеоряда и распознавание текста.

  2. Первичная обработка текста. Поскольку ролик представляет собой запись демонстрации, то при распознавании получается достаточно объемный текст. Мы используем базовые инструменты текстового редактора Notepad++ для поиска и замены строк, чтобы очистить текст от нежелательных слов и слов-паразитов. Этот процесс позволяет нам получить более чистую и уменьшенную в объеме транскрипцию, которую мы можем использовать для дальнейшей обработки.

  3. Дополнительная обработка текста. Дополнительную обработку текста делаем уже через языковую модель, которую просим в качестве редактора улучшить текст и сделать его более понятным. Такая работа делается в несколько приемов, и нам придётся сделать порядка 10-20 запросов к модели, т.к. даже очищенный объем текста составляет порядка 80-90 тысяч символов. В результате обработки мы получаем более компактный текст, в котором нет речевой «воды», только суть. Новый текст будет объемом порядка 40-50 тысяч символов, то есть он сокращен относительно исходного текста примерно в два раза.

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

    Здесь используется следующий промпт:

    • Ты — опытный системный аналитик. Я буду в своих сообщениях присылать тебе описание функций и описание работы подсистемы управления требованиями.

    • Проанализируй текст каждого моего сообщения и составляй матрицу функций подсистемы управления требованиями с их описанием. Дополняй матрицу после анализа каждого моего нового сообщения.

    • Таблица должна иметь следующие колонки №, Функция, Краткое описание.

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

    Часть таблицы с результатами:

Функция

Краткое описание

Примечание

1

Структурирование и подготовка входных данных

Получение и первоначальное внесение различных документов в систему, приведение данных к виду, который позволит работать в системе, и получение файлов и их структурирование

2

Работа с исходными данными

Работа с уже существующими в системе структурированными документами,  импорт документов из Word и работа с исходными данными

Стоит обратить внимание. Утилита импорта данных из DOCx документов. Работа с редактором, выделение блока как будто ты работаешь с текстом и привязка данных к выделенной области

9

Отслеживание требований

Отслеживание и понимание взаимосвязанных требований

Стоит обратить внимание

14

Указание исполнителей требования

Можно указать исполнителей, ответственных за выполнение требования

Стоит обратить внимание

15

Указание подразделений, ответственных за требование

Можно указать подразделения, которые за данное требование отвечают

Стоит обратить внимание

Генерация пиктограмм

И последний сценарий – это подготовка графики, когда нам необходимо для какой-то визуализации подготовить пиктограммы. Это может быть полезно, чтобы дать изначальный ориентир визуализации для дизайнера. 

Здесь работа может строится следующим образом:

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

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

    В запросе я использую следующие промты:

    • make clipart icon for "report "trace matrix"", very simple graphic use light blue, yellow and red colors on white background

    или

    • cоздай иконку-клипарт для “Отчета о матрице трассировки”. Используй очень простую графику со светло-голубыми, желтыми и красными цветами на белом фоне.

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

  1. Стилизация и подгонка под размер. Отобранные изображения передаются дизайнеру, который их стилизует и подгоняет под нужный размер. Итоговые векторные изображения мы уже можем использовать в наших приложениях.

Вместо заключения

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

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


  1. DrRaznomazov
    14.08.2024 05:16

    Простите, зачем системному аналитику bpmn? Вы смешали системный и бизнес-анализ.


  1. v0rdych
    14.08.2024 05:16

    freepascal и триз. как будто в универ конца 90х начала 2000х вернулся :-)