Vamos a empezar con la persona que desarrolla su trabajo personal por cuenta ajena (contratado, incluiremos a los freelances que trabajan para empresas).
Caso 1.- eres un generador.
Este es el tipo de persona que se dedica a programar a bajo nivel. Todos sabemos que puede variar mucho el bajo nivel, pero yo lo consideraré como el programador del sistema operativo. Este generador puede trabajar bien para una empresa que hace distros (Redhat, Suse, etc.), o bien para empresas que desarrollen Hardware y quieran hacer desarrollos específicos, por ejemplo: Sistemas ensamblados, drivers para nuevo Hardware, etc.
Donde está el negocio? Yo desarrollo un sistema GNU/Linux y hay gente que lo quiere pagar. Empresas o personas que necesitan soporte específico. Gente que le pone no tener desperdigados todos los manuales por capítulos en casa, etc. Además podemos hablar de camisetas, gorras, pins, tazas, y chorradas diversas que te vendes las distros. Pero ese no es mi tema.
El otro tipo, empresas de sistemas ensamblados y de hardware, el negocio lo tienen en vender el "hierro". Recuerdo que en teoría cualquier desarrollo debe seguir los standars marcados por la IEEE. Aunque haya algunas empresas que no lo hagan.
Además a estas empresas le sale mucho más a cuenta hacer estos desarrollos con código desarrollado anteriormente para poder seguir la compatibilidad y ahorrar tiempo. Podéis imaginar cuanta gente ha tenido que escribir un protocolo como el rs232 para comunicarse? Alguien piensa que hoy día es necesario reescribirlo?.
El último ejemplo de estas cosas ha sido el tema de las PDAs. Que le sale más a cuenta al fabricante pagar a palm o ensamblar linux sobre su PDA? La respuesta es política comercial, pagar o no pagar, esa es la cuestión. El generador cobrará igualmente, eso ten lo por seguro.
Caso 2.- programadores.
Consideraremos que los programadores desarrollan aplicaciones sobre sistemas operativos, sin tener que relacionarse con el hardware directamente.
El programador normalmente cobra por desarrollar aplicaciones específicas para las empresas. No nos engañemos, cuando se trabaja por cuenta ajena normalmente firmas un papel por el que renuncias a tus derechos sobre la propiedad intelectual de tus desarrollos cediéndolos a la compañía que, técnicamente, te paga por ellos.
Una vez entendemos esto, es fácil. ¿Que política comercial tiene tu compañía?
A) Vende programas muy concretos. Como control de procesos industriales, aplicaciones para cálculos numéricos, gestión bancaria, etc.
Este tipo de empresas pueden desarrollar tanto en código abierto como en código cerrado ya que las posibilidades que algún programador quiera desarrollar este tipos de aplicaciones en su tiempo libre son bajas. Eso si, tal vez algún día a algún proyectista de final de carrera se le ocurra hacer... Que linus hay muchos aunque no sean tan conocidos...
La ventaja de desarrollar en código abierto es que posiblemente te estés abriendo tu mercado a algunos clientes que ni hubieras imaginado.
También es posible que alguna empresa desarrolle una aplicación y decida ponerlo en código abierto a disposición de "la comunidad", si su objetivo no era "vivir" del desarrollo sino solucionar un problema concreto. Esta empresa está haciendo que su desarrollo se testee en muchos más sitios y que su mantenimiento por tanto resulte más económico.
Hay que tener en cuenta igualmente a las fundaciones de software libre que desarrollan aplicaciones sobre plataformas abiertas. El ejemplo por excelencia es apache, ya que su éxito es reconocido por todos. Han desarrollado un buen servidor.
B) Adaptan o desarrollan aplicaciones sobre programas concretos. Por ejemplo, empresas que trabajan sobre internet, intranets, etc. A las empresas de este tipo les resulta más económico trabajar sobre programas libres, el ejemplo por excelencia es PHP con MySQL y Apache.
El objetivo es el contenido, no el continente. La empresa se gana la vida en el desarrollo o la adaptación del programa. Es el mismo modelo que las empresas que están es el sector sobre código cerrado.
Caso 3.- Administradores.
Es el más sencillo ya que básicamente trabajan igual sobre código cerrado y código abierto. Hombre, siempre es un detalle poderle echar un vistazo al código fuente, pero eso es otro tipo de discusion...
Las empresas que contratan administradores lo que esperan es que consiga mantener los sistemas levantados y estables. El objetivo final en administración es que el software de el servicio para el que fué destinado. En esto lo más importante es la fiabilidad del software.
Así que un administrador seguirá siendo comiendo tanto si el software es abierto como cerrado.