Cистема управления курсами
Как я с нуля спроектировал систему, которая убрала ручной перенос данных из процесса производства курсов
О проекте
Контекст
Курс собирает много людей. Методист готовит программу, координатор переносит её в админку, и всё, что там настроено, студент видит у себя в кабинете: на сайте и в приложении. Любая правка запускает перенос заново. Ошибка при переносе сразу оказывается у студента на экране
До внедрения системы
Проблемы
Команда работала в Google-таблицах. Методист и координатор вели раздельные файлы, а после каждой правки координатор вручную переносил данные в админку.
Дублирование документов
На одну программу приходилось несколько документов с повторяющимся содержимым. Обновлять их нужно было параллельно
Отсутствие стандартов
Каждый отдел вёл документацию по своему шаблону. Единого формата и процесса не было
Изменения нигде не фиксируются
Правки не сохранялись централизованно. Историю можно было восстановить только вопросом к ответственному
Разрозненность хранения
Единого хранилища не было. Паспорта программ лежали в разных папках и файлах, поэтому искать их было сложно
Цели проекта
Задача заключалась не в упорядочивании существующих документов, а в пересборке всего процесса, с сокращением избыточных инструментов до одного общего
Прямая работа в системе
Методисты и координаторы работают прямо в админке без Google-таблиц
Версионирование изменений
Система фиксирует все правки и хранит историю изменений
Единое хранилище
Учебные планы, паспорта программ и планы занятий лежат в одном месте
Единый стандарт
Один процесс на всю команду
Проектирование
Разбор процесса
Схемы процесса не существовало. Методист не знал, как работает координатор, и наоборот. Я собирал картину интервью за интервью, с каждой группой отдельно
Бизнесс процесс
Интервью
Методист и координатор работают с одним массивом данных, но задачи у них принципиально разные. Единый интерфейс на двоих не закрыл бы потребности каждой роли
Методист
Создаёт и редактирует образовательные программы, ведёт версии, фиксирует изменения. Готовое передаёт координатору на согласование
Координатор
Принимает изменения от методиста, актуализирует наборы, запускает новые потоки. Ему критично видеть актуальное состояние программы без ручной сверки
Согласование User Story
Я изучал потребности каждой роли отдельно. Итогом стали согласованные User Story с приоритетами: что реализуется сначала, что переносится на следующие этапы
User Story
User Flow
Я спроектировал отдельный user flow для каждой роли. Общий принцип, что все действия происходят внутри системы без ручной синхронизации
User Requirement Document
Итог этапа проектирования
Кастдев и разбор процесса дали картину целиком. User Story и user flow превратили её в структуру, с которой можно идти в прототипы и юзабилити тесты
Прототипирование и тестирование
UX тест
Собрал два интерактивных прототипа, для методиста и для координатора. Каждый прототип закрывал свои ключевые сценарии
Что работало хорошо
Структура и логика редактирования читались сразу
Подсказки модератора никому не понадобились. Навигацию и правку модулей и занятий считывали уверенно, и ни один респондент не переспросил, как что-то поменять
Черновик понятен с первого взгляда
Большинство респондентов верно поняли, что это такое: правки в черновике не затрагивают версию в проде. Поэтому и экспериментировать не боялись
Программа делается без внешних сервисов
Никто не искал способ выйти за пределы системы. Программу создавали и правили прямо в ней, а экспорт в CSV не вызвал ни одного уточняющего вопроса
Изменения прозрачны, передача занимает один шаг
Респонденты видели, кто и что менял: история хранит авторство и время правок. А передачу изменений координатору закрывали без лишних действий
Что работало плохо
Непонятные элементы таблицы
Чекбокс и кнопка «+» сбивали с толку. Было неясно, за что отвечает каждый
Похожие кнопки с разным смыслом
«Утвердить УП» и «Обновить УП по последнему потоку» пользователи путали между собой
Незаметный чекбокс
Чекбокс передачи изменений координатору часто оставался незамеченным. Важное действие терялось на экране
Неожиданный автопереход
Автоматический переход внутрь созданного элемента заставал врасплох. Система действовала за пользователя и не предупреждала об этом
Работа над UI
Итерация после UX-теста
После теста я доработал интерфейс и упростил ключевые сценарии. В итоге получились два отдельных интерфейса под две роли, с разной логикой и разным набором задач
Методист
Программу теперь создают и правят целиком в системе. Методист больше не держит несколько файлов и не синхронизирует их руками. Версии, черновики и передача правок живут в одном месте
Координатор
Больше не переносит данные в админку руками после каждой правки. Актуальное состояние программы всегда под рукой
Результаты
Эффект в масштабе портфеля
В портфеле компании 261 курс. Каждый обновляется минимум раз в год, и ещё 4 или 5 новых запускаются ежегодно. Система убрала ручной труд из производства курсов и напрямую снизила трудозатраты методистов и координаторов