Мое мнение: Разработка ПО в рамках предприятия наиболее выгодное решения для БП самого предприятия, тк. зачастую, во время разработки ТЗ, либо при паралельной работе, как было выше упомянуто, появляется много дополнительных возможностей развития и оптимизации БП предприятия. Равно как и дополнительый инструментарий в виде внешних интерфейсов и разных "связанных" решений, доступен более предприятию чем фрилансеру. Проблему документирования программного кода, как и его комментирования должно решать предприятие, нанимая руководителя проекта, программеры/кодеры могут меняться, но принцип ведения проекта и документирования изменений, опций, функций и прочего - за руководителем от предприятия, такие вопросы нельзя пускать на самотек и оставлять без контроля.
Готовые решения позволяют довести БП предприятия до определенного уровня, но никак не развивать его дальше, т.к. софт меняется и допиливается под новые БП или "хотелки", при нормальном коллективе, фактически постоянно.