Опыт стажировки студентов ВМК МГУ в «Базальт СПО»
или
Как два студента
за два месяца
начали и закончили два проекта,
с которыми я не мог справиться два года…
…и что с этим теперь делать?
Это мой второй опыт интенсивной летней стажировки студентов. Первый состоялся в 2023 году1. Формат стажировки был похожий, а вот тематика была другая — разработка ПО2. Результат был вполне удовлетворительный — до конца семестра система была внедрена в учебный процесс и используется до сих пор.
Главная проблема успешных «студенческих проектов» — текучка кадров, и как следствие code rot и очень тяжёлое сопровождение (мною).
Формат сохранился и в этом году: два студента в течение двух летних месяцев работали полный день, однако каждый занимался отдельным проектом, и выходом годного обоих проектов не являлись исходные тексты программного продукта. Кроме того, было заранее оговорено, что результатом стажировки не будет являться «продукт» — это потребовало бы вовлечения большого количества внешних людей. Заказчик проекта подтверждает, что работой можно пользоваться (техническая приёмка), а стадия релиза откладывается до момента синхронизации всех этих «внешних людей».
В первом проекте требовалось создать несколько операционных систем, адаптированных под использование в учебном процессе факультета3. Заказчиком выступал преподаватель (я), а финальным тестированием было внедрение этих ОС.
Второй проект состоял в написании компонента документации к «Альт Платформе» — несколько десятков примеров процесса разработки ПО, применения инструментов в этом процессе и пояснительных текстов к ним4. Заказчиком выступал руководитель проекта документирования «Альт Платформы», а финальным тестированием послужило согласие запустить процесс преобразования форматов из Markdown (в котором работал студент) в DocBook (формат разработки документации «Базальт СПО»).
Организация процесса тоже не поменялась:
- Вся работа ведётся дистанционно
- Еженедельно проходят аудиторные встречи, на которых «синхронизируются мозги»
- Ежедневно проходят созвоны-«пятиминутки»
- Предмет ежедневной отчётности — публикация в GIT + отчёт во внутреннем wiki
- Оперативное общение — в Telegram
- Оперативная консультация со специалистами «Базальт СПО» по необходимости
Не то, чтобы это было каким-то особым открытием, но формат «пятиминутки» хорошо поддерживает темп разработки.
Пятиминутка проходит ежедневно с утра. На ней каждый участник процесса (включая руководителя) старается за 5 минут описать, что он сделал за прошлый день, с какими проблемами столкнулся, и что планирует делать сегодня. Затем следует общее обсуждение возникших вопросов. В этом году пятиминутки длились в среднем полчаса (для сравнения — в 2023-м обсуждение могло затянуться часа на два).
Предварительно в группу Telegram каждый участник посылает очень короткий план своего рассказа:
#летучка 1. Понатыкали фич в ACBK Prac и VBox, вычитал 12 2. Непонятно с финишным таймлайном (время пока есть) 3. Помочь в документации с man (идеал недостижим!), рутина: приёмка, вычитка
Главная задача пятиминутки — определить, кто и как будет решать «неразрешимые проблемы», то есть определить компетенции. Технические затруднения и лакуны планирования обычно можно поправить в процессе общего обсуждения, за всё остальное должен отвечать руководитель.
Стажировка неспроста названа интенсивной. На вхождение в тему и на приёмку работы выделяется по неделе, оставшиеся шесть — собственно работа. Разумеется, «неделя на вхождение в тему» — срок стократно (практически буквально!) заниженный. Оба студента в момент поступления на стажировку уже имели опыт работы в соответствующей области. Один студент разрабатывал ОС для своей курсовой, другой — с отличием закончил курс по «Разработке в Linux», сопроводив его публичным коспектом. Более того, в течение всего предшествующего учебного года я принимал активное участие в обоих проектах — был консультантом по курсовой5 и вносил много смысловых правок в конспект6.
Стоит отметить, что ожидать от студента выхода годного в течение первого учебного года смысла не имеет — недостаточно опыта (как в предметной области, так и опыта коммуникации).
Сама стажировка — в предложенном формате — требует от руководителя полной занятости. Рабочие вопросы должны решаться как можно быстрее: часто возникают затруднения, которые останавливают работу — этот день можно вычёркивать из графика (а всего дней в графике сорок). Без утренней пятиминутки выход годного падает раза в два — были примеры, когда участники с удовольствием работали на энтузиазме по выходным, но потом выяснялось, что половина работы по неопытности ушла не в ту степь. За это время я исправил несколько пакетов в репозитории, а два из них — написал с нуля.
Неделя на «приёмку» работы — тоже крайне заниженный срок. Из процедуры приёмки мы выкинули все формальности, кроме самого факта применимости результата. Это не значит, что формальной приёмки не будет — просто она займёт, как это всегда бывает, примерно полгода. Главная цель этого периода — привести репозитории в состояние, при котором любой желающий сможет ими пользоваться и вносить правки.
Резюме. Для эффективной организации стажировки:
- Студента надо обучать примерно год без выхода годного.
- Надо разделять стадии готовности и формальной приёмки:
- готовность означает возможность эксплуатации…
- …с участием специалиста ALT,
…а приёмка планируется за последующие +полгода.
Проектам требуется сопровождение — лучше меньше сделать, но обеспечить отторжимость
Арефьев В.А., Барабанов Н.С., Курячий Г.В. Организация рабочего процесса разработки системы проверки домашних заданий. Объединённая конференция "СПО: от обучения до разработки: материалы конференции" М. "МАКС Пресс" 2023 г., стр. 14-17 (1)
Осипчук А.А., Капитонова А.П., Курячий Г.В. Формирование специализированного образа виртуальной машины для курса «Практические аспекты сетевых протоколов в Linux». в сборнике Ломоносовские чтения-2025: научная конференция, факультет ВМК МГУ имени М.В.Ломоносова. Тезисы докладов, серия «Вычислительная математика и кибернетика», издательство ООО "МАКС Пресс" (Москва), тезисы, с. 87-88 DOI (5)