Cuando trabajaba como freelance, encontré muchos casos en los que los clientes protegían sus ideas y el código fuente de sus proyectos (como aplicaciones web) tanto como sea posible, sin importar cuán importantes, poco interesantes y poco originales fueran los proyectos y los conceptos detrás de .
Ya publiqué una pregunta sobre cómo mantener en secreto las ideas y recibí muchas respuestas excelentes. Ahora, mi preocupación es más sobre el secreto del código fuente.
De acuerdo con mis observaciones de:
- Las bases de código en las que tuve que trabajar durante mi carrera,
- Mi propia voluntad de mantener en secreto parte de mi propio código fuente y:
- Algunos artículos como, por ejemplo, Respuesta abierta a Simon Stuart por parte del popular contribuyente de Programmers.SE Mason Wheeler ,
Concluyo que el código fuente se mantiene en secreto principalmente por esas razones:
Debido a que el autor se avergüenza del código de tan mala calidad, o la compañía teme perder reputación si alguien ve una base de código tan mala, o que dada la baja calidad de la base de código, no traerá nada útil a nadie para abrir el código fuente: incluso si alguien estuviera interesado, difícilmente podría ejecutar la solución (o, a menudo, incluso compilar).
Debido a que partes del código son robadas (principalmente de proyectos de código abierto cubiertos por una licencia que restringe su uso en una situación dada),
Porque el código se basa en la seguridad por la oscuridad y al autor no le importa el principio de Kerckhoffs .
Debido a que el producto es tan frágil que mostrar el código causaría demasiado daño: si una aplicación de código cerrado con todas esas fugas de seguridad resistiera a un hacker novato, la misma aplicación de código abierto tendría muchas menos posibilidades, porque incluso el hacker principiante tendría solo hay que estudiar el código para descubrir todos los agujeros.
Si no está claro de qué estoy hablando, aquí hay un ejemplo:
if (credentials.password === 'masterPassword12345') { isLoggedIn = true currentUser = credentials.userName } else { authenticate(credentials) }
Porque el autor sobreestimó el código fuente (y sus propias habilidades y experiencia). Ejemplo: creer que un algoritmo casero relacionado con la criptografía (que nunca fue revisado por nadie) es mejor que uno conocido.
Porque el autor cree que la idea detrás del código es genial y que sería robada.
Debido al síndrome "No es lo suficientemente perfecto". En otras palabras, el desarrollador está dispuesto a lanzar el código fuente al público cuando el código es "lo suficientemente bueno", pero día tras día, todavía hay cosas que mejorar, por lo que el código nunca se lanzará.
Todas esas razones dan una imagen bastante negativa de las personas que están en contra de publicar el código fuente.
¿Existen casos válidos para no divulgar al público el código de alta calidad que sigue el principio de Kerckhoffs?
fuente
Respuestas:
Algunas personas y la mayoría de las empresas tienen una percepción extraña sobre el valor del código.
"Gastamos $ 100,000 en este proyecto, por lo tanto, el código debe valer eso" y sentimos la necesidad de protegerlo.
En realidad, la mayoría del código se parece más a la pintura. Gastas $ 100 en pintura y $ 200 dólares para aplicarlo en tus paredes. Pero ahora la pintura no vale nada, no puedes venderla, nadie la quiere, e incluso si lo hicieran, no puedes quitarla de tu pared y ponerla en la pared de otra persona.
Puede mejorar el valor del edificio, pero no puede darse cuenta de esto sin vender el edificio.
Podría "robar" la base de código de Amazonas (la mayor parte está disponible gratuitamente en varios proyectos de código abierto) y establecer un sitio web de Ammassons, pero no se haría cargo de gran parte del negocio de Amazonas.
El código es una parte necesaria de cualquier infraestructura empresarial moderna, pero solo tiene valor como parte de un proceso y cultura, por sí solo no vale nada.
Agregaría que hay algunas situaciones en las que el código es vital para el negocio y sería lo suficientemente valioso para cualquier competidor como para mantenerlo en secreto:
fuente
Porque era difícil de escribir y probar . Y diseño. Y especificar. Y depurar. E ISO 9000. Y documento. Y control de versiones. Y sacar al jefe de pelo puntiagudo del camino. Y lo que sea que haga que el trabajo de un ingeniero de software valga la pena.
Y no desea que sus competidores simplemente copien y peguen su código fuente en lugar de invertir tanto tiempo y dinero como usted en su producto.
fuente
La respuesta más obvia de todas, creo, es que el software es, para muchas empresas, una parte sustancial del valor que la entidad corporativa brinda a los clientes. Entonces, si alguien pudiera simplemente modificar y volver a compilar el código, o reutilizar partes valiosas del mismo, entonces podrían ofrecer el mismo servicio o valor. Esto dañaría los intereses competitivos de la entidad corporativa y posiblemente les haría perder dinero.
fuente
Se gastó dinero para resolver un problema o un conjunto específico de problemas. Si la competencia obtiene la respuesta para estos problemas de forma "gratuita", eso pone a la empresa que resolvió el problema en una desventaja financiera, especialmente si sería posible que una empresa más grande "llegara al mercado" antes de la empresa creadora porque infraestructura en su lugar, o si un competidor gasta el dinero que HABRÍA gastado en desarrollo en marketing.
Además, a veces es posible hacerse una idea de las políticas y procesos de una empresa al observar estas cosas. Nuevamente, esta información puede usarse como una ventaja estratégica. Este es a menudo el problema más grande ... el código revela el funcionamiento interno de la compañía.
fuente
Tienes razón, la mayoría de las empresas no necesitan hacer grandes esfuerzos para mantener su código en secreto, porque no le sirve a nadie más. Muchas soluciones internas están estrechamente vinculadas a otras aplicaciones y sistemas como una especie de solución ERP personalizada.
Para algunas compañías, el valor del software es parte del valor de su compañía. Una base de código deficiente que funciona para sus propósitos tiene valor y no va a ser una preocupación para un comprador no técnico. Nadie quiere comprar una empresa con condiciones. El comprador quiere una respuesta directa sobre quién es el propietario del código y ¿pueden hacer lo que quieran? Quién sabe, la nueva compañía puede querer tomar una aplicación interna y venderla a otros en la industria y aprovechar su compra. Este grupo no valorará una base de código incorrecta tan alta como una aplicación sólida. Saber que el código se mantuvo en secreto (aunque esto podría ser una ilusión) y que no hay licencias de código abierto para solucionarlo agrega valor a la venta del negocio.
fuente
No entregas el código fuente porque cuando tu cliente necesite modificaciones en un software que creaste, tendrá que ir contigo y puedes cobrar una prima.
fuente