Atrás

Herramientas de un ecosistema Java para un desarrollo ágil

Cuando se habla de un ecosistema para el desarrollo ágil, se está hablando de un conjunto de herramientas y metodologías que permiten que los desarrollos estén más controlados, permitiendo llegar a los hitos en los plazos fijados.
En este artículo nos vamos a centrar en las herramientas y en qué nos aporta cada una de ellas.

Tareas implícitas en el desarrollo

Lo primero que debemos ver son las distintas tareas que, sin ser el desarrollo puro y duro, sí son tareas presentes en todos los desarrollos. Hablamos de:

  • Construcción: compilación, resolución de dependencias, ensamblado…
  • Versionado: mantener referencias a los cambios, pudiendo revertirlos o saber en qué punto se introdujeron.
  • Distribución: hacer llegar el producto resultante a quien lo precise.
  • Calidad: aplicación de los distintos criterios de calidad definidos para la aplicación.
  • Vigilancia: mantener los criterios de calidad a lo largo de la vida del proyecto.
  • Gestión de las tareas: controlar la evolución de las tareas que forman un proyecto de elaboración de software.

Dado que estas tareas no forman parte en sí del desarrollo, deberían no quitar tiempo al equipo, por lo que es sumamente importante disponer de herramientas que faciliten la realización de estas tareas de forma automatizada.

Herramientas

Con estas premisas, echemos un vistazo a algunas de las herramientas disponibles para montar un ecosistema para el desarrollo Java.

  • Construcción: nos encontramos con varias opciones, como Ant, Maven o Gradle.
  • Versionado: de nuevo aparecen varios candidatos como SVN o Git, en cualquiera de sus vertientes GitHub, Bitbucket…
  • Distribución: podemos destacar Maven y sus repositorios, como Nexus, Archiva o Artifactory, aunque hay otros candidatos, como Ivy.
  • Calidad en el Software: se puede ver de dos formas. Por un lado, la Calidad de ejecución (que el software haga lo que tiene que hacer), para ello hay frameworks como Junit, TestNG, DBUnit, Mockito, HttpUnit, Selenium, Concordion, Spock o Geb; por otro lado, podemos hablar también de Calidad en el formato (que el software esté escrito siguiendo unos parámetros que permitan disminuir los problemas que puedan surgir más adelante), para ello se puede emplear una herramienta como Sonarqube.
  • Vigilancia: se busca que los criterios de calidad no se pierdan a lo largo del tiempo. Hay un concepto, que acuñó Martin Fowler, llamado de Integración de contínua, con el que se persigue encontrar fallos prontamente. Para aplicar este concepto existen herramientas como Jenkins, Hudson, Bamboo, TravisCI, …
  • Gestión de Tareas: lo vemos por último, pero no por ello es menos importante. La Gestión de las tareas es cualquier cosa que haya que realizar por parte del equipo, desde la codificación hasta verificación de los informes de calidad. Para esta misión, se dispone de nuevo de un gran abanico de herramientas como Jira, Bugtraker, Bugzilla, ...

 

Siguiente