В середине марта в Мюнхене прошла Joint Advanced Student School 2019 (JASS) — недельная англоязычная студенческая школа-хакатон++ по разработке программного обеспечения. О ней в 2012 году уже писали на Хабре. В этом посте мы расскажем о школе и поделимся впечатлениями нескольких студентов «из первых рук».



Каждый год компания-спонсор (в этом году — Zeiss) предлагает ~20 студентам из Германии и России несколько проектов, а через неделю команды должны представить свои наработки по этим направлениям. В этом году нужно было либо сделать видеозвонки с дополненной реальностью под Android, либо придумать и запрототипировать UI для системы predictive maintenance, либо поучаствовать в секретном Project Cataract.

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

Проекты и цели


Каждый год у школы есть компания-спонсор, которая предоставляет проекты и менторов для студентов. В этому году это была компания Zeiss, которая занимается высокоточной оптикой (но не только!). В начале недели представители компании («заказчики») представили участникам три проекта для реализации, после чего студенты разбились на команды и в течение недели делали proof-of-concept.

Цели школы — культурный обмен между студентами и возможность дать начинающим программистам опыт работы над реальными проектами. На школе не требуется получить полностью готовое приложение, процесс больше похож на R&D: все проекты связаны с деятельностью компании, и хочется получить proof-of-concept, причем такой, чтобы было не стыдно показать его менеджерам внутри компании.

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

В каждой команде, помимо студентов из разных стран, также был «лидер» — студент-аспирант, который управлял командой, раздавал задачи и излучал знания.

Всего было предложено три проекта, про каждый из них расскажут студенты ВШЭ — Санкт-Петербург, попавшие на проект.

Augmented Reality


Надежда Бугакова (1 курс магистратуры) и Наталья Мурашкина (3 курс бакалавриата): Нам требовалось портировать приложение для видеосвязи с augmented reality на Android. Такое приложение было сделано в рамках другого месячного хакатона под iOS и HoloLens, но версии под Android не было. Это может быть полезно для совместных обсуждений каких-нибудь спроектированных деталей: один человек вертит виртуальную деталь и обсуждает с остальным.

Predictive Maintenance


Всеволод Степанов (1 курс магистратуры): На производстве бывают дорогие роботы, останавливать которых для техобслуживания дорого, но ремонтировать ещё дороже. Робот обвешан датчиками и хочется понимать, когда имеет смысл останавливать на техобслуживание — это как раз predictive maintenance. Для этого можно использовать машинное обучение, но требуется много размеченных данных. Также нужны эксперты, которые смогут по графикам хоть что-нибудь понять. Нашей задачей было сделать приложение, которое выделяет предполагаемые аномалии в данных с датчиков и позволяет эксперту и data scientist’у на них вместе посмотреть, обсудить и скорректировать модель.

Cataract


Анна Никифоровская (3 курс бакалавриата): к сожалению, нас попросили не разглашать детали проекта. Описание и презентацию даже убрали с сайта TUM, где лежат остальные проекты.

Рабочий процесс


Школа небольшая и ламповая: в этом году в JASS участвовали около двадцати студентов разной степени подготовки: от первого курса бакалавриата до оканчивающих магистратуру. Среди них было восемь человек из Мюнхенского технического университета (TUM), четыре студента из питерского кампуса ВШЭ, ещё четверо из Университета ИТМО и один студент ЛЭТИ.

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

Расписание на неделю выглядело так:

  • Понедельник — день презентаций;
  • Вторник и среда — два дня работы;
  • Четверг — день отдыха, экскурсий и промежуточных презентаций (customer’s review), чтобы можно было обсудить направление движения с заказчиками;
  • Пятница и суббота — ещё два дня работы;
  • Воскресенье — финальная презентация с ужином.

Надежда Бугакова (1 курс магистратуры): Наш рабочий день проходил примерно так: утром приходим и стэндапимся, то есть все рассказывают, что сделали за вечер и планируют сделать днём. Потом работаем, после обеда — ещё один стэндап. Очень поощряли использование доски с бумажками. Наша команда была больше остальных: семь студентов, лидер, плюс у нас очень часто тусовался заказчик (ему можно было задавать вопросы по предметной области). Часто мы работали в парах или даже тройках. А ещё у нас был человек, который разрабатывал исходное приложение под iOS.



Всеволод Степанов (1 курс магистратуры): В каком-то смысле использовался SCRUM: один день — один спринт, два стэндапа в день для синхронизации. У участников были смешанные мнения по поводу эффективности. Некоторым (в том числе мне) показалось, что слишком много болтовни.

В первый день после презентаций обсуждали план, общались с заказчиком, пытались понять, что нужно сделать. В отличие от команды Нади, с нами заказчик в течение проекта не взаимодействовал. И команда была поменьше — 4 студента.

Анна Никифоровская (3 курс бакалавриата): На самом деле, правила в командах не то чтобы строго соблюдались. Изначально нам было дано много наставлений по проведению стэндапов, а-ля: все в кружочке, обязательно стоя, говорить «я обещаю». В реальности в моей команде строгих правил не придерживались и стэндапы проводились не потому, что надо, а потому что нас много, и надо понимать, кто что делает, синхронизировать усилия и так далее. У меня возникло ощущение, что у нас были естественные обсуждения прогресса и проекта.

У меня в проекте заказчик ничего не смыслил в программировании, а понимал только в оптике. Это оказалось очень круто: он нам, например, объяснял, что такое яркость освещения и экспозиция. Он очень сильно участвовал в подкидывании метрик и идей. При разработке мы постоянно показывали ему промежуточный результат и получали мгновенную обратную связь. А с технической стороной нам сильно помогал лидер: в команде практически никто не работал с двумя популярными технологиями, а лидер мог об этом рассказать.

Представление результатов


Всего было две презентации: в середине школы и в конце. Длительность — минут 20, потом вопросы. Накануне перед каждой презентацией участники прогоняли выступление перед профессором из TUM для тренировки.

Всеволод Степанов (1 курс магистратуры): Поскольку наши презентации могли показать менеджерам, было важно сделать акцент на возможные сценарии использования. В частности, каждая из команд на презентации запилила ещё некоторый software theater: вживую показывали, как разработка может использоваться. Наша команда в итоге сделала прототип веб-приложения, который показали менеджерам UI/UX, они порадовались.

Надежда Бугакова (1 курс магистратуры): Мы успели сделать картинку в AR и соединение между телефонами так, чтобы один человек мог крутить объект, а другой — наблюдать это в реальном времени. Передавать звук, к сожалению, не получилось.

Интересно, что команде было запрещено выставлять одного и того же докладчика и на customer's review (презентацию в середине), и на финальную презентацию, чтобы у большего количество участников была возможность выступить.



Внерабочий процесс и впечатления


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

В четверг была большая поездка в Оберкохен, где располагается штаб-квартира Zeiss. Совместили много активностей: и хайкинг, и промежуточную презентацию перед заказчиками и тусовку.

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

Анна Никифоровская (3 курс бакалавриата): В Оберкохен мы поехали очень рано. Для участников школы был заказан автобус прямо от отеля. В Оберкохене находится главный офис Zeiss, поэтому на предварительные презентации наших работ посмотрели не только «заказчики», которые работали непосредственно с нами, но и кто-то более важный. Сначала нам провели экскурсию по офису — от музея истории, где нам показали, как изменялась индустрия оптики до Zeiss и после Zeiss, до собственно рабочих мест, где мы увидели самые разные устройства для измерений/проверки каких-то деталей и как с ними работают люди. Там почти всё защищено NDA и фотографировать нельзя. А в конце нам даже показали завод, где производятся огромные машины вроде томографов.



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



Что ещё запомнилось?


Всеволод Степанов (1 курс магистратуры): Для того чтобы мы могли поиграться с данными, местный профессор дал нам данные за год со своей Теслы. А потом под предлогом «давайте я вам теперь покажу Теслу вживую» он нас на ней покатал. Ещё была горка с четвертого этажа на первый. Стало скучно — спустился, взял коврик, поднялся, скатился, положил коврик.



Анна Никифоровская (3 курс бакалавриата): Знакомства — это всегда очень круто. Знакомство с интересными людьми — круче вдвойне. Знакомство с интересными людьми, с которыми можно ещё и вместе поработать — круто втройне. Ну, вы поняли, человек существо социальное, и программисты исключением не являются.

А что запомнилось по работе?


Анна Никифоровская (3 курс бакалавриата): Было весело, про всё можно было спрашивать и уточнять. А ещё традиция немцев стучать по столам лекторам: оказывается, у них принято отделять речь академиков от всех остальных. И человеку из академической сферы (лектор, профессор, старший студент, etc) принято стучать по столу в знак одобрения/благодарности за лекцию. Остальным же (представителям компаний, обычным людям, актерам в театре) принято аплодировать. Почему так? Один из немцев в качестве шутки-объяснения сказал: «Ну, просто когда лекция заканчивается, все одной рукой уже убирают вещи, так что хлопать не удобно».

Всеволод Степанов (1 курс магистратуры): Интересно, что среди участников были не только программисты, но и, например, робототехники. Хотя все проекты и школа в целом по кодингу.

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

Надежда Бугакова (1 курс магистратуры): Тыкаться в AR было весело. А ещё у меня теперь есть классное приложение на телефоне, которое я могу показывать.

Бытовые условия


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

В университете у каждой команды была своя комната с доской. Иногда чем-нибудь ещё: например, у одной команды был кикер, а у другой команды — много свободных iMac’ов, за которыми можно было работать.



Всеволод и Надежда: Работали мы обычно до 21. Ещё была комната 24/7 с лимонадом и 3-4 раза в день туда приносили ништяки (бутерброды, бретцели, фрукты), но это довольно быстро съедалось.

Кому порекомендуете?


Всеволод и Надежда: Всем бакалаврам-программистам! Стоит знать английский, но это прекрасный опыт. Можно попробовать всякие модные штуки.

Анна Никифоровская (3 курс бакалавриата): Не стоит бояться, если вам кажется, что у вас недостаточно знаний, опыта, чего угодно. На JASS были люди с самым разным бэкграундом, от первого и до пятого курса, с разным опытом работы и разным опытом хакатонов/олимпиад/школ. В результате команды были очень качественно сформированы (во всяком случае моя точно). И у нас каждый что-то делал и каждый чему-то учился.

Да, вы можете узнать что-то новое, попробовать себя в ускоренной разработке, посмотреть, как раскрываетесь в условиях ограниченного времени и впечатлиться, что можете так много в короткий срок. На мой взгляд, при этом, по сравнению с олимпиадами или обычными хакатонами, сильно снижен уровень стресса и спешки. Так что удивление и удовольствие от сделанного есть, а тревоги и прочего нет. И я считаю, что это прекрасно. Для себя, я, например, выяснила, что могу заметить, если работа распределена в команде как-то не так и даже поспособствовать исправлению этого. Я считаю это собственной маленькой победой в сфере communication and leadership skills.

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

Комментарии (1)


  1. stalker1984
    30.04.2019 19:56

    Каждый Код? Есть в этом что-то… Что-та бескрамотное.