A menudo pensamos en el código como en algo muy valioso, y no hay nada mas alejado de esto. El código tiene muy poco valor fuera del contexto de la organización que lo creó. Hay que comenzar a entender que en el caso que el código no sea hecho explícitamente para ser genérico, su uso se torna muy problemático, incluso dentro de una misma organización, cuando se intenta hacer el reuso de código entre diferentes proyectos.
Hay muchos equipos de desarrollo interno en empresas que no se dedican al desarrollo de software (y en las que si también) que gastan mucho tiempo construyendo frameworks caseros, bibliotecas que serán utilizados según ellos en varios proyectos:
Cuanto mayor es la cantidad de código acumulado, más la empresa está amarrada a los desarrolladores actuales (y mas ellos ocupan sus mentes con información aplicable solamente a una organización o un equipo), y lo mas difícil será traer nuevos desarrolladores. Tales frameworks y bibliotecas normalmente tienen una curva de aprendizaje muy grande para nuevos empleados -especialmente porque la
documentación es algo virtualmente ignorado- y ellos en forma muy rara pueden ser usados para cualquier otra cosa sin refactorizaciones significativas (porque ellos no fueron hechos para ser reutilizados de hecho, o lo fueron de manera tan arbitraria y superficial como fue posible...
...Así una pregunta que toda organización se debería hacer a sí misma, es por cuanto podría vender su "código reutilizable", siendo realista, cuanto ofrecerían los competidores antiguos o nuevos en el mercado por él? En casi todos los casos la respuesta es $0, y ellos no irían a quererlo ni por ese precio. Hay una cantidad infinitamente pequeña de robo de código en este mercado (estamos en la era de los DVD's grabables y de los dispositivos USB) porque la mayor parte del código -mas allá de los frameworks y bibliotecas usados por la industria- no tienen valor alguno fuera de un proyecto específico de un grupo específico de desarrolladores. Intentar utilizarlos para otros proyectos frecuentemente es peor que comenzar a partir de cero.
Podemos concluir que los frameworks que son lo suficientemente abstractos y genéricos son mas caros de diseñar y desarrollar que las soluciones que serán utilizadas una única vez, y ya que el tiempo y costo para que un desarrollador absorva la complejidad de un nuevo framework es dificilmente llevada a consideración al hacer un análisis de costo-beneficio del reúso del código, el reúso de código tiene mucho menos sentido del que puede imaginar. No tenemos que estar en contra del reúso del código en conjunto con frameworks; él es mucho mas positivo con relación a reutilizar código de bibliotecas que son estandares de mercado, por ejemplo. La verdad, es que tenemos que defender la adopción de frameworks que sean estándares de mercado (como los de código abierto), que por necesidad presentan abstracción y encapsulamiento apropiado, como alternativa a frameworks complejos desarrollados internamente.
Por todas estas razones, podemos estar seguros que el riesgo al robo de código es mínimo, y mucho menor al comunmente imaginado, y de esta forma las empresas no deberían tener miedo de compartir su código cuando eso tiene sentido.
Bueno, vamos a presentar un análisis realista sobre el valor de nuestro código, según Carl Lewis:
No es nada intuitivo que algo tan difícil y caro de crear, pueda valer tan poco. Creo que por eso a tantas organizaciones les gusta fingir que su código es mucho mas valioso de lo que es en realidad.