Vlad-Shcherbina / icfpc2014-tbd

fourth place
Do What The F*ck You Want To Public License
4 stars 0 forks source link

О координации #40

Open Vlad-Shcherbina opened 10 years ago

Vlad-Shcherbina commented 10 years ago

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

В этот раз я попробовал в порядке эксперимента немного отойти от этой практики и уделять больше внимания тому что происходит вокруг (в частности, сознательно удерживался от того чтобы самому броситься писать эмулятор сразу по прочтении условия, как я обычно делал раньше). Чудовищного вреда это этого вроде не было (ну разве что фэйл с лайтнингом может быть), дикой пользы тоже. Но цена для меня была большой - например, я не концентрировался ни на одной алгоритмически сложной задаче, и даже спецификацию gcc и правила игры за время контеста не прочитал по-настоящему. Поэтому я так больше делать не буду.

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

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

manpages commented 10 years ago

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

On 8/7/14, Vlad-Shcherbina notifications@github.com wrote:

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

В этот раз я попробовал в порядке эксперимента немного отойти от этой практики и уделять больше внимания тому что происходит вокруг (в частности, сознательно удерживался от того чтобы самому броситься писать эмулятор сразу по прочтении условия, как я обычно делал раньше). Чудовищного вреда это этого вроде не было (ну разве что фэйл с лайтнингом может быть), дикой пользы тоже. Но цена для меня была большой - например, я не концентрировался ни на одной алгоритмически сложной задаче, и даже спецификацию gcc и правила игры за время контеста не прочитал по-настоящему. Поэтому я так больше делать не буду.

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

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


Reply to this email directly or view it on GitHub: https://github.com/Vlad-Shcherbina/icfpc2014-tbd/issues/40

Fly safe, Sloz

fj128 commented 10 years ago

Проблема в том, что code review расскажет про твой код только ревьюеру. А отвлекать всех чтобы заставить их быть в курсе что происходит как-то нехорошо.

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

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

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

Vlad-Shcherbina commented 10 years ago

не могут оценить эффекта своей работы

Не очень понял о чём ты. Есть такой эффект что кажется что щас возьмёшь и облагодетельствуешь человечество своим продуктом, а на самом деле надо на коленях упрашивать чтобы им пользовались, ты про это? Вот например турниры - я упрашивал, иначе бы никто не воспользовался. Или там "я написала генератор карт, лежит там-то, запускайте сколько хотите" - рискну предположить, что никто не запустил ни разу. Так что да, надо во-первых упрашивать, во-вторых смотреть на чужие штуки даже когда особо не упрашивают (for instance, лежащий в скратче макроассемблер гостон меня приятно удивил тем что был готов, работал, имел документацию и пример, при том что popoffka был вообще в оффлайне когда я собрался гостов писать).

Дело тут наверное в том что автор обычно переоценивает юзабельность своего произведения, в результате чего он думает что оно уже готово к использованию и дальше его не улучшает, а другие думают что оно ещё не готово и использовать его не пытаются. Общая рекомендация тут конечно больше думать о юзабельности, но вдобавок я питаю надежду что хорошо сконструированные Правила должны в том числе предостеречь от типичных ошибок, бьющих по юзабельности. Правила по написанию кода, обеспечивают, например, уверенность что когда импортируешь чужой модуль, не окажется внезапно что он делает неправильные допущения о текущем каталоге или срёт в stdout. Гипотетические правила по работе с issues или что-нибудь в этом роде позволяют рассчитывать, что когда ты соберёшься использовать чужую штуку услышав что она существует, она окажется продуктом (пусть в процессе разработки), а не недописанным заброшенным говном.

code review-образный механизм, чтобы все были в курсе того, что происходит в общих чертах

Не вижу как code review здесь могут помочь. Если те которые до коммита или там коммита в продакшон - они вообще для другого (повышение там bus number) и создают задержки, в условиях контеста неприемлемые. Читать код постфактум никто и так не запрещает. Решение по-моему опять-таки в Правилах, которые должны предписывать конкретный механизм аннонсирования статуса разных направлений работ (через те же issues, например).

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

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

manpages commented 10 years ago

Читать код постфактум никто и так не запрещает.

Я именно про вот эти код-ревью. Но! Я говорю про то, что вот человек прочитал какой-то осмысленный кусок кода и взял значит его откомментировал письменно прямо в гитхабовом интерфейсе. Никакой обязаловки, просто если как-то организовать время так, чтобы такого рода комментарии люди оставляли во время, когда они не in the zone, это уберет лишний шажок в координации аспекта "кто что делает" как для Влада так и для других участников команды.

И вообще, что я хотел сказать

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

на конкретном примере. Я потратил много времени на то, чтобы написать фреймворк для тестирования against reference implementation'a. Если бы я остановился и подумал о том, что оно нам даёт, я бы понял, что я могу теперь написать какой-нибудь фановый компилятор в gcc без надобности ждать имплементации VM; могу начать писать тесты для VM без наличия VM и может быть что-то ещё.

Однако во время контеста я не подумал и полагал, что потратил кучу времени впустую.

Если бы кто-то заревьюировал мой код, описав его со своей точки зрения (на это может уйти десять-пятнадцать минут), возможно у нас были бы и голден тесты, и еще более mature язык от Димы.

Вот про это был мой комментарий :-)