Hace unos días surgió un hilo en las lista de correo de Agile Spain sobre herramientas que utilizan los equipos ágiles en sus proyectos, uno de los miembros del grupo ha hecho la lista y la ha publicado en su blog http://enzymeadvisinggroup.blogspot.com.es/2013/02/que-herramientas-utilizan-los-equipos.html se trata de una lista, a mi parecer, muy completa que recoge herramientas que usan equipos que practican el agilismo cada día.

Infografía de Scrum – http://www.flickr.com/photos/magia3e/6236962059/
Esta entrada trato de hacer una selección de herramientas que me permitan disponer de una infraestructura completa al menos coste posible para proyectos con tecnología Java, algo, que en estos momentos es esencial para mi, ya que por el momento no tengo necesidades de alta disponibilidad, escalabilidad inmediata, espacio en disco infinito ni nada de esas cosas que, aunque valoro, no son una prioridad ahora mismo.
Para la documentación del proyecto, planificación y seguimiento
He instalado Clinker VA, una imagen que he importado en Oracle VM VirtualBox y que trae instalados Trac y Redmine.
Repositorios de código
Prácticamente vale cualquiera, yo me decanto por Git, si no te importa usar repositorios públicos tienes Github, muy inmediato muy práctico y muy apreciado por la comunicad como herramienta para ilustrar tus ideas en blogs y foros.
Si quieres repositorios privados puedes usar una cuenta Dropbox y crear el repositorio allí, aquí os dejo un pequeño tutorial sobre ello http://paindev.wordpress.com/2012/02/17/repositorio-personal-con-git-y-dropbox/
La imagen de Clinker VA trae también un servicio SVN.
Integración Continua y métricas
No puedo recomendar otra cosa que no sea Jenkins y SONAR, entre otras razones porque no he usado otras herramientas para esto, ambas están instaladas en la imagen de Clinker, por lo que este pack se me hace indispensable, aquí hay un vídeo de 2 minutos que muestra como instalar el plugin en Eclipse
Desarrollo
Supongo que ya se me ha visto el plumero, no? Mi IDE favorito es Eclipse, desde que salió la distribución WTP la he usado, pero ahora estoy trabajando con el paquete Springsource Tool Suite (STS) y tengo predilección por algunos plugins:
- StartExplorer. Para windows y Linux. permite abrir la ubicación con el explorador, la consola, una aplicación y copiar la ubicación de un recurso. Además incluye atajos de teclado para ello. Muy útil esto para trabajar con Git, ya que nos permite abrir la consola en el directorio del proyecto y ahí hacer nuestros push y pull
- SpringIDE. Se me hace indispensable si no usas STS.
- JBoss Tools. Lo he usado parar trabajar con JBoss 7, es fantástico ver lo bien Eclipse que interactúa con esa versión del servidor cuando sabes lo que haces y también como gestiona proyectos en OpenShift. Estas tools te incorporan también utilidades para Hibernate y te proporciona acceso a muchos ejemplos de proyectos JEE 6 que me han sido de bastante ayuda cuando comenzaba con esta tecnología.
- JAutodoc. Este plugin permite generar de forma automática comentarios en código de una forma un poco más inteligente que Eclipse, no es que sea mágico, pero si tienes un montón de código heredado y tienes que cumplir con las estadísticas de documentación de código, esto te ayudará a hacerlo fácil, le ahorró bastantes horas de trabajo improductivo a una amiga mía, y con esto no quiero decir que la documentación del código no sirva o no aporte, sólo que lo que había que documentar en aquella ocasión no aportaba nada, cientos de POJOs y decenas de implementaciones de interfaces que ya estaban documentados.
Para estar conectados
Para estar conectados y saber que está haciendo cada uno de los miembros del equipo se puede usar www.liveteamapp.com, algunas de las ventajas que le veo:
- No necesita registro. Los grupos se crean sobre la marcha.
- Timer pomodoro (me ha parecido oír a un lindo gatito mientras escribía este artículo)
- Chat
Ideal para ser lo primero que abras cuando comiences a trabajar.
Recapitulando
- Trac / Redmine (Clinker). El proyecto y la documentación.
- SVN en Clinker / Github. El código, las versiones, releases…
- Jenkins en Clinker. La integración continua.
- SONAR en Clinker. La calidad del código.
- Eclipse. El desarrollo.
- Liveteamapp. ¿Qué estamos haciendo cada uno?
Hola,
Como parte del equipo de Clinker, darte las gracias por la referencia.
En las versiones más recientes hemos incluido tambien Git y Clinker Desktop, una herramienta para gestionar todo tu ecosistema.
Te invitamos a que nos sigas en http://twitter.com/clinkerhq
Un saludo