Archivo de la etiqueta: scrum

Retrospectiva

Siguiendo la metodología ágil SCRUM y ahora que falta un mes para finalizar el curso, toca hacer una RETROSPECTIVA para ver cómo hemos llegado hasta la fecha y que hay que mejorar para cerrar el proyecto.

Consideramos que el proyecto avanza a un ritmo lento y analizamos las causas:

  • Curva de aprendizaje lenta
  •  Integración con APIs de redes sociales dificultosa
  • Mucho tiempo se consume en arreglar fallos de librerías, incompatibilidades de versiones…
  • La idea del proyecto es atractiva y muy buena pero no se tuvo en cuenta los 3 o 4 meses para llevarla a cabo

Por otro lado, también consideramos que hemos sacado muchas cosas positivas:

  • Objetivo de aprendizaje de la asignatura: Wicket , WiQuery , Hibernate , JAVA, Ajax, JSON, HTML5, REST.. APIs de Google Maps, Facebook, Twitter, el tiempo.. )  Estas tecnologías más las que ya habíamos aprendido en asignaturas anteriores nos ofrece un abanico muy amplio de posibilidades ( JavaScript, Responsive Design Web, Bootstrap, MySQL)
  • Sin olvidarnos de todas las herramientas de desarrollo, testing y seguimiento de metodología SCRUM: Jersey, Selenium, Maven, SVN,Eclipse, Pivotal tracker, máquinas virtuales….
  • Pasos en todas las fases de un proyecto: Diseño , elaboración y producción
  • Entorno real: Una de las ventajas de esta asignatura es la libertad para desarrollar el proyecto. Creemos que es muy parecido al entorno que veremos en una empresa

 

Sin título-1

Si consideramos que de los aspectos negativos para lo que nos sirve es para APRENDER, el balance es claramente POSITIVO.


Historias de Sprints

A continuación mostramos las historias que se han definido para los tres Sprints realizados:

SPRINT 1

  • Documentación técnica (Roles)
  • Creación de un Backoffice para la gestión de usuarios
  • Borrador de diseño WEB
  • Previsión Gantt del proyecto
  • UML y casos de uso.
  • Mirar viabilidad de loguearse en Web y Android de Facebook y Twitter.

SPRINT2

  • Diseño y creación de BBDD
  • Integración de BBDD con Hibernate
  • Guardar datos de usuarios cuando hacemos login.
  • Creación de servidor REST (Jersey)
  • Recepción de Json en Android
  • Implementar la página de Lets train.
  • Creación de un torneo

SPRINT 3

  • Funciones avanzadas en WEB cuando hacemos login (AJAX..)
  • Creación y gestión de torneos, equipos y usuarios.
  • Lets train opciones avanzadas : Filtro, creación de eventos ,  desplegables
  • Integración de API weather Online
  • Entorno de producción
  • Creación de pruebas JUNIT
  • Gestores de métodos

También nos ha surgido trabajo “extra” no planificado, ya que la integración de la API de facebook, API de Twitter y un  ID interno para gestionar mejor a los usuarios no ha sido nada trivial.

Para el uso de la aplicación se han definido tres roles: Administrador, usuario y visita con lo cual los permisos y accesos de cada uno de estos han de ser controlados en todo momento. Esta circunstancia también nos ha hecho plantearnos el uso de unos paneles integrados en wicket que controlen la visibilidad en la página web de algunos botones o enlaces.

scrum-methodology

Os dejamos con una presentación de un resumen sobre SCRUM y sus conceptos más básicos:


Pivotal Tracker

Pivotal_tracker_logo

Pivotal Tracker es una herramienta de gestión de proyectos ágiles, por ejemplo para proyectos con Scrum y lo utilizaremos para la planificación de nuestro proyecto.

De esta herramienta podemos destacar frente a otras:

  • Es gratis y no tiene ningún tipo de limitación. Es decir no hay licencia “community” y otra “enterprise”, ni nada parecido
  • Esta en la nube. Con lo que no tenemos que instalar nada en nuestros ordenadores, todo lo haremos a través del navegador
  • Se centra en algo muy interesante que es la gestión de la pila de producto, y métricas como la velocidad. Es decir, he visto muchas herramientas de este estilo y la mayoría intentan simular los post-it de la pared. Quedan muy monas, pero no son prácticas porque la mejor manera de usar los post-it es ponerlos en la pared
  • Por supuesto se puede usar para trabajo con equipos descentralizados, puesto que está en internet. Además se puede crear varios perfiles de acceso por lo que podría haber usuarios que, por ejemplo, sólo tienen permiso para ver las cosas, pero no para modificarlas.
  • Guarda histórico de nuestras acciones. Esto es bastante importante si tenemos, por ejemplo, alguna certificación de calidad, como puede ser ISO, que siempre nos exigen trazabiliad de nuestro trabajo (aunque para mi, esto es fundamental tengas o no certificación de calidad

Dejamos la fuente de información (incluye una guía imprescindible 😉 ):

http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=pivotalTracker


Metodologías

En la clase de hoy hemos visto dos tipos de metodologías aplicadas al desarrollo de software:  Pesadas (RUP & UML) y ágiles (XP y SCRUM)

De qué hablamos cuando nos referimos a pesadas y ágiles?

“Estas metodologías pesadas imponen una disciplina de trabajo sobre el proceso de desarrollo del software, con el fin de conseguir un software más eficiente. Para ello, se hace énfasis en la planificación total de todo el trabajo a realizar y una vez que está todo detallado, comienza el ciclo de desarrollo del producto software. Se centran especialmente en el control del proceso, mediante una rigurosa definición de roles, actividades, artefactos, herramientas y notaciones para el modelado y documentación detallada [42]. Además, las metodologías tradicionales no se adaptan adecuadamente a los cambios, por lo que no son métodos adecuados cuando se trabaja en un entorno, donde los requisitos no pueden predecirse o bien pueden variar.

La sociedad actual implica ser “ágil”, es decir, tener la capacidad de proveer respuestas rápidas y ser adaptables al cambio. Ambas cualidades siempre han sido deseables, pero en el entorno de negocio actual resultan indispensables

Las metodologías ágiles proporcionan una serie de pautas y principios junto a técnicas pragmáticas que puede que no curen todos los males pero harán la entrega del proyecto menos complicada y más satisfactoria tanto para los clientes como para los equipos de entrega.”

Imagen2

Nuestro proyecto lo planificaremos con  SCRUM: Definiremos una pila de productos, calcularemos la velocidad estimada de trabajo, planificaremos historias para los Sprints y haremos reuniones diarias de 10 minutos… También miraremos para atrás y haremos una retrospectiva de cada sprint para ir mejorando en el trabajo en grupo.

Os interesan las metodologías de trabajo?  Aquí os dejamos un libro interesante sobre SCRUM

http://www.proyectalis.com/wp-content/uploads/2008/02/scrum-y-xp-desde-las-trincheras.pdf

Como siempre, iremos contando los avances en la asignatura por este blog!