> >> >> >> За коммитами джуниоров просто присматривают вручную. Недолго, > человек > >> >> >> либо обучается, либо идет искать работу в другом месте. > >> >> >> > >> >> > Да тут вопрос не о джуниорах. Всё сложнее. Но, в любом случае, код > >> >> > сложный, хотелось бы видеть, что уйдёт в репозиторий. > >> >> > >> >> В одной из контор у нас были любители почитать код, уходящий в > >> >> репозиторий. Ну, репозиторий был настроен так, чтобы рассылать коммиты > >> >> желающим. По почте. Тем же способом присматривали за джуниорами. > >> >> > >> > Примерно так и есть, но почта заменяется ccollab (или, в общем случае, > >> > любым web интерфейсом), и код не проходит в репозиторий без одобрения. > >> > >> Тут важный момент - не веб или почта "код не проходит в репозиторий без > >> одобрения". У нас проходил. Мой point в том, что проблем от этого не > >> происходит. > >> > > Возможно. Надо подумать над этим. Раньше я даже не предполагал такой > > практики. > > Собственно, системы управления версиями придуманы ровно для этой > ситуации. Чтобы заменить трехслойную бюрократию ревью, которая работает > месяц, но тоже пропускает баги, возможностью найти и откатить изменение, > если оно оказалось неудачным. > > А чтобы неудачное изменение не долетело до заказчика, существует > релизный цикл. И ревью его необходимости не отменяет. > Есть минусы, есть плюсы: не так легко откатить сломавшую правку из репозитория, на которую уже понакоммитили и заложили функционал.
> >> >> Практика показывает, что читать код _до_ попадания в репозиторий - не > >> >> очень хорошая идея. Благо репозиторий позволяет, если что, откатить. > >> >> > >> > Но сборки уже будут собраны и отправлены на тестирование, так не лучше > >> > ли - не допустить? > >> > Какая практика? > >> > В чём нехорошесть данной идеи? > >> > >> Тормозной путь. Между моментом изменения кода и моментом, когда код > >> будет изменен, проходит время. > > Как минус, так и плюс. > > В течение этого времени в системе присутствуют и старые, и новые баги. > Где плюс? > Нет, присутствуют только старые баги, которые уже известны, проверены и одеты в пиджак, так что стали напоминать фичи. А тут новые баги, которые успеют сломать тестирование, например, в результате чего могут не пройти другие тесты и т.п.. На ревью есть шанс хоть что-то отсеять (да, я в курсе про юнит-тесты, однако есть факты на практике). > > Да, с прерываниями. Но сложно постоянно концентрироваться на ревью и > > ждать ответов автора (который в этом время уже над другим работает), к > > тому же, ревьюверов бывает несколько. > > Я про прерывания не процесса ревью, а про прерывания процесса своей > работы необходимостью ревью. Для ревью надо загрузить в голову контекст > той задачи, к которой относится просматриваемый код. Он там неизбежно > заменит контекст своей задачи. После ревью придется снова грузить свой. > Это время, и в случае сложной задачи весьма изрядное. От 15 минут до > часа каждая перегрузка, а их тут две. Ну час - это явный перебор. А отрыв на 15 минут - не критично: вы же не соревновательным программированием занимаетесь, надеюсь? Иногда вообще полезно от задачи оторваться, бывает. Другое дело, если ревью много. Тогда да, на них забивают. > > >> >> Это вот понятное употребление ревью. Очень громоздкое, но цена ошибки > >> >> там такова, что оно окупается. > >> >> > >> > В случае того, что есть сейчас, коммиты тоже обосновываются: к ним > >> > привязана задача, после чего проверяются (перед репозиторием). > >> > >> А "в случае того, что есть сейчас" непонятно, окупается ли этот > >> тормозной путь. > >> > > Продукт окупается. > > "Тормозной путь", скорее всего, да. > > Не от хорошей жизни, а из-за некоторых разработчиков и сжатых сроков. > > Вот тут уже сомнения. Если сжатые сроки, то потеря в среднем получаса > на каждое ревью... Это какие же должны быть разработчики, чтобы оно > окупалось? > Запаренные. > >> Менталитет программиста тоже интернационален. С менталитетом "кодера по > >> обезьяньей работе" хуже, но extreme programming - технология для > >> программистов. > >> > > Ну что-то мне подсказывает, что русским и китайцам ужиться будет > > несколько сложно, и не для всех эта техника подходит. > > А никто не утверждал, что для всех. А вот русский с китайцем, скорее > всего, в паре как раз неплохо уживутся. Только роли будут не > переменные, а ближе к постоянным. Китаец кодит, русский следит и > корректирует. Характерного китайца не надо подгонять, зато надо > своевременно тормозить и/или поворачивать. Тогда он будет выдавать > качественный продукт, а быстро он его и так будет выдавать. > Что-то динамика развития Китая по отношению к РФ показывает: роли меняются. :-/ > >> >> > В любом случае, если я такое (чисто теоретически) предложу > менеджеру, > >> >> > он только у виска покрутит. Это же получается, что каждый > программист > >> >> > работает, условно половину времени, а половину сидит "и что-то там > >> >> > смотрит". > >> > >> >> А если тебе не результат а имитацию бурной деятельности для менеджера, > >> >> то да, подход ровно обратный. > >> > В конкретном случае мне нужно сделать для себя: имитировать там не для > кого. > >> > Над своими проектами я не за деньги работаю. > >> > И те, кто со мной работает, понимают, что если ты не сделаешь, ничего > не > >> > будет сделано. > >> > >> А если для себя, то предлагать вы будете не менеджеру, а себе. > >> Совершенно другая задача. > >> > > У меня так-то оба варианта сейчас есть. > > Ну и рассматривать их надо как две разных задачи, а не как одну общую. > И решать по-разному. > Согласен. Пока остановлюсь на том, что для себя. В любом случае, в механизмах большой компании "снизу" особо ничего не изменишь. > >> >> И кстати, code review более чем подходит под определение "что-то там > >> >> смотрит". Как ты будешь объяснять тому менеджеру, чем ты занят во > время > >> >> code review? > >> >> > >> > А у нас на ревью время специально выделяется (похоже, что были > >> > менеджеры, которые не понимали, что это "за ревью такое", и в правила > >> > записали официально). > >> > На парное программирование же времени не выделяют. > >> > Код пишут не вместе, хотя иногда вместе раздирают. > >> > >> А у нас выделяют время на работу, а не процедуры определенного > >> вида. Надо поработать в паре - попросил коллегу, сели, поработали в > >> паре. Надо попросить коллегу посмотреть код - попросил коллегу > >> посмотреть код. И т.д. > >> > > Так тоже возможно, но постоянную "работу в паре" не одобрят точно. > > "Тут ведь как"... С одной стороны, она переменная. XP настаивает на > постоянной, но в нашей практике она в основном используется в случаях, > где одна голова хорошо, а две лучше. С другой, "вам шашечки или ехать?" > В смысле, результат или квартальный отчет? Видимо, мне стоит задуматься над этим вопросом? > Если нужен результат, и > работа в паре его дает, то с хрена ли ее не одобрять? Вы полагаете, что > поодиночке будет лучше? Ну, давайте сравним на интервале в пару лет, > чтобы в статистику затрат еще и саппорт попал. >