Разработка комитетом () — уничижительная характеристика стиля проектирования и полученного результата, когда группа участников объединяется для создания чего-либо (обычно технического устройства или стандарта) при плохом или некомпетентном руководстве. Отличительными чертами «разработанного комитетом» проекта являются излишняя сложность, неполнота, логические противоречия, банальность и отсутствие целостной структуры.
Термин распространён в технической среде; он обосновывает необходимость единого системного архитектора (См. Системный аналитик). В случае программного обеспечения, «разработанного комитетом», изначальная задача, базовые спецификации и технические критерии отступают на второй план перед самомнением и личными интересами отдельных участников комитета. Такие продукты и стандарты становятся объединением разрозненной функциональности или плохо взаимодействующих составных частей (поскольку создатели этих модулей или разделов не задумывались о качественном взаимодействии с другими участниками проекта).
Термин также употребляется в автомобильной индустрии для плохо спроектированных или непопулярных автомобилей.
Одной из самых известных максим является «Верблюд — это лошадь, разработанная комитетом». Эта фраза приписывается журналу Vogue , см. номер от июля 1958 года., а также Алеку Иссигонису.
Преимущества К положительным сторонам данной методологии можно отнести высокую универсальность созданного. Например, язык C++ является языком, разработанным комитетом, учитывающим мнения специалистов из разных предметных областей — отличается высокой эклектичностью, что позволяют ему являться универсальным решением как в рамках предметных областей (от графических десктопных программ с использованием Qt, до математических библиотек-расширений для GNU Octave), так и в рамках методологий написания кода (от ООП, до акторной модели). Но те же преимущества оборачиваются недостатками: большой по объему стандарт языка, сложность формальной верификации написанного ПО, быстро копящийся «технический долг» написанного ПО.
Обратным примером языка разработанного комитета является Haskell, известный своим девизом «Avoiding success at all cost». Строгий стандарт языка и следование функциональной методологии позволяют языку являться эталоном функционального языка программирования.
Таким образом, определяющим является не столько разработка комитетом сама по себе, сколько ставимые перед комитетом цели. В ситуациях, когда целью объявляется учёт желаний всех участников комитета, итоговое решение представляет собой нагромождение, удовлетворяющее всем требованиям. И напротив, если целью объявляется наилучшее решение, на основе коллективной интеллектуальной деятельности комитета — то итог будет представлять из себя решение, не уступающие разрабатываемому централизовано.
Примечания
Категория:Антипаттерны