Программистское мракобесие
May. 3rd, 2009 04:08 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Я почему-то думал, что когда 10 лет толпой людей разрабатывают сложные системы, там не делают так, как я - держа все знания по проекту только в виде кратких текстовых набросок по поводу архитектуры, часть информации в голове(чтобы можно было проектировать в уме в любое время), и основную часть - в виде структуры проектов и кода в системе контроля версий.
А вот оказывается, что так и делают:
К этому моменту я выкинул все свои диаграммы классов, за ненадобностью – зачем на них смотреть, если они давно уже в голове?
А вот оказывается, что так и делают:
К этому моменту я выкинул все свои диаграммы классов, за ненадобностью – зачем на них смотреть, если они давно уже в голове?
no subject
Date: 2009-05-03 02:45 pm (UTC)Но больше всего рулит понятно написанный, хорошо структурированный, и по делу комментированный код, с содержательными комментариями к коммитам. Сюрприз, правда? :) Если этого нет, то можно удокументироваться до полусмерти, толку все равно будет ноль. А если есть - то документирование добавляет незначительное количество ценности.
no subject
Date: 2009-05-03 03:03 pm (UTC)У нас зачастую бывает как раз наоборот. Сам IBM PC появился в результате того, что соответствующую группу в IBM освободили от необходимости следовать внутрикорпоративным процессам, "с целью ускорения разработки". Что уж тут говорить :).
no subject
Date: 2009-05-04 06:04 pm (UTC)no subject
Date: 2009-05-04 08:49 pm (UTC)Это, собственно, основы process theory. Еще примеры занятий, где встречается empiric process - разработка новых моделей автомобилей, и военное дело. Нет никакой технологии, точное соблюдение которой позволит выиграть войну, это достаточно очевидно. Хотя бы потому, что вклад боевого духа войск к прочим факторам оценивается многими специалистами как 3 к одному.
Точно также Вы можете посадить кучу идиотов под CMMI Level 5, и не получить на выход ничего ценного. Или получить продукт, вызывающий зевоту на рынке. В этом разница.
no subject
Date: 2009-05-05 03:17 pm (UTC)"военное дело" - т.е. уставы и руководства вообще не имеют право быть в военном деле? все можно выиграть только "силой духа"? :)
"Вы можете посадить кучу идиотов под CMMI Level 5, и не получить на выход ничего ценного" - ну уж я этим заниматься не буду. :) и рекомендовать это делать никому не буду. CMMI я порекмендую применять именно в том объеме и в том виде, которые позволят получать более предсказуемый (по бюджету, качеству и т.д. - тут уж выбор - дело частное) результат
no subject
Date: 2009-05-05 04:23 pm (UTC)Любой проект по разработке ПО сопряжен с решением проблем, и является в той или иной степени "инновационным". Проект по внедрению готового ПО - нет.
> "военное дело" - т.е. уставы и руководства вообще не имеют право быть в военном деле? все можно выиграть только "силой духа"? :)
Не понимаю, из каких моих слов можно сделать такой вывод, не подключая фантазии. Уставы и руководства имеют весьма посредственное отношение к содержательной части планирования военных действий, и к выигрышу в войне, так же как и соблюдение coding standard не поможет сделать коммерчески успешный продукт. Речь не о них.
> "Вы можете посадить кучу идиотов под CMMI Level 5, и не получить на выход ничего ценного" ну уж я этим заниматься не буду. :) и рекомендовать это делать никому не буду.
Это я привел для иллюстрации того, чем разработка ПО отличается от изготовления гамбургера. Соблюдение технологии не _гарантирует_ вам успеха. Таких гарантий у вас нет и быть не может.
> CMMI я порекмендую применять именно в том объеме и в том виде, которые позволят получать более предсказуемый (по бюджету, качеству и т.д. - тут уж выбор - дело частное) результат
Тезис CMMI про снижение рисков при повышении уровня - как минимум спорен, и многие уважаемые и опытные специалисты его не разделяют, см. аргументацию по этому поводу Тома ДеМарко в Peopleware в качестве примера. Это при том, что те же люди сходятся на том, что критерии зрелости CMMI, в целом, неплохая штука, основанная на best practices.
no subject
Date: 2009-05-06 10:07 am (UTC)Скажите, это действительно ВЫБОР? Предсказуемость одного измерения результата достигается за счет другого?
Порекомендуете ли Вы CMMI при целевой функции вида "не очень дорого И достаточно качественно"?
no subject
Date: 2009-05-06 10:23 am (UTC)В этом случае на CMMI надеятся бесполезно, имхо. Там может быть "очень дорого и качественно" или "очень дорого и можно пользоваться".
no subject
Date: 2009-05-06 11:21 am (UTC)Если так, то для тех, кто не метит в ее адепты, CMMI в целом бесполезны - что не мешает осторожному употреблению карго-артефактов или приспособлению отдельных практик.
no subject
Date: 2009-05-06 03:05 pm (UTC)Любые изменения сами по себе затратны. Но это, прежде всего, инвестиции, результат использования которых и надо потом определить. Если не оценить результат - это бессмысленные изменения. Если используете CMMI в качестве базы - определитесь: чего вы хотите добиться этим. Потом сопоставьте ожидаемые затраты и сопоставьте: дорого это или нет. Многое в затратах, связанных с внедрением CMMI, занимают официальные мероприятия и подготовка к ним. Если же официальный "публичный" рейтинг вам не важен, то затраты на внедрение будут не на много больше, чем любой другой методологии или модели.
no subject
Date: 2009-05-03 03:24 pm (UTC)no subject
Date: 2009-05-03 03:37 pm (UTC)А вот комментарий к коммиту - как раз прочитают, когда посмотрят код в режиме annotate и найдут источник правки. Причем, заметь, как только твой код будет переписан, и описание мысли перестанет быть актуальным, волшебным исчезнет и ссылка на твой коммит в режиме annotate.
Это в особенности касается больших проектов. Исходя из опыта.
no subject
Date: 2009-05-03 04:44 pm (UTC)Так вот, основным источником инфы являлись именно комменты к коммитам, коду и тикеты в трекинговой системе. Поэтому я согласен, что в долгоживущих системах информативнее сам код, чем документация по нему
no subject
Date: 2009-05-03 11:15 pm (UTC)Микрософт пишет довольно сложные программы. ОС там несколько штук, наборы приложений, офисные пакеты, сервера... Вот интересно, почему у них и дока есть, и актуальная, и программами миллионы пользуются? Магия, не иначе. И даже слухи есть, что некоторые программы даже заранее планируют и описывают интерфейсы! Волшебство, не правда ли?
no subject
Date: 2009-05-03 11:25 pm (UTC)Ты видел их внутреннюю, проектную документацию? Ну конечно не видел, откуда тебе. А вот знакомые из группы MS SQL мне говорили, что у них при переписывании MS SQL c 6.5 на 7.0 не было даже спецификации. Вместо нее был сам 6.5. Волшебство, не правда-ли?
no subject
Date: 2009-05-04 04:18 pm (UTC)для некоторых систем этой разницы нет
no subject
Date: 2009-05-05 11:23 pm (UTC)1. Давайте на "Вы".
2. Я говорю про MSDN. Очень сомневаюсь, что его пишут после программеров отдельные писатели, анализируя код. Таки писателей в общем-то не найти.
3. О подобной проектной документации есть описания.
no subject
Date: 2009-05-03 11:48 pm (UTC)> Все равно от нее ничего не останется после пары лет поддержки.
Или если очень хочется, то можно?
no subject
Date: 2009-05-10 05:09 pm (UTC)Я тут тебе ещё нашёл ссылки про микрософт:
http://msdn.microsoft.com/en-us/library/ms978007.aspx
http://msdn.microsoft.com/en-us/architecture/bb469938.aspx
Английский-то хоть знаешь, не надо переводить?
(Имитирую patronizing style. Не нравится небось, а? А не надо было использовать -- я мог бы нормально поговорить.)
no subject
Date: 2009-05-10 06:20 pm (UTC)То, как ты отвечаешь - мне с самого начала не понравилось. А сейчас - ты ничего не "имитируешь", ты просто хамишь. Нормальному человеку не надо поводов, чтобы нормально поговорить. Если бы ты в принципе мог что-нибудь сказать по существу - ты бы давно сказал, не кривляясь и прикрываясь тем, что ты что-то не "имитируешь".
no subject
Date: 2009-05-15 11:52 pm (UTC)Ваш взгляд на чтение кода подходит:
1. В случае очень компетентных и дорогих программистов
2. Бешеной смены кода под заказчика-финансиста-трейдера
3. Очень узкой математизированной предметной области.
Да, в ЭТОМ случае действительно выгоднее не документировать.
В остальных случаях получится очередной Нетскейп Навигатор. Там тоже пионеры пальцы гнули-гнули, а потом само всё загнило. Сколько в Мозилле от НН? Процентов 5 есть?
У Вас мне непонятно, что раньше будет -- загниёт код или контора развалится. Думаю, всё-таки код. Выбросите и перепишете на каком-нибудь Хаскелле или что там модно будет.
(no subject)
From:no subject
Date: 2009-05-04 04:30 am (UTC)no subject
Date: 2009-05-05 11:27 pm (UTC)"Писать код" в общем-то никогда не надо. Есть проблемы нервов у исполнителей, есть проблемы мозга у бизнеса, бывают проблемы простого неумения и незнания, "как делается документация". Но вообще писать программы срочно очень редко бывает реально надо.
no subject
Date: 2009-05-06 06:01 am (UTC)no subject
Date: 2009-05-03 04:57 pm (UTC)