Код
#статьи

Скрамы, мемасики, победа над хаосом: как устроен первый кросс-командный диплом в Skillbox

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

chinahbzyg / shutterstock

В мае 2021 года в Skillbox запустился новый формат командного диплома по Java-разработке — теперь фронтенд, бэкенд и тестировщики вместе создают один общий проект. Мы расспросили тимлида пилотной дипломной группы Кирилла Кошаева и её участников Марка Налимова, Марию Алексееву и Олега Прохорова о результатах этого эксперимента.

Как было с дипломами раньше

Раньше команды для подготовки дипломов по Java-разработке собирались исключительно из студентов этого курса, то есть бэкенд-разработчиков. Но им не всегда хватало навыков для того, чтобы углублённо модифицировать фронтенд или администрировать сервер, на котором разворачивается дипломный проект.

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

Но слишком длительный поиск решения проблем вызывал дискомфорт и служил демотивирующим фактором.

В результате формат диплома в направлении Java-разработки решили изменить.

Как стало сейчас

Идея кросс-курсового диплома давно обсуждалась преподавателями и продюсерами Skillbox — группы сотрудников разрабатывали её независимо друг от друга. В мае этого года они объединились и воплотили задуманное: продюсер Олег Садовников обеспечил организационную часть, а тимлид групповых дипломов «Профессия Java-разработчик PRO» и автор курса «Java-фреймворк Spring» Кирилл Кошаев стал его тимлидом, то есть лидером группы разработчиков с менеджерскими функциями.

«В Skillbox много курсов, и вместе они образуют всю необходимую инфраструктуру для техничной работы команды разработчиков. Условно, это три ветви: бэкенд, фронтенд и тестирование. Поэтому лучшим решением стало пригласить к интеграции с дипломным проектом студентов курса по Java учащихся других курсов — „Фреймворк Vue.js“и „Автоматизированное тестирование на Java“», — рассказывает Кирилл.

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

Разработка соцсети: победить хаос и прийти к общему знаменателю

В качестве референса была взята соцсеть «ВКонтакте», но у команды были и свои уникальные идеи. Например, фронтенд-разработчик Марк Налимов оформлял нестандартную пагинацию — он работал над лентой приложения, которая не должна была напоминать ленту «ВКонтакте» или Facebook*. Среди других задумок — посты, которые не видны в общем поиске (эта идея почти нигде не реализована), разделение переписок на личные и групповые (такая функция есть в Telegram), начисление баллов за интересные и информативные посты, которые понравились другим пользователям (баллы есть, например, во «ВКонтакте», но они не поощряют активность, а покупаются за деньги).

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

Команда работала по методологии SCRUM: три месяца разработки были разделены на несколько спринтов по две недели каждый. В начале каждого спринта команда собиралась на онлайн-встречу, на которой участники анализировали текущее состояние проекта и составляли планы. «Мы представляли хотелки потенциального пользователя и разбивали их реализацию на конкретные технические задачи», — рассказывает Кирилл. Группа встречалась и на ежедневных скрамах, их цель была в обсуждении сделанного за сегодняшний день, задач на завтра и решении сиюминутных вопросов.

В этом смысле важно было договориться о времени ежедневных скрамов на самой первой встрече и не отступать от него дальше. Как объясняет Кирилл, это обусловлено не столько требованиями методологии, сколько чисто физическими ограничениями: участники команды живут в разных часовых поясах и имеют разные жизненные условия. Заранее оговорённое расписание позволяет свести всех в одной точке без дополнительных усилий.

По окончании спринта проводится ещё один созвон — выкатка. На выкатку приглашают гостей — обычно это преподаватели курсов и другие сотрудники Skillbox. Формат абсолютно прозрачен — любой сотрудник образовательной платформы может присоединиться и задать команде свои вопросы. После выкатки всё начинается заново — планирование спринта, спринт со встречами на daily scrum, следующая выкатка.

Лента социальной сети ZERONE

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

Бэкенд-разработчик Олег Прохоров признаётся, что различия в методологии стали поначалу причиной небольшого хаоса в команде, но затем участникам удалось самоорганизоваться и прийти к взаимопониманию.

Страница регистрации в ZERONE

О задачах тимлида: добавить в процесс щепотку веселья и мемов

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

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

«Я исходил из того, что, помимо рабочих моментов, важно создать комфортную атмосферу внутри коллектива — не быть сухим и не забывать про щепотку фана: отправлять в чат мемы, поздравления с профессиональными праздниками», — говорит Кирилл.

Главное кредо командной работы: чем лучше люди знают друг друга, тем лучше они работают вместе.

Нередко сплочённость команды позволяла успешно выходить из кризисных ситуаций. «Первые два спринта я тянул все задачи по фронту на себе — другие фронтенд-разработчики были заняты на работе. Было сложно, но результат превзошёл мои ожидания — у меня всё получилось благодаря самоотдаче коллег-бэкендеров, без которых не были бы реализованы многие мои решения», — делится Марк.

Тимлид проекта Кирилл Кошаев

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

За три месяца непрерывного взаимодействия из группы студентов получается сплочённая, дружная команда. Группа Кирилла была самой первой, но сейчас кросс-курсовых проектов уже несколько — пять тимлидов ведут их одновременно. «Очень интересно наблюдать за тем, как разные специалисты направляют свои группы. Мы участвуем в презентациях друг друга, ходим на выкатки к другим командам, стараемся обмениваться опытом», — говорит Кирилл.

«Студенты начинают мыслить на уровне продуктовой задачи»

Защита диплома проводится в виде презентации проекта перед заказчиками, роли которых исполняют преподаватели. Социальная сеть ZERONE получила одобрение комиссии, но оценка далеко не главное, что участники вынесли из проекта. Командный диплом предлагает принципиально новое отношение к учебным проектам и разработке. «Студент отходит от парадигмы „домашнее задание — оценка“ и переходит к мышлению на уровне продуктовой задачи. Есть задача, и я с командой должен понять, что сделать для того, чтобы её решить», — отмечает Кирилл.

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

Правда, некоторые задумки реализовать не получилось. Не успели сделать полноценный чат и бэкенд для администратора, не добавили мелкие фишки вроде счётчика введённых символов в форме обратной связи. Зато реализовали полноценную локализацию, симпатичные анимированные иконки для лайков и дизлайков, несколько конфигураций — для локальной и удалённой разработки, запуск метода по расписанию и многое другое.

Конечно, конкуренцию нынешним соцсетям ZERONE не составит, но ребята не хотят бросать проект и создали документ, куда записывают идеи по доработке соцсети — сейчас там уже семь таких предложений. «Я периодически просматриваю код и обновляю его, если нахожу что-то неуместное, — в качестве хобби и самопроверки», — рассказывает бэкенд-разработчик Мария Алексеева. Олег подытоживает: «Мы бросили себе вызов: делали не как легче, а как правильнее, как происходит в реальных проектах. Всё было на хорошем уровне».

Личный кабинет администратора в ZERONE

Коллаборация — это наше всё. И не только наше…

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

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

Замечают талантливых учеников и преподаватели. Например, Кирилл работает техническим директором в компании по разработке торговых систем и обещает, что обратит внимание на своих студентов, когда станет набирать новых сотрудников в команду.

* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Java-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована