Noveo

Наш блог Code Retreat

Code Retreat

image

Кодить — хорошо, а хорошо кодить — ещё лучше. Примерно под таким девизом прошёл первый пробный Code Retreat в рамках нашего Noveo Software University, который обединяет в себе и долгосрочную стажировку по Java, и зимние школы по Android, iOS и Web. В прошлое воскресенье мы собрались, чтобы потратить 4 часа на более тесное знакомство стажёров Java-направления между собой и на открытие друг другу новых аспектов программирования.

Итак, что же такое Code Retreat?! Это встреча разработчиков, состоящая из нескольких сессий программирования, удовлетворяющих простым правилам:

— длительность сессии 45 минут;

— все программирование идет в парах и только в парах;

— каждую сессию пары случайно перемешиваются;

— по окончании каждой сессии весь написанный код удаляется;

— каждую сессию решается одна и та же задача, но с различными дополнительными ограничениями.

Для решения была выбрана классическая для Code Retreat задача — игра «Жизнь» Джона Конвея. Некоторые из участников уже заранее знали об этом (мы неосторожно засветили название предстоящего мероприятия), а кому-то правила были в новинку. В любом случае, первые 45 минут были проведены продуктивно, процесс заработал практически у всех, а одна команда успела даже написать простенькую визуализацию. Но это было бы слишком легко, чтобы тратить половину выходного дня.

Вторая сессия началась с краткого описания, что такое TDD и как можно за 10 минут ему научиться. Quick Dive получился успешным, через 5 минут у всех команд бодро краснели тесты, которые позже начали зеленеть. Весна-весна… Но, опять же, не всё было так просто. Чтобы команды работали теснее, «кодеру» можно было пользоваться лишь клавиатурой, «навигатору» — только мышкой. Забыл хоткей — попроси друга помочь!

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

image

После второй сессии последовал небольшой перерыв, на котором мы обсудили впечатления от двух прошедших сессий программирования. Самым ярким впечатлением было такое: «Это как ехать на велосипеде, когда левая рука привязана к правой ноге, причём ты проехал 200 метров – и тебя отбрасывает на старт».

Ну что ж, сказано — сделано; со следующей сессии мы действительно привязали руку к ноге участникам одной команды. Вторая команда превратилась в пиратов: ноги им отпиливать не стали, но вот повязки на глаза предоставили. А ещё задание в очередной раз усложнилось: теперь каждый метод должен был содержать не более трёх строк. Этого усложнения могло бы и не быть, не выйди незадолго до этого релизная версия Java 8, которая уже поддерживает очень много всего полезного, чтобы писать код быстро и ёмко. Так что один Quick Dive — и программировать стало ещё интереснее.

image

Четвёртая, последняя сессия была всецело посвящена «карательному программированию». В ней ограничения были направлены на то, чтобы окончательно сделать жизнь и «Жизнь» неудобной. Никаких локальных переменных, нельзя использовать циклы или условия, ‑ при этом все старые ограничения и неудобства сохраняются. Жестко? Зато после этой 45-минутки можно было вздохнуть полной грудью и порадоваться, как же легко писать код безо всяких навязанных условий.

image

Прошло всё отлично. Успеть за 4 часа проникнуться TDD и лямбдами, сделать 16 проектов (пускай одинаковых и не всегда результативных) и поработать 16 разными командами — в «обычных» условиях займёт примерно около года. Тут же всё вышло гораздо быстрее и веселее. Все волей-неволей стали общаться друг с другом и прониклись ценностями командной работы и удобных рабочих условий, а организаторы решили, раз пробный шар попал точно в цель, провести такую же веселуху уже для сотрудников компании. Ждите скоро новый Code Retreat!

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

НазадПредыдущий пост ВпередСледующий пост

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: