27 Nov Los Riesgos de un Contrato de Desarrollo Informático
Introducción
Volviendo al tema del desarrollo, y observando las múltiples debilidades que podemos detectar en la confección de contratos de creación de sistemas entre clientes y empresas de software, el papel que puede jugar como mediador un profesional independiente e imparcial es el objeto del presente artículo.
El Contrato
La idea de realizar contratos informáticos deja en descubierto debilidades teóricas y prácticas, tanto en abogados como en informáticos. El primer grupo cuenta con una sólida base jurídica para la elaboración de contratos, pero no puede vislumbrar todas las dificultades que conlleva la realización de un proyecto de software. Por otro lado, el segundo grupo maneja las variables involucradas en el proyecto, pero puede no tener totalmente claro el marco legal que debe aplicarse.
La elaboración de cláusulas contractuales debe implicar necesariamente un trabajo interdisciplinario entre abogados y péritos informáticos, sin embargo, normalmente no se cuenta con el asesoramiento de ninguno de ellos, con los riesgos asociados a esta carencia.
La Idea
Antes de realizar un contrato, existen algunas condiciones que son indispensables para iniciar una relación contractual con perspectivas de éxito entre cliente y proveedor informático:
- La primera de ellas es contar con una propuesta madura, es decir, un proveedor que cuente con un proceso de desarrollo de software suficientemente documentado, estandarizado e integrado, y con experiencia comprobable en gestión de proyectos.
- Otra característica importante, qué duda cabe, es la madurez del cliente en su negocio. Un cliente maduro expresa sus requerimientos con mayor detalle, logrando bajar el grado de incertidumbre de un proyecto, lo cual permite obtener una mejor proyección de tiempos y costes dentro del acuerdo, así como una disminución de mantenimiento posterior al desarrollo.
- La calidad de la propuesta es una condición no menos relevante, y se debe tratar que en ellas esté reflejada cuestiones como la metodología que el proveedor utilizará, administración y gestión del proyecto, el control de estándares y el aseguramiento de la calidad, plan de capacitación, garantías y asistencia técnica, así como también los criterios económicos (coste total y formas de pago) de la solución planteada a las necesidades del cliente.
- Otra cuestión a considerar son los criterios de aceptación de productos o evaluación de servicios, debiendo evitarse en todo momento las ambigüedades.
- Por otra parte, las condiciones contractuales deben incluir todas aquellas penalizaciones, garantías y responsabilidades, que se realizan sobre los compromisos adquiridos y que deben cumplir las partes.
- Por último, se debe intentar lograr la mayor equidad y realismo en el contrato, y tratar de involucrar al usuario final en la elaboración de los acuerdos para poder captar las necesidades reales y se plasmen las mejores condiciones en el contrato buscando el éxito final del proyecto.
La tarea de redactar contratos debería quedar en manos de abogados, y el asesoramiento en materia informática debería ser sujeta a la opinión de un consultor externo e imparcial, ya que se suelen manejar ciertos aspectos técnicos que por definición suele desconocer un abogado y que si se omite en el contrato informático, a futuro acarrea serios problemas entre cliente y proveedor.
Mientras no se realice un trabajo interdisciplinario en este tema los riesgos aumentarán, pero contar con un consultor que realice una evaluación de los riesgos asociados a la elaboración de un contrato informático puede ser de gran utilidad, en especial en aquellas organizaciones con falta de experiencia en este tema. En la práctica no se dispone de tales personas, ya sea por cuestiones de tiempo, lugar o económicas.
El périto informático es el medio para sobrepasar estas limitaciones. La combinación de conceptos para la administración de riesgos en el desarrollo de sistemas de software, los elementos constitutivos de los contratos, los sistemas basados en conocimiento y la tecnología, se integran durante el desarrollo del contrato con el sistema propuesto.
La clave consiste en desarrollar y administrar correctamente los requerimientos especificados en un contrato informático. Indudablemente, los riesgos durante la elaboración del contrato son un punto crítico a considerar. A través de la evaluación del contrato informático con la ayuda de profesionales externos, se anticipará posibles problemas para garantizar que se logren los resultados deseados.
La administración de riesgos en el desarrollo de sistemas de software ha sido estudiada por diferentes investigadores, siendo uno de los trabajos más relevantes el desarrollado por Elaine Hall [Hall, 1998], integrante del Software Engineering Institute [SEI]. Este paradigma propone manejar el riesgo siguiendo seis etapas que se ejecutan ininterrumpidamente:
- Identificar los riesgos antes de que afecten a un proyecto.
- Analizar las fuentes de riesgos estudiando probabilidad de ocurrencia e impacto.
- Planear estrategias para transformar la información de riesgos.
- Seguir el estado de los riesgos a través de métricas.
- Controlar las acciones planificadas y corregir desviaciones.
- Comunicar los riesgos a todos los niveles de la organización.
La identificación de riesgos se debe realiza mediante la preparación de un cuestionario que intente focalizar las principales debilidades que surjan del contrato informático, centrándose en factores críticos en términos de proceso, producto y proyecto. Se formulará una batería de preguntas propias para la identificación de riesgos en el objeto de contrato, las partes intervinientes, el alcance, etc.
El cuestionario debería comenzar a tratar los principales elementos constituyentes de un contrato: tipo, identificación de las partes, objeto, alcance, formas de pago, y obligaciones del contratante y contratado. Asimismo, se profundizará en tópicos que deberían especificarse en las cláusulas propias de los contratos informáticos, como son:
- La instalación.
- La puesta en marcha.
- La capacitación.
- Los estándares.
- Los criterios de aceptación.
- Los tiempos de entrega.
- Control de cambios.
- Derechos de autor, y garantías.
Es necesario realizar una evaluación exhaustiva de riesgos en un contrato, y el grupo propuesto por abogado/informático, está basado en el conocimiento y experiencia de ambos como expertos en sus respectivas áreas y su asesoramiento debería ser considerado en cualquier contrato informático.
Conclusión
Aunque en la actualidad prácticamente ninguna empresa con necesidades de desarrollo de software ha tenido en cuenta un asesoramiento multidisciplinar a la hora de establecer el contrato de desarrollo con la empresa de software, no cabe la menor duda de que la elaboración del mismo conlleva riesgos comunes a la informática y al derecho. Por tanto, una de nuestras misiones como péritos deberá consistir en ponernos a su disposición para ir advirtiendo y asesorando a las empresas para su propia protección frente a los riesgos que comporta un contrato de este tipo.