Обучение командной разработке ПО на кейсах индустриальных партнеров: как мы это делаем в Политехе HD

Обучение командной разработке ПО на кейсах индустриальных партнеров: как мы это делаем в Политехе
00:37:59

12n.ru 16451 ролик

как мы это делаем в Политехе.

В. М. ИцыксонПри подготовке специалистов по разработке программного обеспечения в университетах, как правило, обучают основам программирования и алгоритмизации, преподают языки программирования, алгоритмы и структуры данных, объектно-ориентированное проектирование и анализ, функциональное программирование и т.п. 

Помимо знаний, которые даются в университете, индустрии нужны следующие умения и навыки: умение договариваться с заказчиками, формировать техническое задание, обосновывать свои решения, навыки командной работы и коммуникации. Нужно знание гибких процессов разработки ПО, средств автоматизации проектирования, разработки, тестирования, развертывания. Надо уметь оценивать риски и вовремя их предотвращать. Немаловажно умение публично представлять и защищать проектные и технические решения.Мы поставили цель – научить студентов разрабатывать сложные индустриальные программные проекты в команде. 

Для достижения цели реализуется ряд задач: научить работать в команде, коммуницировать с заказчиком, обучить проектному менеджменту, грамотному обоснованию выбранных технических решений, использовать промышленный инструментарий, демонстрировать результаты проекта, защищать свои решения, проводить оценку рисков и разрешать риски.В магистратуре есть дисциплина «Технологии разработки программного обеспечения», рассчитанная на 2 семестра. Предусмотрены 2 вида занятий – лекции и курсовой проект. Мы просим российские IT-компании представить задачи, над которыми могли бы работать студенты. Обычные курсовые проекты заменяются групповыми. Студенты работают над реальными промышленными кейсами.В начале каждого семестра формируется 10-12 кейсов, представляемых разными промышленными партнёрами. Трудоёмкость кейса предполагает, что над ним будет работать команда из 5-6 человек в течение 4 месяцев. Выполнение проекта предусматривает 5 публичных встреч. По итогам студенты получают зачёт по курсовому проекту. В оценке учитывается личное участие студента и групповой успех всей команды. Студенты получают денежное вознаграждение за успешно выполненный проект.Каждый год мы привлекаем 3-5 промышленных партнёров, каждый из которых предлагает 1-3 кейса. Большинство проектов программные, но есть ещё программно-аппаратные и изредка исследовательские проекты. Осуществляется либо случайное, либо случайно-справедливое распределение по командам, когда мы пытаемся сформировать команды, примерно одинаковые по силам. Несколько раз мы использовали целевое распределение, когда нужно было быть уверенным что в команде окажутся все студенты с нужными компетенциями. 

Первая встреча со студентами – это старт проектов. Встречаются все студенты (более 50 человек), преподаватели и представители заказчиков. На встрече объявляются составы команд, заказчики представляют кейсы, команды распределяют кейсы между собой, для каждой команды назначается преподаватель-куратор, команды получают контакты заказчика.От студентов требуется регулярное взаимодействие с заказчиком и куратором. Распределение ролей и задач в команде отдаётся на откуп студентам. Требуется равномерное участие в работе всех членов команды. В процессе выполнения проекта мы учим студентов учитывать и анализировать риски. Предъявляется ряд технических требований: ведение проекта на открытом хостинге; использования VCS, систем багтрекинга; автоматизация сборки, использование CI/CD; автоматизация тестирования. 

Взаимодействие с заказчиков предусматривает несколько очных встреч на его территории, а также дистанционные встречи. С заказчиком согласовывается техническое задание, периодически проводятся консультации, обсуждаются результаты.От студентов требуется использование систем контроля версий, багтрекинга, хостинга проектов, автоматизации сборки, непрерывной интеграции и непрерывного развертывания, разработки, автоматизации тестирования, проведения Code review, контейнеризации, организации коммуникаций, а также использование среды разработки, канбан-доски и скрам-доски.Дальнейшие встречи – это промежуточные ежемесячные спринты. На них участвуют все команды, кураторы, по возможности? представители заказчиков. 

Каждая команда докладывает результаты предыдущего спринта, кураторы и представители заказчика задают вопросы, команда защищает свой проект.На финальном представлении проектов демонстрируется действующее приложение/устройство/система. Студенты получают обратную связь от заказчика и коллегиально принимается решение об успешности проекта.Такого рода взаимодействие позволяет университету эффективно организовать проектную деятельность, развить у студентов навыки для работы в индустрии. Студенты получают бесценный опыт работы в команде, погружение в реальный мир промышленных проектов, возможность заработать небольшие деньги и показать себя промышленной компании с перспективой будущего трудоустройства. Компании-партнёры получают возможность «дешевой» обкатки прототипов решений, оценить студентов в деле и прямой доступ к потенциальным стажерам/сотрудникам.

RSS
Нет комментариев. Ваш будет первым!