Опыт стажировки студентов ВМК МГУ в «Базальт СПО»

или

Это мой второй опыт интенсивной летней стажировки студентов. Первый состоялся в 2023 году1. Формат стажировки был похожий, а вот тематика была другая — разработка ПО2. Результат был вполне удовлетворительный — до конца семестра система была внедрена в учебный процесс и используется до сих пор.

Главная проблема успешных «студенческих проектов» — текучка кадров, и как следствие code rot и очень тяжёлое сопровождение (мною).

Формат сохранился и в этом году: два студента в течение двух летних месяцев работали полный день, однако каждый занимался отдельным проектом, и выходом годного обоих проектов не являлись исходные тексты программного продукта. Кроме того, было заранее оговорено, что результатом стажировки не будет являться «продукт» — это потребовало бы вовлечения большого количества внешних людей. Заказчик проекта подтверждает, что работой можно пользоваться (техническая приёмка), а стадия релиза откладывается до момента синхронизации всех этих «внешних людей».

В первом проекте требовалось создать несколько операционных систем, адаптированных под использование в учебном процессе факультета3. Заказчиком выступал преподаватель (я), а финальным тестированием было внедрение этих ОС.

Второй проект состоял в написании компонента документации к «Альт Платформе» — несколько десятков примеров процесса разработки ПО, применения инструментов в этом процессе и пояснительных текстов к ним4. Заказчиком выступал руководитель проекта документирования «Альт Платформы», а финальным тестированием послужило согласие запустить процесс преобразования форматов из Markdown (в котором работал студент) в DocBook (формат разработки документации «Базальт СПО»).

Организация процесса тоже не поменялась:

Не то, чтобы это было каким-то особым открытием, но формат «пятиминутки» хорошо поддерживает темп разработки.

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

Предварительно в группу Telegram каждый участник посылает очень короткий план своего рассказа:

#летучка 
1. Понатыкали фич в ACBK Prac и VBox, вычитал 12 
2. Непонятно с финишным таймлайном (время пока есть)
3. Помочь в документации с man (идеал недостижим!), рутина: приёмка, вычитка

Главная задача пятиминутки — определить, кто и как будет решать «неразрешимые проблемы», то есть определить компетенции. Технические затруднения и лакуны планирования обычно можно поправить в процессе общего обсуждения, за всё остальное должен отвечать руководитель.

Стажировка неспроста названа интенсивной. На вхождение в тему и на приёмку работы выделяется по неделе, оставшиеся шесть — собственно работа. Разумеется, «неделя на вхождение в тему» — срок стократно (практически буквально!) заниженный. Оба студента в момент поступления на стажировку уже имели опыт работы в соответствующей области. Один студент разрабатывал ОС для своей курсовой, другой — с отличием закончил курс по «Разработке в Linux», сопроводив его публичным коспектом. Более того, в течение всего предшествующего учебного года я принимал активное участие в обоих проектах — был консультантом по курсовой5 и вносил много смысловых правок в конспект6.

Стоит отметить, что ожидать от студента выхода годного в течение первого учебного года смысла не имеет — недостаточно опыта (как в предметной области, так и опыта коммуникации).

Сама стажировка — в предложенном формате — требует от руководителя полной занятости. Рабочие вопросы должны решаться как можно быстрее: часто возникают затруднения, которые останавливают работу — этот день можно вычёркивать из графика (а всего дней в графике сорок). Без утренней пятиминутки выход годного падает раза в два — были примеры, когда участники с удовольствием работали на энтузиазме по выходным, но потом выяснялось, что половина работы по неопытности ушла не в ту степь. За это время я исправил несколько пакетов в репозитории, а два из них — написал с нуля.

Неделя на «приёмку» работы — тоже крайне заниженный срок. Из процедуры приёмки мы выкинули все формальности, кроме самого факта применимости результата. Это не значит, что формальной приёмки не будет — просто она займёт, как это всегда бывает, примерно полгода. Главная цель этого периода — привести репозитории в состояние, при котором любой желающий сможет ими пользоваться и вносить правки.

Резюме. Для эффективной организации стажировки:

  1. Студента надо обучать примерно год без выхода годного.
  2. Надо разделять стадии готовности и формальной приёмки:
    • готовность означает возможность эксплуатации…
    • …с участием специалиста ALT,
    • …а приёмка планируется за последующие +полгода.

  3. Проектам требуется сопровождение — лучше меньше сделать, но обеспечить отторжимость

  1. Арефьев В.А., Барабанов Н.С., Курячий Г.В. Организация рабочего процесса разработки системы проверки домашних заданий. Объединённая конференция "СПО: от обучения до разработки: материалы конференции" М. "МАКС Пресс" 2023 г., стр. 14-17 (1)

  2. https://github.com/FrBrGeorge/HWorker (2)

  3. https://github.com/ArtyomOsipchuk/mkimage-profiles (3)

  4. https://github.com/FrBrGeorge/Labs_of_AltLinuxAppDev (4)

  5. Осипчук А.А., Капитонова А.П., Курячий Г.В. Формирование специализированного образа виртуальной машины для курса «Практические аспекты сетевых протоколов в Linux». в сборнике Ломоносовские чтения-2025: научная конференция, факультет ВМК МГУ имени М.В.Ломоносова. Тезисы докладов, серия «Вычислительная математика и кибернетика», издательство ООО "МАКС Пресс" (Москва), тезисы, с. 87-88 DOI (5)

  6. https://github.com/UsamG1t/Methodics_of_LinuxAppDev (6)

FrBrGeorge/OSDevConf2025/ProbationHandout (последним исправлял пользователь FrBrGeorge 2025-09-18 13:26:32)