Propiedad Intelectual Del Código Fuente

No importa donde en que parte demo mundo estés. El Código Fuente es propiedad Intelectual, “Te pertenece”. Salvo que en algún contrato hayas expresado su entrega, es de tú propiedad. Una cosa es la Idea que te dio el contratante y otra es quien y como se plasmó la Idea. Existen miles de maneras de Plasmar las ideas, pero tu Estudiaste, Practicaste, te quemaste las Pestañas; es decir, te dedicaste a eso durante “X” tiempo; lo que te llevó a Plasmar Una Idea de acuerdo a Tu Conocimiento, a tu Know-How.

En todo el mundo, un sistema con Fuentes tiene un precio Muy Superior al precio que comúnmente se cobra.

Puedes vender las fuentes, pero Firma un contrato donde se aclara que No Pueden Utilizar las fuentes para otra cosa que no sea el propósito que especificó la empresa que adquirió el sistema. Además en el contrato figuran Penalidades en caso que el autor del sistema verifique que se instaló en otra empresa. El código fuente de las librerías no entra jamás en el trato, salvo que te lleguen al precio.

Veamos

Todo proyecto tiene tres componentes:

  • Concepto o idea
  • Financiamiento
  • Desarrollo

Si las tres cosas las has puesto tú, el sistema es todo tuyo, sería una solución ofrecida por ti o tu empresa y no debes entregar fuentes, pero si debes ofrecer garantía y una vía de salida a los datos de tu cliente en caso de que tu empresa desaparezca para que no los tengas de “rehenes de tu sistema”.

Pero si te contratan como programador para desarrollar un proyecto ahí entra el contrato: ¿con fuentes o sin fuentes?, ¿puedes vender la aplicación luego como tuya o será propiedad del contratista?, piensa que te puede tocar contratar programadores, ¿de quién son los fuentes? ¿De ellos o tuyos? ¿Aceptarás que te digan me voy y me llevo mi trabajo?… o ¿que ellos vayan y digan que ese software que tu financiaste se lo vendan a otro como suyo? Todo dependerá del contrato…

Aún en casos en que aceptemos entregar el código uno tiene muchas librerías que usamos en otros proyectos, librerías que ya estaban hechas, y que son de uno –El Framework– que el cliente no pagó. Eso puedes y debes protegerlo, debes separar lo que es de uno de lo que te pagaron por hacer, y proteger el código que no está relacionado con la lógica de negocios del cliente. Crea librerías y/o componentes (.lib .dll .ocx et cetera) para poder enlazarlas sin perder tu propiedad. Así permitirías que le dieran mantenimiento al sistema sin perder tu propiedad.

Así que

  • ¿Cuál es el inconveniente real que te evita entregar tus fuentes?
  • ¿Crees que tu cliente podría hacerte competencia?
  • Si le brindaste un servicio de excelencia, ¿no crees que el mantenimiento te lo va a pedir a ti?
  • ¿Realmente crees que pueda comercializar tu trabajo y quitarte a tus clientes potenciales?

El problema es muy sencillo de resolver, el secreto se llama Servicio. Si en el contrato no se especifica la entrega del código fuente, tampoco está especificada la no entrega; si planeas no entregar los fuentes entonces especifícalo, se explícito en que No Vas A Entregar Fuentes, y que estos tienen un valor adicional en caso de ser requeridos.

¿No tienes contrato? si cobraste muy bien por tus servicios y te pagaron en tiempo y forma, lo justo es que los entregues, tan solo por el servicio (las librerías no).

Ofrécele siempre a tu cliente un servicio de excelencia, de tal suerte que el mantenimiento del sistema también lo quiera realizar contigo, y en caso contrario las correcciones de lo que otro programador realice se cobran por encima del valor normal de mantenimiento; es decir, a precio de mercado.

Este es un tema polémico, da un buen servicio, si no fuiste explícito en no entregar fuentes, el cliente puede entender que tiene derecho a ellos y créeme, el cliente siempre tiene la razón (Ellos pagan, luego entonces ellos tienen la razón)

Por Otro Lado Es Interesante El Aspecto Filosófico.

¿Por qué quiere el cliente los fuentes? razonablemente para cubrirse de la necesidad de retocar el desarrollo y que tú no estés disponible. Cambio o se agregó un requisito fiscal muy simple, y… ¿Cómo te encuentra? ¿Tira todo a la basura y arranca de nuevo? Surge la necesidad de un nuevo informe… ¿Qué hace el cliente?

Debes poner por escrito que en el caso de que abandones el mercado de software haces entrega de las fuentes sin cargo adicional alguno.

Por otro lado, ¿Él puso la idea, definió los objetivos, estableció los alcances? dudo mucho que en algún lado esto otorgue derechos adquiridos a la propiedad intelectual del producto; es como pretender que la Nasa le pague a Clarke o Asimov, porque tuvieron la idea de un transbordador espacial. Lo que se patenta es la concreción de la idea, no la idea en sí.

¿Alguien ha pagado derechos intelectuales por desarrollar un sistema contable, de facturación o de bancos? Es seguro que antes de los que ya muchos hemos hecho, hubo otros sistemas que cubrían por lo menos una parte de lo que el nuestro hace.

Si tengo la idea de una interface neuronal con la computadora, que mediante un implante lea los impulsos eléctricos del cerebro y me permita interactuar… ¿me da algún derecho? ¡Nada! ni siquiera como argumento de una novela, salvo que la escriba y publique (o sea, concrete en ese plano la idea como producto)

Como sea tu relación con la empresa, cambia totalmente el enfoque jurídico. Si estás trabajando para una empresa como empleado (relación de dependencia), todo lo que hagas le pertenece a la empresa, a lo sumo puedes discutir si tienes derecho o no a aplicar tus conocimientos en otros ámbitos (en algunos casos hasta se fijan clausulas al respecto).

Si contratas programadores, Si tienes que especificar que te están comprando, si solo un producto final o incluyes fuentes, documentación, etc.)

La relación de fuerza con el cliente puede condicionar tu decisión, sin ninguna duda. Sí debes dejarle en claro que la entrega del código fuente hace caducar toda tu responsabilidad por el correcto funcionamiento del producto, ya que no estarías en condiciones de establecer si la falla viene por algo realmente realizado por ti, o si alguien metió la mano. Incluso aclarar que en ese caso tampoco le garantizas una ampliación o retoque posterior, por las mismas razones. Me ha pasado con agregados efectuados por alguien dentro de la empresa del cliente, que al actualizar la aplicación, esta deja de funcionar.

Lenguaje De Programación + Base de Datos Versus MS Excel Para Análisis Y Proceso De Datos Y Reportes

Eligiendo Entre Hojas De Cálculo Y Bases De Datos

Con frecuencia los usuarios de Microsoft Office me preguntan, si, por qué y cuándo deben utilizar un sistema versus Microsoft Excel. Especialmente cuando se haya muy cómodos usando MS Excel y no entienden las razones de por qué cualquiera debería utilizar un programa y base de datos (BD). Esta es mi perspectiva.

Ventajas De Las Hojas De Cálculo De Microsoft Excel

La curva de aprendizaje para Excel es muy corta, por lo que es fácil utilizar Excel y ser productivos enseguida. Son raras las ocasiones en que un ingeniero de IT cree una hoja de cálculo cuando los usuarios lo pueden hacer por sí mismos.

Excel facilita el almacenamiento de datos, realizar cálculos numéricos, formatear celdas y ajustar el diseño para generar los reportes a presentar. Características avanzadas como subtotales, tablas gráficas, análisis y plantillas facilitan realizar un amplio rango de tareas. Hasta se puede integrar con los servicios analíticos desde SQL Server. Manipular los resultados es también fácil para obtener el exacto diseño deseado de fuentes, colores etc.

Desventajas De Las Hojas De Cálculo De Microsoft Excel

Desafortunadamente hay un precio por la flexibilidad de las hojas de cálculo. Mientras es fácil crear formulas, referencias, copiar y pegar datos y unir hojas y libros, conforme se hace más complejo el trabajo, las hojas de cálculo se vuelven más difíciles de modificar y manejar. Mientras las hojas de cálculo son ideales para crear análisis de una sola vez, se vuelven problemáticas conforme crece y evoluciona la BD con el tiempo. Conforme se agregan nuevas líneas y columnas, los rangos de sumas y formulas pueden necesitar ser modificadas o crear nuevas, los datos y formulas no son actualizados consistentemente y esos errores llevan a malos resultados y decisiones.

Los desafíos de las hojas de cálculo se deben a la dificultad para mantenerlas con precisión con el tiempo y la ampliación del volumen de datos.

Ventajas De Las Bases De Datos

Quienes están acostumbrados al uso de Excel con frecuencia les es difícil comprender lo que ofrecen las aplicaciones de BD y que no tienen las hojas de cálculo. Algunas ventajas de las bases de datos:

  • Normalización y estructura de datos a través de múltiples tablas
  • Escalabilidad: es fácil agregar registros
  • Integridad referencial y de datos
  • Consultas y reportes

Estructura En Tablas Y Validación

Las BD hacen fácil el almacenar información en un solo lugar y hacer referencia a ella en múltiples lugares. Por ejemplo, la información del cliente se puede mantener en una tabla de clientes donde el nombre, dirección, número de teléfono, correo electrónico, etc. se almacenan. A continuación, se hace referencia en otros lugares, tales como consultas, formularios e informes. Si la información del cliente cambia, la nueva información se actualiza automáticamente en todos los lugares mencionados. Los diseños de tablas también imponen una estructura que se presta a los tipos de datos, validación y consistencia de mayor calidad que la que existe normalmente en las hojas de cálculo. Las bases del almacenamiento numérico, fecha y campos de texto son sólo el comienzo.

Es Fácil Agregar Registros

La diferencia más grande con las hojas de cálculo es que en una base de datos, los registros son fácil de agregar. Si está bien diseñado, con el tiempo, los nuevos registros se añaden continuamente sin necesidad de añadir nuevos campos. Todas las consultas, formularios e informes siguen trabajando sin ningún cambio. Se pueden aplicar diferentes filtros pero los resultados son siempre coherentes. No hay necesidad de volver a probar las fórmulas (celdas) cuando se añaden nuevos datos. Esto permite informes precisos que se generan cada año, trimestre, mes, semana, día, etc.

Datos E Integridad Referencial

Con respecto a la entrada y salida de información basura o inútil, las bases de datos proporcionan herramientas para mantener la calidad de los datos. Listas de búsqueda, y reglas de validación de campos y registros individuales se pueden implementar fácilmente a nivel de tabla. En los formularios se pueden agregar reglas adicionales durante la entrada de datos para responder a la selección y eventos de usuario. El acceso también ofrece integridad referencial entre tablas para asegurar que los datos estén definidos consistentemente en las tablas.

Consultas y Reportes

Las consultas y reportes de Microsoft Access te permiten manipular por complete los datos y presentarlos en detalle o resumen sin importar como esté almacenada u organizada la información en las tablas subyacentes. Ofrece gran poder y flexibilidad para analizar y presentar resultados.

Conclusión

Excel hace que sea fácil generar reportes personalizado con formato muy flexible y anotaciones que puedes agregar en cualquier lugar. La recompensa de una BD que simplifican las cosas con el tiempo. Puede ser fabuloso para el análisis de una sola vez, pero si los datos e informes deben mantenerse con el tiempo, las hojas de cálculo a menudo golpear una pared. La mayoría de las organizaciones tienen muchas hojas de cálculo “similares” que son mejoradas de forma ligeramente diferente y rápidamente se vuelven inconsistentes. Una base de datos bien diseñada evita ese reto de gestión.

Una solución donde los datos de una BD de Access se utilicen a través de un programa, provee la mejor solución. La integridad, potencia y flexibilidad de una BD en conjunción con un lenguaje te permite potenciar el poder de la información. Utilizando procesos automatizados, el compartir información al mismo tiempo es completamente transparente.

En mi experiencia esas soluciones evolucionan con el tiempo en formas impredecibles independientemente de la tecnología. Contar con herramientas que permitan la flexibilidad de responder rápida y efectivamente a tales cambios te de poder a ti y a tu organización para cumplir su misión eficientemente.

Excel.- análisis de datos y algunos procesos contables, nos permita llevar de forma muy rudimentaria, la gestión de un pequeño negocio.

  • XL no te permite Layered architecture ni n-Tier.
  • XL No permite datos relacionales (seguimiento de información como nombres y datos generales para incluir acciones como tareas).
  • XL No permite conservar miles de datos sobre todo si la mayoría es texto.
  • XL No permite importar datos de fuentes no compatibles.
  • XL No permite consultas y filtros complejos.
  • XL No permite acceso de múltiples usuarios al mismo tiempo.
  • XL No permite seguridad y niveles de acceso por usuario.
  • XL No permite registro de cambios.

Lenguaje De Programación.- Utilizando un potente gestor de BD te permite crear programas para gestionar desde un pequeño hasta un gran negocio, añadiendo menús, botones, formularios, informes, y un sin fin de opciones para interactuar con nuestro programa, y dotarlo de los mecanismos de seguridad para que el usuario no pueda estropearnos el programa.