19 diciembre, 2012 Negocio

¿Qué calidad tiene nuestra aplicación?

Una vez que has conocido varios ERP’s, varias compañías de software, vas observando, valorando y aprendiendo nuevas metodologías y funcionalidades que no conoces, como los controles de versiones, repositorios de fuentes…, todo conlleva tener una calidad y una garantía del código que dará un valor diferencial a nuestro producto.

Hay un concepto que tiene un alto valor y que pocas compañías de software aplican; estamos hablando de la Integración continua (CI).

La integración continua es una metodología que consiste en hacer integraciones automáticas de un proyecto lo más a menudo posible para así poder detectar fallos cuanto antes. Entendemos por integración la compilaciónejecución de tests de todo un proyecto.

Qué ventajas y qué calidad nos otorga la utilización de la integración continua: gracias a la utilización de test unitarios, sumado al control que aplica Hudson, los desarrolladores pueden detectar y solucionar los problemas de código de integración de una forma más rápida, así evitando el caos de última hora cuando se acercan las fechas de entrega.

El modelo normal de construcción y compilación (se puede utilizar ANT) nos facilita en todo momento un Build (constructor) para realizar pruebas. Con ello tenemos la posibilidad de realizar pruebas antes de realizar el despliegue del código.

Como comentábamos anteriormente, en el momento en el que hemos desarrollado el patrón de pruebas unitarias, tenemos la posibilidad de ejecutarlas de forma inmediata en cualquier momento.
Gracias a la monitorización, podemos medir y valorar la calidad de nuestro código, la calidad de nuestros desarrolladores y generar unas métricas de calidad.

Gracias a estos sistemas podemos llegar a generar un sistema de alertas que, una vez se ha realizado los controles de calidad y hay un código que no es correcto, podemos hacer que le llegue un mensaje a la persona que lo ha desarrollado.
Ejemplo de escritorio de control para CI:

Repositorio de código: SVN o Git
Servidor de integración continua: Hudson o Jenkins
Herramienta de construcción: ANT o Maven
IDE: Eclipse o IntelliJ

Al final poder demostrar que nuestra solución tiene un nivel de calidad óptimo, hace ganar en confianza sobre nuestros clientes.