La serie
- Primera parte
- Objetivos a Corto vs a Largo Plazo
- Factibilidad técnica del proceso de compra
- Segunda parte
- Recepción y mantenimiento de los activos de software
- Arbitraje y asesoría
- Tercera parte
- Realidad latinoamericana y del caribe
Esta serie de artículos esta dirigida a personas involucradas en los procesos de compras de software a la medida o servicios de desarrollo. La primera parte trata sobre los objetivos a tener en cuenta a la hora de confeccionar un proceso de compras y la factibilidad técnica del mismo. En esta segunda entrega trataremos los elementos a considerar a la hora de recibir, o rechazar, un activo de software creado por un tercero y la necesidad de contar con la ayuda de un arbitro que nos ayude a dirimir diferencias con los suplidores.
Segunda parte
Luego de solicitar la confección de productos de software a la medida, o contratar servicios de desarrollo y haber seleccionado el “mejor” suplidor posible toca una tarea súper importante: la recepción o rechazo de los entregables. Al rechazar los activos (productos) de software son rechazados se pueden generar disputas entre el cliente y los suplidores, en esos casos la ayuda de un tercero en calidad de arbitro puede facilitar la resolución de conflictos.
1. Recepción y mantenimiento de los activos de software
Pretender toda persona que requiera un software o lo utilice entienda las particularidades de su construcción y mantenimiento es una apuesta arriesgada. Por tanto me apoyare en un símil manejado por muchos: los automóviles. Al momento de comprar un vehículo familiar todos pensamos en una variable importante: el costo de mantenimiento. El mantenimiento de los vehículos depende de muchos factores pero uno de los mas importantes es la calidad de los componentes y del ensamblado de los mismos. De la misma forma, la calidad de los componentes internos del software y la forma en que estos se interconectan (acoplan) incide directamente en el costo del mantenimiento futuro. El comprador inteligente de software debe buscar la forma de evaluar de forma rápida, objetiva y sencilla la calidad interna del software para tomar decisiones informadas respecto a la recepción total, parcial o el rechazo de un producto de software.
Las empresas e instituciones cuyo fuerte no es el desarrollo de software por lo general no cuentan con las herramientas ni el talento humano para realizar estas inspecciones. En estos casos sera necesaria la contratación de un tercero para que sirva de representante del cliente ante los suplidores o de arbitro entre ambos. El arbitraje se da cuando el cliente y el suplidor tienen una diferencia de opiniones respecto a la calidad de los productos de software y no logran resolverla entre ellos.
La calidad interna no lo es todo, también esta la calidad externa (funcional) del software, es decir, lo que el software hace no el cómo lo hace. Esta parte no la abordare en esta serie de artículos ya que es una disciplina madura (Testing Funcional) y la cual no requiere de tanta experiencia técnica por parte de los clientes para llevarla a cabo. Sin embargo, sepa el lector que debe tenerla tan en cuenta como la calidad interna.
El proceso
No importa la metodología utilizada o impuesta por el equipo de construcción (cascada, ágil, etc.) el software no se escribe de 0% a 100% en un instante. Aunque el modelo de entrega contemple una sola mega-entrega al final del proyecto, o entregas parciales durante la duración del proyecto es importante saber que se puede medir y controlar la calidad del software de manera incremental.
El proceso de recepción debe establecerse desde el inicio, términos de referencia, para establecer la cadencia los mecanismos de verificación. Se debe tener especial atención en la eficiencia del proceso de validación ya que el software se construye por bloques interconectados cada etapa del mismo termina siendo un pre-requisitorio de los próximos. Digamos que se les exija a los suplidores realizar entregas mensuales las cuales serán validadas por el cliente y/o su representante. Si esta validación tarda mas de un par de días ya estamos agregando una pausa lógica en la construcción del próximo paquete te trabajo. Los desarrolladores deberán esperar si los componentes recién creados cumplen con las especificaciones, por si deben mejorarlos, antes de continuar trabajando y utilizarlos como fundamento de nuevos componentes. Si continúan trabajando sin esperar la retroalimentación del cliente es posible que deban rehacer muchos componentes o que el impacto de los cambios sea mucho mayor.
Para ser justos, y establecer una relación ganar-ganar, los mismos mecanismos de verificación de la calidad interna de los productos de software que utilizara el cliente deben hacerse disponibles a los suplidores. O estos últimos afirmar que cuentan con la capacidad técnica y el talento humano para hacer sus propias validaciones. La idea de tener constantes devoluciones no es conveniente para una o todas las partes dependiendo de como se confecciones los contratos.
Las herramientas y el talento humano
Este nivel de eficiencia se consigue realizando una verificación de forma (rápida) y fondo (lenta) utilizando una combinación de herramientas de análisis de código fuente y la experiencia de técnicos expertos en la tecnología utilizada. De esta forma se le puede dar respuesta en muy poco tiempo a los suplidores sobre la calidad de los productos entregados por ciclo o fase.
En la actualidad existen herramientas de análisis de productos de software que pueden realizar verificaciones sobre el código fuente de estilo, eficiencia, seguridad, eficacia, entre otros en cuestión de minutos (menos de una hora), para aplicaciones de tamaño promedio. Con el reporte producido por estas herramientas los auditores (técnicos velando por los intereses del cliente) se enfocan en temas de fondo, ej. el diseño del software, para producir su valoración respecto al mismo.
2. Arbitraje y asesoría
Ya sea que el adquiriente cuente con personal propio para realizar dichas revisiones o que se apoye en un tercero necesita de alguna asesoría para montar el proceso si su fuerte no es la construcción de software. Mas aun, cuando se presentan diferencias de criterios entre los suplidores y el cliente ambos necesitan una figura (idealmente) independiente para que los ayude a resolver las diferencias lo antes posible y puedan continuar con la ejecución del proyecto o lleguen a una cancelación temprana, cortando perdidas en ambas partes.
Es importante diferenciar las auditorias postmortem o las asesorías para la definición de procesos de compras o términos de referencia específicos para una licitación en particular de un acompañamiento activo por parte de una firma que pueda ayudar en la evaluación del software mientras se va construyendo. El primer tipo de auditoria o asesoría es comúnmente ofrecido por empresas como las Cuatro Grandes (Deloitte, Ernst & Young, KPMG y PricewaterhouseCoopers) generalmente son consultadas por gobiernos o grandes corporaciones por lo prohibitivo de sus costos. El problema con estos acercamientos, ademas de su alto costo, es que solo nos dan pautas sobre que exigir (términos de referencia) y/o que paso al termino de un proyecto (postmortem) mas nos dejan al cliente solo durante la ejecución de los proyectos, donde se puede detectar o evitar la mayoría de los problemas de manera temprana y tomar las acciones correctivas pertinentes.
En resumen, el comprador inteligente de software deberá buscar ayuda para los aspectos que no tenga experiencia realizando como:
- La confección de los términos de referencia
- El aseguramiento y control de la calidad, tanto estructural (interna) y como funcional (externa)
- El análisis postmortem sobre la ejecución de un proyecto enfocado en los procesos y productos
Finalmente, cuando el nivel de inversión lo amerite, debe asegurar la figura de un arbitro que le ayude a resolver diferencias con los suplidores, con el debido consentimiento previo de los suplidores.
En la próxima entrega hablare sobre la realidad latinoamericana y del caribe sobre la estructuración de los procesos de compra de software y servicios de desarrollo. Los procesos mal confeccionados generan grandes gastos para los clientes, limitan su competitividad y les impide alcanzar sus objetivos estratégicos. Si a esta realidad le agregamos el ingrediente de la corrupción nos vemos frente a una fuga de importante de capital.
2 Comments