Cómo hacemos trabajar una Software Factory Agil (II)
En este segundo artículo vamos a hablar de las herramientas que utilizamos para la gestión de los desarrollos en nuestra factoría, y cómo hacemos que los clientes entren el el proceso de desarrollo con la herramienta.
Polarion
Polarion (https://polarion.plm.automation.siemens.com/) es la herramienta principal que usamos para la gestión de nuestros proyectos. Es una herramienta ALM (Application Lifecycle Management) y nos permite, como dice el acrónimo gestionar todo el ciclo de vida del software.
Es una herramienta en la que puedes definir la metodología en la que quieres trabajar, Scrum, cascada, V, etc., de forma que nos permite adecuarnos sin cambiar de herramienta a las necesidades del cliente.
Lleva todo el control de todos los artefactos del desarrollo, desde las historias de usuario, requisitos, las épicas, las tareas, casos de prueba, defectos, peticiones de cambio,… y todo desde una misma herramienta, e integrado y relacionado, lo que nos permite tener una trazabilidad total del proyecto.
Además permite la generación de reportes y cuadros de mando, que nos van a permitir realizar el seguimiento del avance del proyecto en tiempo real.
Permite asimismo, llevar el control de las diferentes pruebas que se realizan en el sistema, con los defectos que se vayan generando, de forma que se puede ver el estado de avance en la resolución de los defectos.
Y uno de los puntos principales y que más quebraderos de cabeza nos ha evitado es la gestión de las peticiones de cambio. Cada vez que un cliente nos solicita un cambio, lo subimos al sistema, y se evalúa el alcance que tiene ese cambio, y el tiempo que va a llevar. El cliente tiene acceso al sistema y va a aprobar la petición de cambio o no, ya sabiendo el impacto en tiempo que va a tener dicho cambio, y por tanto el impacto económico. En la herramienta queda la aprobación por parte del cliente y por tanto su aceptación en las desviaciones.
Antes las peticiones, las hacían de cualquier forma, por teléfono, por email, incluso alguna me la han hecho el el baño, aprovechando que estás aquí, y no quedaba al final ninguna evidencia del impacto que iba a tener ese cambio, por lo que terminaba generando retrasos en las entregas, discusiones con el cliente de que esto entraba en el presupuesto inicial, o no…
Con este sistema hemos eliminado estas discusiones. Todo lo que no está en el documento de historias de usuario, o un cambio a lo ya realizado es una petición de cambio que se sube al sistema, se evalúa el impacto y no se trabaja en ella hasta que el cliente la haya aprobado.
Otra de las ventajas que nos ha proporcionado la herramienta es la posibilidad de visualización del avance en tiempo real, tanto por nuestra parte, como por el cliente, al que le damos acceso a nuestra herramienta.
Por ejemplo, con la imagen anterior, puedo ver en tiempo real el estado del avance del proyecto, tanto en gráfica, como en la parte inferior puedo ver el backlog y ver el estado de cada historia de usuario y de las tareas de implementación de las mismas. De forma que de un simple vistazo, vamos a poder revisar tanto el cliente como nosotros el avance del proyecto.
Finalmente otra de las partes que más utilizamos de esta herramienta es el control de las tareas y la imputación de tiempos, lo que nos permite llevar el control de los costes asociados a cada uno de los proyectos y poder estudiar las posibles desviaciones que se hayan producido en el desarrollo del mismo.
Control de versiones
Para el control de versiones utilizamos el propio control de versiones que tiene Polarion, puede utiliza git o Subversion. Esto nos posibilita además que cada vez que se sube código al control de versiones esté relacionado con los artefactos que se han creado, o solucionado en esa iteración.
Esto nos posibilita, que simplemente haciendo copia de seguridad del repositorio de Polarion, tengamos la copia de seguridad, tanto del código fuente, como de todos los artefactos del desarrollo.
IDE de desarrollo
En este punto, dejamos que cada programador utilice el que más cómodo le haga sentir, con eso hemos visto que hemos aumentado la productividad casi un 10% de nuestro equipo. En un principo, sí definimos unos estándares en cuanto a IDEs, pero vimos que al final era más un stopper ya que necesitaba una curva de aprendizaje por medio del programador.
Versiones de Lenguajes de Programación
Aquí, las versiones utilizadas, van a depender de si el cliente nos indica cuáles son las que utiliza él, o si nos permite escoger, siempre vamos por la penúltima versión probada del software, o en caso de desarrollos para aplicaciones móviles, la que permita acceder al menos al 80% de los dispositivos del mercado.
Otras herramientas
En cuanto a otras herramientas que utilizamos en los desarrollos:
- Selenium para automatizar pruebas
- Jenkins para el proceso de integración continua
- Maven para la compilación de los proyectos java
Y finalmente, disponemos de un repositorio de librerías, tanto propias, como de terceros, perfectamente documentadas que nos permitan acelerar los desarrollos.
Con esto espero que os haya sido de ayuda saber cómo trabajamos y qué herramientas utilizamos en nuestra factoría para conseguir una mayor eficiencia.
Tanto si estás buscando trabajar full time, como suplementar tus actuales ingresos con desarrollos adicionales a los que estás haciendo en tu actual trabajo, o quieres implicarte en el desarrollo de proyectos opensource y apoyar a la comunidad, rellena el formulario que hay a continuación y nos pondremos en contacto contigo para ver los proyectos en los que podemos colaborar.