Готовые открытые модули для CMS или "Ну ведь есть же у друпала такой модуль!"

Очень часто в работе с заказчиками сталкиваешься с фразой "ну ведь есть же вот такой модуль", после которой зачастую тебя тыкают носом в страницу с модулем. Все казалось бы просто - поставить готовое, заказчику хорошая скидка на проекте - ведь внедрили чужой готовый код. Уменьшили себестоимость, время, быстрее сдали проект. А на поверку, все оказывается не так радужно. На Drupal.org хранится порядка 3000 модулей в разной степени готовности. Некоторые модули я рекомендую в своем блоге . Сам я не заливаю свои модули на Drupal.org, а выкладываю на странице продуктов. Начнем с того, что обычно открытый модуль пишется программистом для решения какой либо конкретной задачи и может не подойти под нужды Вашего проекта. Еще в открытых модулях часты куски кода вида:
$output .= 'blablalb'; .... $output .= '</div>'; return $output ;
При этом в самой функции нигде нет кода вида:
$output = 'blablalb';
Но это цветочки. Зачастую открытые модули кишат большим количеством неинициализированных переменных. Отутствием проверок типа этой переменной. Так например я, мои коллеги, часто находили в модулях код блока foreach, производимый не над массивом, а над переменной строчного типа. Просто потому что отсутствовала проверка. Тоже самое с циклами по массивам без проверки числа их(массивов) элементов. Таким образом, можно посоветовать продвинутым клиентам не спешить заявлять про готовые модули. Качество этих "готовых" модулей зачастую бывает очень сомнительное. В частности, большая часть модулей галлерей - не подходит или мало подходит для реальных задач, а в 95% их просто очень конкретные проблемы в самом их коде. И брать на себя ответственность поддерживать код, не очень хочется. Любой школьник имеет возможность залить свой код на Drupal.org в раздел модулей. И наличие модуля совсем не значит его работоспособность или того, что модуль не требует полной переделки. Соответсвенно - нормальный программист сходу не полезет поддерживать этот код.(если вообще не захочет). Просто потому, что нести ответственность за дырки в чужих головах мало кому хочется. Это же касается других открытых CMS. Не стройте радужных перспектив на тему того, что кто-то бесплатно решит Вашу задачу. Да, готовые решения - бывают. Как пример - версия 6 Drupal - уже вполне тянет на звание CMS из коробки. Но такие готовые решения попадаются в 10% случаев. Посему я считаю заблуждением мнение заказчиков о том, что какой либо фреймворк с полуготовыми составляющими поможет им существенно экономить на разработке. Экономия будет незначительна. Возможна она только потому, что тут есть хоть какой-то стандарт написания и встранивания модулей и своего дизайна. Все! Ну а разработчикам остается пожелать терпения. Потому как объяснить заказчику почему модуль X не подойдет для решения конкретной подзадачи бывает порой довольно сложно и занимает много времени.