Опыт участия в Rails Rumble

    В прошедшие выходные (13 и 14 октября) мы с aishek и еще двумя нашими коллегами участвовали в хакатоне Rails Rumble 2012. По условиям конкурса за 48 часов нужно задеплоить готовое Rails-приложение.

    Надо сказать, что кроме выпитого ящика пива и прочего фана мы получили действительно хороший опыт.

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

    Исходя из такой постановки задачи, мы решили что в нашей системе будет:
    • классификатор текстов;
    • удобная система регистрации и входа с минимальным набором обязательных полей;
    • отображение структура возможных назначений сообщений пользователям системы;
    • гео-информация для каждого сообщения (для более точного назначения тем или иным пользователям);
    • личные кабинеты компаний и пользователей;
    • публичные страницы компаний;
    • расширенная система статусов сообщений (решено, не решено, отклонено);
    • поиск компаний и сообщений;
    • внутренняя статистика подачи сообщений и активности для руководителей компаний;

    К началу состязания нам удалось подготовить очень общие наброски дизайна и архитектуры нашего приложения.

    Хроника событий


    Суббота, 13 октября


    04:00 Приступаем к работе. Разделяем обязанности по настройке сервера, написанию классификатора и верстке каркаса. Создаем новое Rails-приложение и начинаем пытаться его деплоить.

    07:30 Первый деплой, на главной странице есть неработающие ссылки, поле поиска и какой-то текст. Начинаем делать авторизацию. Классификатор текста не готов.

    10:00 Есть регистрация/авторизация пользователей, свёрстанные лейауты. Начали делать профиль компании. Классификатор всё еще не готов.

    13:00 Готов классификатор текста, у пользователей есть компании. Завтрак, он же обед. Все слегка в шоке, и появляется первая усталость.

    14:00 В классификаторе текста обнаруживаются проблемные места, дизайн уже свёрстанного приложения кажется отвратительным. Всё чаще слышны вопли «Что за де***о?». Ровным счётом не получается ничего.

    16:00 Работа встала, решили пойти в магазин.

    17:00 Пришли с магазина и легли спать. Это, как потом оказалось, было ключевым решением.

    20:00 Снова подъём. За работу!

    21:00 Классификатор починили. Начали делать систему подачи сообщений.

    Воскресенье, 14 октября


    00:00 Сообщения подаются, пользователи работают, компании создаются, по появляется стойкое ощущение, что всего задуманного не осилим. Интерфейс еще очень «сырой».

    02:00 Переделываем дизайн, правим баги

    04:00 Решили пойти спать. По итогам первого дня работы у нас была главная страница, профиль пользователя и компании, работала отправка и классификация сообщения. Не было публичной части компании. В целом, приложение работало, но до идеала было ещё очень далеко

    10:00 Проспали. Поели и бегом за работу.

    12:00 Есть авторизация через социальные сети. Один из коллег отсел подальше со словами «Меня не трогать!» – и занялся внешним видом приложения.

    16:00 Готова половина функционала статистики, решено на этом остановиться. Приложение уже всем нравится (спасибо нашему коллеге) и только сейчас мы окончательно поняли, что и как у нас будет работать.

    20:00 Появляются всякие мелкие задачи, которые начинают отнимать всё больше ценного времени: сделали комментарии к сообщениям, публичную часть компании. Производительность опять начинает падать.

    23:00 Решили опять сходить в магазин, освежиться.

    Понедельник, 15 октября


    00:00 Готово назначение задач на пользователя. Начали делать статистику.

    02:00 Готов функционал пометки комментариев, как правильных ответов на сообщения.

    03:00 Начинается судорожный «фикс продакшена налету».

    04:00 Приложение работает, конкурс закончен!

    Выводы


    Сделали примерно половину (не больше) из того, что задумывали. Очень много времени ушло на согласование интерфейсов и отлов ошибок. Между работающим приложением и работающим приложением, которым приятно пользоваться, лежит очень много работы (именно поэтому любую оценку нужно умножать на два). После 12 часов непрерывной работы производительность падает до нуля, не бойтесь отдыхать – в итоге сделаете больше! Успеть к намеченному сроку можно только одним способом – выкинув часть намеченной функциональности.

    Покажите этот абзац менеджеру


    Менеджерам очень полезно было бы участвовать в таких мероприятиях. Его роль я вижу так: это человек, который не дает программистам работать больше 4 часов подряд; он всегда знает приоритетность функционала, и понимает, от какой его части можно отказаться. Менеджер также должен руководить степенью «прожарки» приложения: за 48 часов (и не только) вы просто не успеете сделать весь проект идеально, но какие-то части должны быть доведены до блеска, оставьте эту задачу менеджеру.

    Вот что получилось у нас: http://ideahq.r12.railsrumble.com

    Участвуйте в хакатонах!

    P.S. Если у вас есть какие-нибудь вопросы о Rails Rumble или нашем приложение – смело задавайте их в комментариях, отвечу с большим удовольствием.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 22

      0
      совсем не проверяете валидность email:
      We have just sent an authentication link to WHY YOU DONT VALIDATE EMAIL ?.7
        0
        Если честно – просто забыли. До 19 октября на Rumble code freeze, так что на выходных все такие мелкие болезни исправим.
          +1
          мне кажется, что в этом месте пользователь заинтересован в правильном емейле
            0
            1. У пользователей (читай людей) есть недостаток, они могут ошибаться. пробел вставят, точку пропустят или кириллицей наберут
            2. Мне кажется, сервис еще более заинтересован в правильном емейле
              0
              вызов принят)
              1. за ошибкой следует исправление
              2. совсем нет, это же не ммм
          +1
          А где пункт — в субботу в 15-45 зашёл друг — потроллил и пошёл дальше? :D
            0
            Ну на самом деле ты был не единственный, кто троллил.
              0
              Я в этом не сомневался :D
            –1
            ящик пива за выходные, да еще и работать — маловато будет
              –1
              Ну это кому как. Нам хватило :)
              +1
              Учавствовал в RailsRumble12 в одиночку, создал тайм-трекинг, который мотивирует:
              genka.r12.railsrumble.com/

              Первые два «дня» специально особо не нагружал себя, работал часов по 8, чтобы остались силы на последнюю ночь (сейчас живу на Бали и по местному времени хакатон заканчивался в 8 часов утра понедельника).

              Сделал все, что планировал. Опыт, однозначно, полезный — избавляет от такой болезни, как забрасывание проектов на стадии 90% готовности :) Тут, хочешь не хочешь, нужно хоть что-то, но задеплоить.
                0
                Как им пользоваться? Цель создал, а как тайм-трекинг включить-то?
                  0
                  Зайти на страницу цели, нажать на кнопку Start.
                0
                Всем участникам этого забега Jeff Atwood дает советы.
                  0
                  Будем надеяться, что в нашем приложении его всё устроит.
                  Жалко, что свои советы он дал уже после хакатона.
                  0
                  А кто-нибудь видел источники, где можно посмотреть новости о грядущих хакатонах по разным направлениям? Или всё же такую информацию никто не собирает, все ютятся по своим новостным сайтам по отраслям?
                    0
                    Тут дело в том, что обычно каждого интересуют хакатоны только по определённому языку/технологии.
                      0
                      А Вы из какого-то новостного источника узнали об этом хакатоне?
                        0
                        Я прочитал на rubyflow.ru кажется.
                    0
                    >Между работающим приложением и работающим приложением, которым приятно пользоваться, лежит очень много работы, именно поэтому любую оценку нужно умножать на два
                    — а то иногда и на три,
                    этот закон открыли еще 20 лет назад, спасибо что его вновь озвучили (или сделали для себя открытие?).
                    а так все было интересно почитать, спасибо Вам.
                      0
                      Об этом вроде бы все знают (в том числе и мы), только при оценке сроков и перед началом работ очень часто забывают.
                        0
                        Эмпирически удостоверились. У вас ведь тоже иногда такое бывает «да что тут делать, то?! да я сейчас за полчаса сделаю!», правда :)

                      Only users with full accounts can post comments. Log in, please.