metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2011-08-01 05:28 pm

Программерские марафоны

Объясните мне такую вещь. Часто в околохаскелевых, околохакерских и тому подобных рассылках-фидах-блогах встречаются упоминания чего-то вроде кодерских посиделок, Hackathon и тому подобного.
Т.е. какое-то сборище программисто-хакеро-гиков собирается вместе и делает какое-нибудь программистское безумие.
Я в упор не понимаю, как такое возможно.
Во-первых, чтобы работать над проектом - нужно изначально годами в нем вариться, в сложных проектах от входа даже понять невозможно "что это и зачем".
Во-вторых, чтобы программить пару дней - нужно сначала неделю проектировать и согласовывать новые идеи с уже существующими в проекте, с коллегами, структурами данных БД и фазой луны, влияющей на идеи пользователей и прочей предметной областью.
В-третьих, ну предположим накодили они мега-фич и разъехались по своим подвалам с японскими школьницами углам. Кто это будет документировать, тестировать, деплоить, поддерживать итд?

Что-то я совсем с управлением процессами промышленной разработки софта упоролся, кажется.

[identity profile] avnik.livejournal.com 2011-08-01 02:43 pm (UTC)(link)
А там обычно 3/4 участников и варятся годами в проекте.
Обычно всякие hackathon'ы и спринты устраивают под всякие конференции, когда много народу, кто в теме собирается в одном помещении.

[identity profile] si14.livejournal.com 2011-08-01 03:27 pm (UTC)(link)
https://github.com/beamspirit/bigwig
Это большой проект или нет? 4 человека сделало его за 2 дня. У всех есть какие-то мысли на тему «а вот клёво было бы сделать...», но недоходят руки, да и лень на выходных код фигачить зачастую. А так — собрались люди, часто незнакомые; обсудили; написали. Весело и клёво. Деплоить/блаблабла — люди ж под себя пишут, потому это и будет развиваться.
Эти мероприятия на выходе не софт имеют, в основном, а инструменты разработчиков.

[identity profile] avnik.livejournal.com 2011-08-01 03:49 pm (UTC)(link)
Ну я глазками видел Zope'овский спринт по grok, и каноникаловский по launchpad/bzr -- и те, и те -- не то готовили релизы, не то устроили грандиозный bug squashing party. Cидели около 30ти мужиков в одной большой аудитории, и что-то яростно пилили -- периодически выходя группками по 3-4 в коридор поспорить там. Было на удивление тихо кстати.

[identity profile] ilya-portnov.livejournal.com 2011-08-01 03:53 pm (UTC)(link)
Це ж опенсорс. Всякое «варение в проекте годами» и «проектирование» происходит до того.

«документировать, тестировать, деплоить, поддерживать» — как правило, никто не будет. Це ж опенсорс. Хотя иногда случаются аналогичные фесты по документированию. Про maintain-fests ещё не слышал.

[identity profile] avnik.livejournal.com 2011-08-01 04:07 pm (UTC)(link)
bug squashing party устраивал бебеан несколько раз.

Тестировать/поддерживать -- посмотрите на zope/plone, насколько оно поддерживается коммунити. (С тестирование и деплойментом там чудесно, а с документацией странно -- с одной стороны ее тонны, с другой стороны она вся зарыта в коде в виде многостраничных комментариев)

Посмотрите на pyramid -- как образец того, как надо документировать ;)
abbra: (Default)

[personal profile] abbra 2011-08-01 06:05 pm (UTC)(link)
потому что это питонисты, у них вся документация runtime discoverable. :)

[identity profile] avnik.livejournal.com 2011-08-01 06:45 pm (UTC)(link)
Это да ;)
Учитывая что у zope оно в буквальном смысле discoverable -- там есть специальный костыль, позволяющий это онлайн делать ;)

А у пирамиды таки настоящая книжка, написаная автором -- там конечно не literate programming, но очень очень близко

[identity profile] aamonster.livejournal.com 2011-08-01 04:19 pm (UTC)(link)
Во первых, если для вхождения в проект нужно годами в нём вариться - проект лучше похоронить и идти читать про число грузовика и CMMI Levels.

Во вторых, afaik обычно хакатоны всякие по сути как раз и посвящены проектированию (макетированию), причём чего-то нового. И если придумали-сделали - то найдётся, кому поддерживать. Как минимум, каждый участник оттуда вынесет знания и опыт - т.е. эта неделя окупится очень быстро, даже если проект не заживёт.

А процесс промышленной разработки софта, судя по пункту 1, до вас не добрался =).

[identity profile] metaclass.livejournal.com 2011-08-01 04:27 pm (UTC)(link)
А, про число грузовика знаю.
Вообще да, промышленная разработка невозможна если количество людей менее какого-то порога.

[identity profile] volodymir-k.livejournal.com 2011-08-02 10:34 am (UTC)(link)
> если для вхождения в проект нужно годами в нём вариться - проект лучше похоронить

Охохо, пионэрия. Бывают проекты реально сложные, типа ОС, БД, КАД или САП.
Одно дело по верхам увидеть общую картинку, другое дело разбираться во взаимодействии сотен компонент, которые объективно есть и должны быть.

Для бизнеса закрытие проекта это дурость, если с него можно годами получать прибыль. Каким бы сложной он ни был.

[identity profile] aamonster.livejournal.com 2011-08-02 05:46 pm (UTC)(link)
"Вхождение в проект" != "Руководство проектом".

[identity profile] volodymir-k.livejournal.com 2011-08-03 02:55 pm (UTC)(link)
Я о руководстве ничего и не писал.

[identity profile] aamonster.livejournal.com 2011-08-03 05:16 pm (UTC)(link)
Для меня "вхождение в проект" == "способность работать над проектом" (достаточно на своём участке, не обязательно держать в голове весь проект).

В общем, по ощущениям, спорим о терминах.

[identity profile] osdm.livejournal.com 2011-08-04 04:00 pm (UTC)(link)
Бывают проекты реально сложные, из сотен компонент. У нас, например, именно такой. Тем не менее, стараемся брать только тех людей, которые смогут начать выдавать код в первую неделю. Для этого не обязательно разобраться во взаимодействии всех сотен компонент, только того десятка, который ты хочешь исправить. Для опытного программера это = 1-2 дня.

[identity profile] denisioru.livejournal.com 2011-08-01 05:10 pm (UTC)(link)
А потом на хабре каждый второй пост про стартапы, тьфу, блеать. И так пол интернета завалено недописанным говном.

[identity profile] sorhed.livejournal.com 2011-08-01 06:11 pm (UTC)(link)
Упоролся, да. Марафоны делаются для того, чтобы быстро набрать критическую массу и запустить проект, после чего уже можно делать документацию, организацию, багтрекинг и т.п.

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

[identity profile] kaa-mmf.livejournal.com 2011-08-01 06:41 pm (UTC)(link)
как-то вотерфольно мыслите ребе...

[identity profile] metaclass.livejournal.com 2011-08-01 06:46 pm (UTC)(link)
Ну итеративной разработки за несколько дней тоже особо не организуешь, особенно без обратной связи от заказчиков.

[identity profile] theiced.livejournal.com 2011-08-02 12:01 am (UTC)(link)
ну тут вопрос спорный про пользу. вот на одной такой хуйне за пару часов написали уёбищный рубигемс и теперт от этого дерьма избавиться уже нереально.

[identity profile] darkdrip.livejournal.com 2011-08-03 12:21 pm (UTC)(link)
в говнопитоне такую же хуйню вроде впилили. в нём яйца так же часто используются как рубигемс в руби? рубигемс вызывает желания прыгнуть с крыши. с табами я готов смириться.

[identity profile] volodymir-k.livejournal.com 2011-08-02 10:31 am (UTC)(link)
Лично я понимаю марафоны как способ разрекламировать динамические языки в области их наилучшей применимости. Небольшая сложная алгоритмически одноразовая задача, ни от чего не зависящая, на чём-нибудь экзотическом. Эффектно показывается, что вот как можно "качучу забубенить".

Сказать бы им "напишите трейд-робота с байесовским анализом интегралов по полю", так они бы одну спеку на соединение получали месяца два. Потом креденшалы на подключение ещё два. Потом бы выясняли месяц, почему они не пускают. Потом месяц, почему пускают, но результаты не такие, как ждали. Это всё скучно.

[identity profile] nivanych.livejournal.com 2011-08-02 11:47 am (UTC)(link)
Вообще, вот сначала хорошенько прорабатывать проект, многими людьми, а уж потом, когда точно известно, что и как должно быть и явной херни не видно, то собираться на "commit fest'ы".