lunes, 3 de abril de 2017

Metodología de Scrum


Universidad Nacional del Nordeste
Facultad de Ciencias Exactas y Naturales y Agrimensura
Licenciatura en Sistemas de Información


Nombre de metodología: Scrum (1995)

En Scrum, un proyecto se planifica en bloques temporales cortas y fijas (iteraciones de un mes natural y hasta de dos semanas).

Las iteraciones se pueden entender como mini proyectos: en todas las iteraciones se repite un proceso de trabajo similar para proporcionar un resultado completo sobre el producto en el que se está trabajando (no es final), de manera que el cliente pueda obtener los beneficios del proyecto de forma incremental.

Para ello, cada requisito se debe completar en una única iteración: el equipo debe realizar todas las tareas necesarias para completarlo (incluyendo pruebas y documentación) y que esté preparado para ser entregado. De esta manera no se deja para el final del proyecto ninguna actividad arriesgada relacionada con la entrega de requisitos.

En cada iteración el equipo evoluciona el producto (hace una entrega incremental) a partir de los resultados completados en las iteraciones anteriores, añadiendo nuevos objetivos/requisitos o mejorando los que ya fueron completados. Un aspecto fundamental es la priorización de los objetivos/requisitos en función del valor que aportan al cliente.

Creadores: Ken Schwaber y Jeff Sutherland.

Las patas esenciales a cubrir son las de diseño en el cual el Scrum master y el Dueño del Producto generan una lista de producto priorizando la creación y terminación de algunos sobre otros. Y desarrollo en el cual el Scrum Team (o development team) toma productos de la lista de productos y se encarga de, finalizado un sprint, entregar un producto terminado y apto para su producción.

Es una Metodología iterativa e incremental.
 
La metodología de desarrollo Scrum tiene como objetivo crear un marco de trabajo en el que todos sus integrantes puedan interrelacionarse, alcanzar objetivos y así poder realizar un producto terminado al finalizar cada iteración.

Etapas durante la metodologia:
Product Backlog: Es una “Lista de Deseos” sobre las funcionalidades del producto. Es elaborado por el Dueño del Producto (Product Owner) y las funciones están priorizadas según lo que es más y menos importante para el negocio. El objetivo es que el Dueño del producto responda la pregunta “¿Qué hay que hacer?”.  
  • Sprint Backlog: Es un subconjunto de ítems del Product Backlog, que son seleccionados por el equipo para realizar durante el Sprint sobre el que se va a trabajar. El equipo establece la duración de cada Sprint.

  • Sprint Planning Meeting: Esta reunión se hace al comienzo de cada Sprint y se define cómo se va a enfocar el proyecto que viene del Product Backlog las etapas y los plazos. Cada Sprint está compuesto por diferentes características. Por ejemplo, decidimos que las características del primer Sprint son: diseño del logo, definición colores y contenido multimedia.
  • Daily Scrum o Stand-up Meeting: Es una reunión breve que se realiza a diario mientras dura el periodo de Sprint. Se responden individualmente tres preguntas: ¿Qué hice ayer?, ¿Qué voy a hacer hoy?, ¿Qué ayuda necesitas? El Scrum Master debe tratar de solucionar los problemas u obstáculos que se presenten.
  • Sprint Review: Se revisa el sprint terminado, y ya debería haber un avance claro y tangible para presentarlo al cliente.
  • Sprint Retrospective: El equipo revisa los objetivos cumplidos del Sprint terminado. Se anota lo bueno y lo malo, para no volver a repetir los errores. Esta etapa sirve para implementar mejoras desde el punto de vista del proceso del desarrollo.

Los integrantes de un equipo Scrum consta de 3 partes elementales:
  • Product Owner: Es en quien recae la responsabilidad del proyecto ya sea ante la empresa en la cual trabaja o ante un comité, no es necesariamente el propietario del producto. También se encarga de la ingeniería de los requerimientos y los productos a trabajar, por el equipo de desarrollo, en la “lista de productos”.
  • Scrum Máster: dado que la metodología Scrum es empírica, es decir, se basa en la experiencia y conocimiento, el Scrum Master es la persona con el conocimiento y la experiencia suficiente para dirigir al equipo de desarrollo en la iteración de un sprint.
  • El equipo de desarrollo (development team): representa la parte operativa del Scrum Team. Esta parte es autoorganizada, que quiere decir que son capaces de convertir los requerimiento de los productos, en productos terminados y

Ventajas:
  • Se obtiene resultados de forma rápida cumpliendo los requisitos más importantes.
  • Se trabaja en iteraciones cortas, de alto enfoque y total transparencia.
  • Se acepta que el cambio es una constante universal y se adapta el desarrollo para integrar los cambios que son importantes.
  • Se incentiva la creatividad de los desarrolladores haciendo que el equipo sea autoadministrado.
  • Se mantiene la efectividad del equipo habilitando y protegiendo un entorno libre de interrupciones e interferencias.
  • Permite producir software de una forma consistente, sostenida y competitiva.
  • Las reuniones se dedican a inconvenientes recientes, evitando el estancamiento

Desventajas:
  • Si no existe una fecha definitiva de finalización del proyecto es posible que se siga solicitando, y añadiendo, nueva funcionalidad.
  • Si una tarea no está bien definida, los costes de tiempo y dinero estimados del proyecto no serán demasiado exactos. En ese caso, la tarea se puede extender sobre varios sprints.
  • Si los miembros del equipo no están centrados y convencidos, el proyecto nunca se completara o incluso fallará.
  • Esta metodología necesita solo miembros de equipo experimentados. Si el equipo no está capacitado, el proyecto no puede ser completado a tiempo.
  • Además de los recursos sin suficiente experiencia , la falta de dirección firme pueden llevar a los proyectos a no completarse o incluso fallar.
  • La metodología Scrum funciona bien cuando el scrum master confía en el equipo que lleva. Si se practican controles muy estrictos sobre los miembros del equipo, puede ser extremadamente frustrante para ellos, llevando a la desmoralización y el fallo del proyecto.
  • Si algunos de los miembros del equipo se marcha durante el desarrollo puede tener un efecto negativo enorme en el desarrollo del proyecto.
  • El control de la calidad del proyecto es difícil de implementar y cuantificar a menos que el equipo de test puedan llevar a cabo testeo de regresión después de cada sprint.


  • ScrumDo: Aplicación Online que permite la creación y organización mediante metodologia Scrum, se destaca por el uso de muchas herramientas gráficas y su uso específico de la metodología scrum. El software es Trial, permitiendo probar durante 30 días, es necesario registrarse, y una vez acabado la licencia se deberán pagar mensualidades habiendo una licencia “Standar” y una “Premium”que permite interconectarse con otros servicios.Su peor punto es el limitar la cantidad de proyectos a 1.
  • Orange Scrum: Aplicación online que permite crear una lista de tareas de manera de notificar a un equipo de trabajo el progreso del desarrollo, este se diferencia por permitir la creación de una página de libre acceso(sin necesidad de modificación) que pueden ver hasta 20 personas, la aplicación permite salirse de la metodología scrum.El software es un trial, permitiendo probar durante 30 días, una vez cumplido el plazo se deberá optar por una licencia mensual, permitiendo más almacenamiento y mayor cantidad de posibles usuarios.
  • Scrum Wise: Aplicación online que permite crear tareas y organizarlas en “Sprints”... si bien estas no sirven para planificar dado que no se permiten hacer lineas de tiempo, si permite mantener informado a tu equipo sobre las actividades a realizar, este software se distingue por su capacidad de ser usado sin necesidad de registrarse, sin embargo esto si es necesario para preservar los dato hacerlo.El software es un trial de 30 días, su punto más fuerte es ser el más barato.

Ejemplo práctico:


El Cliente comunica al Product Owner sobre el proyecto deseado, en este caso el diseño de un sitio web de compra / venta de bienes. el Product Owner divide el trabajo en Sprints (Interfaz del usuario, base de datos, sistema de compras) e informa al Scrum manager, para que con su equipo estimen costos y esfuerzo.

 Una vez aceptado el presupuesto, se ordenan los sprints según la importancia del cliente, y se los dividen en sub tareas para su elaboración. Si la prioridad del cliente es la interfaz del usuario, se lo dividen en tareas como “Codificación del sitio” y “Diseño Visual”, y en orden, estas se van completando hasta cumplir la historia deseada. Durante la elaboración de tareas, diariamente se realizan unas reuniones de 15 minutos donde se habla sobre el trabajo realizado, si tuvieron complicaciones o quieren aportar datos. Una vez finalizado el sprint, el Product Owner se contacta con el cliente para mostrar el resultado del sprint realizado y poder avanzar con los demás sprints.
1.png
Ver imagen mas grande
Ejemplo realizado a través de orangescrum

Hay muchas empresas en el mercado que usan Metodología Scrum, principalmente en el ámbito universitario o automobilistico, los casos que se destacan son:

Igualmente Scrum es una de las metodologías más usadas al dia de hoy. Se estima que alrededor del  70% de las IT lo practican.Este es el recopilado de Google de todas las empresas que usan abiertamente Scrum: https://docs.google.com/spreadsheets/d/1fm15YSM7yzHl6IKtWZOMJ5vHW96teHtCwTE_ZY7dP7w/edit#gid=5

Conclusion:
Para resumir, los miembros del Equipo de Scrum (el Dueño del Producto, el Equipo de Desarrollo, y el ScrumMaster) colaboran para crear una serie de Incrementos del Producto, durante intervalos cortos de duración fija, llamados Sprints. Cada incremento cumple con el criterio de aceptación del Dueño del Producto y con la Definición de Terminado compartida por el equipo.Se auto-gestionan para realizar el Desarrollo, usando la reunión de Scrum Diario para producir el mejor Incremento de Producto posible.

Al final de cada Sprint, el Equipo de Scrum se junta para la Retrospectiva. El propósito es revisar cómo fueron las cosas con respecto al proceso, a las relaciones entre las personas, y a las herramientas. El equipo identifica lo que salió bien y lo que no salió tan bien, e identificar mejoras posibles.

Actualmente es una de las metodologías más usadas del mercado, especialmente dentro de las IT llegando al 70%, y se destaca por permitir afrontar retos difíciles, al punto que muchas empresas (como Vodafone) tuvieron que usarla para sobrevivir a su crecimiento,mediante el uso del principio "Divide y vencerás".

Bibliografía:
Pagina Web de Scrum.1/4/17.Disponible en www.scrum.org
Agile Web Operations. 3/4/17. Disponible en http://www.agileweboperations.com/big-companies-using-scrum


Proyectos Agiles. 3/4/17. Disponible en proyectosagiles.org

lunes, 20 de marzo de 2017

Sobre Nosotros...

Somos un grupo de estudiantes de la Facultad de Ciencias Exactas y Naturales y Agrimensura, unidos bajo la consigna de formar un grupo para la realización de los trabajos prácticos relacionados con la Ingeniería de Software.

Atraves de este blog buscamos aprender sobre Ingeniería de Software y difundir información que le podría ser útil tanto a entendidos en la materia, como a idóneos curiosos.

Todos somos apasionados por la tecnología, estudiantes de la carrera de Licenciatura en Sistemas de la Información, nuestras edades rondan los 22, programadores e interesados desarrollo de software.

Ojala lo que encuentren en el blog les sea útil o interesante, desde ya, gracias por leer.

Firman:
  • Espindola Maximiliano
  • Ignacio Joaquín Cáceres Sorg
  • Jose Luis Cunha
  • Juan Martín Escobar
  • Martín Andrés Contreras