Lo que dices es cierto, pero entonces también hay que distinguir casos. Por ejemplo ver si el programa por sí mismo aporta una ventaja competitiva o es sólo una plataforma sobre la que basar la aplicación concreta que es la que marca realmente la diferencia.
Como ejemplo bestia: un servidor HTTP o un gestor de base de datos son una cosa y otra la intranet o la estructura de base de datos de la empresa X. Para Apache o Postgres como proyectos puede interesar que la empresa X los use, simplemente para tener informes de fallos del admin, porque la empresa X usa una configuración muy especial.
En casos más extremos, esa empresa puede aportar un porte a un nuevo sistema por personal suyo o contratar a alguien que lo haga. Pero no te enseñarán la estructura de páginas o sus CGIs, o su diseño de BBDD. Eso es su "know-how", no Apache.
Otro tipo de programas siguen modelos más especiales, incluso atípicos como Blender. Pero generalmente hay más programas abiertos de base que específicos.
Cuando se particularice más, la motivación podría ser seguir (o marcar) un estándar que se use por todas las empresas. Por ejemplo, a las empresas les interesa usar SAP como forma de encontrar fácilmente personal formado en su manejo. Si pagan por módulo a medida, probablemente quieran quedárselo privado. Pero también les puede interesar que evolucionen los módulos comunes de acuerdo a sus preferencias.
En fin, que las motivaciones no siempre son tan sencillas.
[ Padre ]
|