On Mon, Dec 2, 2019 at 5:30 PM Александр Коновалов a.v.konovalov87_AT_mail.ru <refal@botik.ru> wrote:
> Как это ни парадоксально, но так и должно быть. Но *только* в сочетании > с системой управления версиями и системой управления проектом > (таск-трекером, баг-трекером: Bugzilla, Redmine, Jira, issues в GitHub…). > > При этом должна соблюдаться определённая дисциплина (пересказываю статью > Gaperton’а «Миф о документации, продолжение»). > > 1. Любой код пишется только в рамках заявки («тикета», «бага», > «таска») в таск-трекере. Заявка — или ошибка (багрепорт), или задача, > поставленная руководителем. Самодеятельность запрещена. > > 2. Обсуждение задачи должно вестись только в комментариях к заявке > (не в чятиках, не в курилке, не в личной переписке). Таск-трекеры > интегрируются с почтой, поэтому можно писать письма таск-трекеру > с соответствующей темой, они сами подошьются к заявке (и разошлются > другим, подписанным на заявку). > > 3. В сообщении коммита пишется понятный осмысленный комментарий > и номер заявки, к которой код относится. Желательно в один коммит > не валить правки разного назначения (стилевые, рефакторинг, > содержательные, по разным задачам). > > 4. Коммит перед публикацией в системе контроля версий проходит ревью > у другого программиста. Ревьюер должен проверить код как содержательно > (решает ли он поставленную задачу), так и на читабельность, понятность, > актуальность комментариев и соответствие стилю оформления. Ревьюер > разделяет ответственность за код. > Александр, для бизнес-программирования, когда коммиты сразу идут в сборку и в работу, действительно, это все полезно. Но есть многие программистские задачи, когда это "over-management". Он не менее вреден и *удорожает* разработку, чем "недо-менеджмент". Например, во всех случаях, когда код не идет сразу в работу, а система достаточно долго развивается и тестируется внутри коллектива разработчивов. Скажем, таковой является разработка компилятора. Каждому менеджменту свое место. Следование методологиям по книжкам – это по молодости. Андрей