fbpx
Мы провели свой первый Coding Dojo в Украине!

В рамках 11-ой встречи “Клуба анонимных разработчиков” мы провели свой первый Coding Dojo в Украине. Впервые Coding Dojo сессию в Киеве провел Johannes Brodwall, которого мы пригласили выступить на конференции XP Days Ukraine. Нам очень понравился данный формат и мы захотели начать проводить подобные встречи в рамках клуба. Johannes составил подробную инструкцию по проведению, которая очень сильно нам в этом помогла.

Это был интересный опыт и для нас и для участников. На встречу пришло 14 разработчиков, вооружившись ноутбуками с настроенной средой для разработки. Мы сформировали 7 пар, потому что встреча была посвящена теме парного программирования и TDD. Пары собирались программировать на Java и .NET.

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

Первое задание было в стиле тренировочного “ката”. Участники должны были в паре решить несложную математическую задачку – разложить число на простые делители. При этом они обязаны были использовать технику TDD, работая в паре по принципу пинг-понг. Сначала один участник пишет падающий тест и передает клавиатуру другому. Тот реализует код, чтобы тест проходил и пишет следующий падающий тест. Это задание стало настоящей проверкой на знание языка, потому что делать его нужно было в специальной платформе, которая не имеет возможностей современных IDE. Данный факт некоторых участников поставил в тупик. 🙂 Но в итоге практически все справились с заданием и можно было переходить к самому интересному.

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

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

В результате жесткой борьбы первое место вырвала команда в составе Виталика Тимчишина и Тараса Свирского. Второе место занял единственный участник, который работал один – Марат Юлдашев. Он отстал всего на 30 очков на последней минуте и очень удивил всех своей производительностью. Третье место заняли Александр Белецкий и Сергей Калинец. Мы поздравляем победителей! Но остальные команды тоже молодцы – все боролись до последнего и борьба за остальные места шла до последней минуты.

Мы искренне верим, что все получили море “фана” от данной встречи и много чему научились. Вот небольшой фотоотчет с места событий:

Следующая встреча клуба пройдет 7 февраля на тему разработки под Windows Phone 7.

Обсуждение (3)

Спасибо за отзыв! Позволю себе прокомментировать ваши замечания:

1. Система специально сделана непрозрачной, чтобы эмулировать работу вашего приложения в живом мире. Все вопросы разные и баллы разные. За некоторые больше, за другие меньше. Если рассказать сразу что и как, то будет не так интересно в “непонятной” среде.

2. Тут опять же все сделано как в реальной жизни. Чтобы понять, что вы ошиблись, нужно идти в логи или результаты мониторинга. А это переключение контекста и должно вас замедлять. Это должно толкать к тестам еще до испытаний в реальном режиме.

3. Калькулятор позволяет очень быстро сделать инструмент для ответа на все подобные вопросы. А вот вопросы с сохранением состояния – это реальный пример классных вопросов. 🙂 Их не так просто додуматься и реализовать.

Если придумаете улучшения к заданию, будем рады его рассмотреть!

Хотел написать кое-что по поводу прошедшей встречи. Однозначно было очень интересно и полезно. Но все же первая часть лучше подходила как тренажер парного TDD. У нас в паре вышел, вероятно, как раз несбалансированный вариант. Я начинал зевать, пока мой напарник исправлял ошибки синтаксиса, а он, в свою очередь, не успевал за ходом моих мыслей. Но это конечно требует практики. По поводу второй части, она, как мне кажется, требует доработки. Можно предложить вариант действительно быстрой команды – это не парное, а параллельное программирование. Один участник ломает “норвежский рейс”, другой тестирует калькулятор, и они просто обмениваются кусками кода; один добавляет статические ответы, другой допиливает числа Фибоначи, и.д. Что по моему мнению не хватает:
1. Прозрачной системы правил начисления балов – участники должны понимать, что ответы должны приходить непрерывно и без случайных ошибок. Нельзя ломать то, что уже работает и вносить баги новым непротестированым кодом.
2. Обратная связь – к сожалению, я только на последних минутах понял что можно контролировать правильность ответов. Unit тестирование и обратная связь тесно связаны – нет сообщения об ошибке, нет возможности написать тест. Тут она очень слабая и требует переключение внимания – потеря контекста.
3. Тип вопросов – калькулятор идеальный вопрос, таких должно быть большинство. Тут и “наращивание функционала”, и необходимость рефакторинга и подводные камни, тут без тестов никак.
Думаю, есть смысл собраться “парами” вновь, и подумать как можно потьюнинговать тренажер.
Надеюсь было не слишком занудно. В любом случае, такого адреналина от программирования уже давно не ощущал – спасибо за это.

Было реально классно. Спасибо всем участникам и, особенно, организаторам. Предлагаю как-нибудь повторить.

Leave a Reply

Your email address will not be published. Required fields are marked *

Pkv Games BandarQQ Online Terbaik Dengan Deposit Super Modern permainan paling populer di situs poker online terbaik di indonesia di situs bukaqq Poker Online Aman dan Terpercaya slot online