В рамках 11-ой встречи “Клуба анонимных разработчиков” мы провели свой первый Coding Dojo в Украине. Впервые Coding Dojo сессию в Киеве провел Johannes Brodwall, которого мы пригласили выступить на конференции XP Days Ukraine. Нам очень понравился данный формат и мы захотели начать проводить подобные встречи в рамках клуба. Johannes составил подробную инструкцию по проведению, которая очень сильно нам в этом помогла.
Это был интересный опыт и для нас и для участников. На встречу пришло 14 разработчиков, вооружившись ноутбуками с настроенной средой для разработки. Мы сформировали 7 пар, потому что встреча была посвящена теме парного программирования и TDD. Пары собирались программировать на Java и .NET.
Началось все с небольшой теоретической части. Мы рассказали о принципах парного программирования, его достоинствах и нюансах. После этого продемонстрировали участникам на простеньком примере как работает пинг-понг сессия парного программирования. И пришла очередь практики…
Первое задание было в стиле тренировочного “ката”. Участники должны были в паре решить несложную математическую задачку – разложить число на простые делители. При этом они обязаны были использовать технику TDD, работая в паре по принципу пинг-понг. Сначала один участник пишет падающий тест и передает клавиатуру другому. Тот реализует код, чтобы тест проходил и пишет следующий падающий тест. Это задание стало настоящей проверкой на знание языка, потому что делать его нужно было в специальной платформе, которая не имеет возможностей современных IDE. Данный факт некоторых участников поставил в тупик. 🙂 Но в итоге практически все справились с заданием и можно было переходить к самому интересному.
На втором этапе участникам предстояло посоревноваться между собой. Тут уже не было никаких ограничений на стиль и подход к разработке. Можно было работать одному, но мы настоятельно рекомендовали делать это в парах. Суть соревнования заключалась в том, что участники должны были отвечать на вопросы, задаваемые сервером. За правильные ответы им начислялись баллы, за неправильные ответы баллы снимались. Побеждал тот, кто набрал больше всех баллов. Участники могли делать что угодно. Каждый выбирал свою собственную стратегию. В результате, около двух часов команды отчаянно сражались между собой. Они постоянно видели перед собой на экране свою текущую позицию в рейтинге, кто еще больше добавляло давления.
В соревновании была обыграна очень жизненная ситуация: у вас нет времени на рефакторинг, на тесты, на построение классного дизайна и прочие активности. Вам надо выдавать результат. Тем не менее, через какое-то время вы начинаете осознавать, что без всего перечисленного вы просто заходите в тупик и не можете больше выдавать результат со стабильной скоростью. Пример очень поучительный и, надеемся, многих заставил задуматься.
В результате жесткой борьбы первое место вырвала команда в составе Виталика Тимчишина и Тараса Свирского. Второе место занял единственный участник, который работал один – Марат Юлдашев. Он отстал всего на 30 очков на последней минуте и очень удивил всех своей производительностью. Третье место заняли Александр Белецкий и Сергей Калинец. Мы поздравляем победителей! Но остальные команды тоже молодцы – все боролись до последнего и борьба за остальные места шла до последней минуты.
Мы искренне верим, что все получили море “фана” от данной встречи и много чему научились. Вот небольшой фотоотчет с места событий:
Следующая встреча клуба пройдет 7 февраля на тему разработки под Windows Phone 7.