domingo, 15 de noviembre de 2020

 

¿Qué es SCRUM?

Es una metodología ágil y flexible para gestionar el desarrollo de software, cuyo principal objetivo es maximizar el retorno de la inversión para su empresa. Se basa en construir primero la funcionalidad de mayor valor para el cliente y en los principios de inspección continua, adaptación, auto-gestión e innovación.

Se trata de un cronograma de las actividades de un proyecto a realizar, el cual es dividido en secciones. Su principal objetivo es rectificar que cada una de las fases anteriores del proyecto esté realizadas correctamente.

Todos los proyectos que estén desarrollados mediante una metodología ágil pueden aplicar Scrum.

 

Entre los primeros pasos de Scrum, tenemos 6 procesos:

1.    Crear la visión del proyecto

2.    Identificar a los Master Scrum o

3.    Scrum Master y a los stakeholders.

4.    Formar equipos Scrum

5.    Desarrollar épicas

6.    Crear backlogs o listas de requerimientos priorizando el producto

7.    Planificar el lanzamiento


¿Cuándo se utiliza?

Con la metodología SCRUM el cliente se entusiasma y se compromete con el proyecto dado que lo ve crecer iteración a iteración. Asimismo le permite en cualquier momento realinear el software con los objetivos de negocio de su empresa, ya que puede introducir cambios funcionales o de prioridad en el inicio de cada nueva iteración sin ningún problema.
Esta metódica de trabajo promueve la innovación, motivación y compromiso del equipo que forma parte del proyecto, por lo que los profesionales encuentran un ámbito propicio para desarrollar sus capacidades. 

 

Historia sobre SCRUM

Este término fue definido en los años 80 por Ikujiro Nonaka e Hirotaka Takeuchi, el cual fue inspirado mediante una formación que utiliza un equipo de rugb. Sin embargo, en 1993, Jeff Sutherland y su equipo en Easel Corporation adaptaron la metodología Scrum al desarrollo del software. Publicando así el Software Development Process.

Estos métodos están orientados ahora hacia objetos, así como también a un control de procesos empíricos, a una mejor continuidad de los procesos, así como otros aspectos más.

Actualmente se utiliza este proceso para el desarrollo de muchos procesos, los cuales tienen como un objetivo el garantizar un flujo de trabajo más optimizado.

Proceso del Scrum

Este proceso se desarrolla de forma iterativa, así como también de manera incremental. Cada una de las iteraciones es llamada Sprint:

·         La cual tiene una duración de 2 a 4 semanas.

El resultado de este periodo es una versión del software con nuevas acciones actualizadas.

·         En cada una de las Sprint se va ajustando su funcionalidad encima de la anterior.

Fases de Scrum:

·         Inicio: Esta primera fase se encarga de estudiar y analizar el proyecto en el cual trabajaremos, en el cual buscara sus necesidades básicas, También podemos definir un sprint como un pequeño proyecto con una duración no mayor a 1 mes.

 

·         Planeación y estimación: Esta segunda fase incluye las siguientes:

1.    Crear, estimar las historias del usuario

2.    Creación del itinerario de las tareas.

3.    Realizar la planificación y estimación del sprint

Esta fase es una de las importantes, ya que hace un estimado del tiempo de las entregas.

 

·         Implementación: esta fase nos ayuda y  nos acerca más a la implementación del mismo proyecto.

1.    Crear entregables

2.    Realizar un daily stand-up

3.    Refinanciamiento del blacklog priorizando nuestro producto:

-Crear entregables

-Mantenimiento del producto

 

·         Revisión y retrospectivas: Entre los pasos más importantes para realizar en esta fase tenemos:

1.    Demostrar y validar el sprint.

2.    Retrospectiva del sprint.

 

·         Lanzamiento: Con esto nos referimos al desenlace del proyecto y entrega del producto, donde deberías cumplir con 2 únicas tareas que son:

1.    Enviar entregables.

2.    Enviar retrospectiva del proyecto.

Etapas:

1.    Planificación del sprint: Si entendemos el significado del sprint como un mini proyecto dentro del proyecto principal, cada uno de ellos tiene un objetivo en particular.

 

2.    Scrum diario: Es un evento de 15 minutos, cuyo objetivo es que el equipo de desarrollo sincronice actividades, y cree un plan para las próximas 24 horas.

 

3.    Etapa de desarrollo: Cuando el trabajo del sprint está en curso, los encargados deben garantizar que no se generen cambios de último momento que puedan afectar los objetivos del mismo.

 

4.    Revisión del sprint: Al final del desarrollo del intervalo, es posible analizar y evaluar los resultados. Si es necesario, todo el equipo colaborará para saber qué aspectos necesitan ser cambiados.

 

5.    Retroalimentación: Los resultados pueden ser entregados para recibir un feedback no solo por parte de los profesionales dentro del proyecto, sino también de las personas que utilizarán directamente lo que se desea lograr.

 

Roles:

Scrum master: Es aquella persona que lidera el equipo, guiándolo hacia el cumplimiento de las reglas y de los procesos de la metodología.

 

Responsabilidades:

 

1.    Ayuda al equipo a tener más auto-organización.

2.    Ayuda al product Owner a entender la agilidad.

3.    Junto al equipo de desarrollo, actualiza el trabajo de proyecto.

4.    Da solución a los posibles impedimentos durante el sprint.

 

Scrum product Owner: Este representante esta relacionados con las ISO de accionistas y los clientes que usan el software.

 

Responsabilidades:

 

1.    Decide que construir y que no construir.

2.    Fija los criterios de aceptación para cada uno de los usuarios.

3.    Ordena y da priorización a cada uno de los ítems del Product Backlog

4.    Define el producto mínimo variable.

 

Scrum developer/Scrum team: Son un grupo de profesionales, los cuales cuenta con conocimientos técnicos generales para el desarrollo de del proyecto de una manera más justa.

 

Responsabilidades:

1.    Ayuda a la planificación del Scrum junto con el organizador.

2.    Participa en la organización del equipo de desarrollo.

3.    Prevé posibles soluciones a posibles problemas que se puedan presentar en un futuro.

4.    Ayuda n la implementación de mejoras en el Sprint el cual ya se lleva a cabo.

Hitos

El desarrollo iterativo se realiza en un sprint, que contiene los siguientes eventos:

1.    Product Backlogs: Son un conjunto de requisitos, los cuales nos ayudan a observar las inversiones productivas para tener un mayor beneficio del producto.

2.    Sprint Planning: Reunión durante la cual el Product Owner presenta las historias del backlogs por orden de prioridad. El equipo determina la cantidad de historias.

3.    Sprint: Iteración de duración prefijada durante la cual el equipo trabaja para convertir las historias del Product Backlogs a las que se ha comprometido, en una nueva versión del software totalmente operativo.

4.    Sprint Backlogs: Lista de las tareas necesarias para llevar a cabo las historias del sprint.

 

Herramientas

Una vez que tu organización ha empezado a usar Scrum para desarrollar sus productos, es normal que surja la necesidad de plantearse utilizar una herramienta digital para la gestión del producto backlogs y del flujo de trabajo.

Tener en cuenta que una herramienta puede introducir complejidades adicionales debido al exceso o la falta de características para nuestro producto, y que la mayoría de las conocidas en el mercado requieren de bastante tiempo de configuración y adaptación.

 

Las herramientas más usadas son:

·         Atlas Sian JIRA

se enfoca en ofrecer un stack completo de Product y Project Management, desde la gestión de Portfolio y Budgeting hasta integración continua, pasando por un wiki y un sistema de Help Desk. Lo mejor es la integración de la suite. Lo peor es el esfuerzo de configurarla y adaptarla. La versión cloud empieza desde 10$/mes por usuario.

·         VersionOne

A raíz de una fuerte colaboración con Scaled Agile Inc., VersionOne ha ido ganando popularidad durante los últimos años. Ofrece un stack similar al de Atlas Sian, quizás más enfocado en el framework SAFe, carece de herramientas de integración continua, aunque tiene integraciones muy interesantes. La version coludo para un equipo es gratuita. Para 20 personas es 175$/mes

·         CA Agile Solutions

Anteriormente conocida como Rally, fue la herramienta de referencia para corporaciones durante muchos años. Al igual que JIRA, se integra con la suite de soluciones de CA. El precio es gratuito durante los primeros días.

 

Referencias 

Grau, J. L. (08 de 07 de 2018). proagilist. Obtenido de proagilist: https://proagilist.es/blog/agilidad-y-gestion-agil/agile-scrum/la-metodologia-xp/#:~:text=La%20Metodolog%C3%ADa%20Xp%3A%20El%20Ciclo%20de%20vida,-Al%20igual%20que&text=Entender%20lo%20que%20el%20cliente,Fase%20de%20puesta%20en%20producci%C3%B3n

Honduras Digital Challenge. (21 de 05 de 2020). Obtenido de Honduras Digital Challenge: https://hondurasdigitalchallenge.com/2020/05/21/metodologia-scrum-una-herramienta-util-para-agilizar-tus-proyectos/

Isw. (06 de 09 de 2015). Obtenido de Isw: https://iswugaps2crystal.wordpress.com/2015/09/06/crystal/

Palacions, J. (s.f.). Scrum. Obtenido de Scrum: https://jeronimopalacios.com/scrum-practica/10-herramientas-una-gestion-agil-producto-scrum-kanban/

 


lunes, 31 de agosto de 2020

Comprende el entorno entre Metodologías Ágiles y Clásicas

 Metodologías ágiles para el desarrollo de software 

 

Es un grupo de prácticas para la gestión y desarrollo de proyectos.

Principalmente, es necesario organizar las ideas que han surgido. A partir de este punto, el proceso de producción no se continuará de forma lineal, como suelen hacerse, moviéndose desde el diseño hasta tener el proyecto terminado. Todas las ideas y resultado, vuelven nuevamente al diseño del proyecto para ayudarlo a crecer.










·   Proceso ágil: Envuelve un enfoque para la toma de decisiones en los proyectos de software, que se utiliza los métodos de ingeniería del software basados en el desarrollo iterativo e incremental, donde los requisitos y soluciones evolucionan con el tiempo según la necesidad del proyecto.

·         Agilidad: es una palabra mágica con la que mejor se describe un proceso de software actualmente. Que posee la capacidad para dar respuesta apropiadas a los cambios que se presentan constantemente. Cuando de programación se trata, así como de procesos de negocios, el cambio es una condición.



f

·         Valores y políticas del desarrollo ágil: se dividen en 4 elementos para la gestión de proyectos:

Ø  Los individuos y su interacción: están por encima de los procesos y las herramientas. Son lo más importante en un proyecto.

Ø  Un software funcional: debe emplearse antes que cualquier otro método de documentación exhaustiva.

Ø  La colaboración con el cliente: Importa más que una relación contractual de cualquier tipo. Es decir, tiene más peso el diálogo y lo que se decida durante el proceso en sí mismo que lo pactado de antemano.

Ø  La respuesta al cambio: Estará por encima del seguimiento de un plan. Importa más la manera como se reacciona ante una circunstancia o fallo que el propio seguimiento de las acciones

Estos 4 principios buscan la manera de minimizar el impacto de tareas que no tiene un peso decisivo en los proyectos y focalizar las que sí lo tienen hacia los objetivos generales.

Varias políticas han sido utilizadas en consultorías que permiten la organización del modelo de desarrollo de software tradicional en el cual se realiza un levantamiento de información que dura de 3 o 2 meses para el desarrollo.

·         Lineamientos generales:

1.    El proyecto debería ser ejecutado en iteraciones incrementales.

2.    El proyecto se ejecutará en iteraciones incrementales con una duración fija de 1 semana.

3.    Los requerimientos se desarrollarán priorizando el valor del cliente.

4.    El control y seguimiento del proyecto se basará en los requisitos completados en cada iteración.

5.    Cada requisito debe ser independiente del resto de los requisitos en la medida de los posible.

6.    Cada requisito debe ser demostrable.

7.    El requisito debe ser de una grada de esfuerzo para ser completado semejante al del resto de requisitos de manera que la organización y el cliente puedan realizar.



·         La valoración de individuos y las interacciones del equipo de desarrollo, procesos y herramientas:

Llegan a tener más importancia los individuos y su interacción que los procesos y las herramientas. Este es el principio más importante de todos, las herramientas son de ayuda para mejorar la eficiencia, pero los trabajos que requieren conocimiento implícito sin personas con conocimiento técnico y la actitud adecuada no producen resultados.

Debido a esto con base de que los proceso existen en las organizaciones, independientemente de si están o no formalizados, de si son simples o complejos o de si son prescriptivos o empíricos. Al buscar una solución a un problema de negocio, por supuesto que se debe seguir un proceso que va transformando una entrada en salidas, mediante una seria de operaciones de negocio que tienen sentido y que se relacionan entre sí.  

Herramientas ágiles en el campo del software:

Ø  SCRUM: Se trata de un marco de trabajo provisto de herramientas y roles que permiten visualizar el progreso y los resultados de un proyecto.

Ø  KANBAN: La idea esencial de esta herramienta consiste en que las acciones que componen un proyecto sólo pueden empezar cuando el bloque inmediatamente anterior ha sido terminado. Siempre se empieza con algo nuevo.

Ø  XP: Es la más “humana” de las herramientas. Promueve dinámicas adecuadas de trabajo en equipo y se preocupa por el aprendizaje continuo y el clima laboral.

 

·         Los principios:

Durante la época de la reingeniería las empresas tipo consultaras gritaron a los cuatro vientos que gracias a la organización y los procesos se podían conseguir grandes resultados con personas mediocres. Este principio es altamente peligroso sobre todo cuando el trabajo en si necesitaba de grande dosis de creatividad e innovación. Pero lo más importante un software funcionando que una documentación exhaustiva. Esto que pese a parecer algo obvio, no lo es tanto una vez se lleva a la realidad. Es más importante un software funcionando que una documentación exhaustiva. Esto que pese a parecer algo obvio, no lo es tanto una vez se lleva a la realidad.

 

·         Características que diferencian un proceso ágil de un tradicional

La metodología ágil: se trabaja con entregas incrementales e integraciones continúas estableciendo un proceso sobre básicos, en ágiles podremos reencaminar el proyecto rápidamente cuando las cosas no estén funcionando como teóricamente estaba previsto en el inicio del proyecto.

La metodología tradicional: priorizamos en base a la visión propia de la dirección del proyecto y no siempre en base a la visión del negocio.

La diferencia es: Mientras que en las metodologías ágiles priorizamos más en base a las necesidades de cliente del proyecto en cada momento, en las metodologías tradiciones son más enfocadas a la visión de uno mismo.

Referencias

develapps. (24 de 01 de 2018). Obtenido de develapps: http://www.develapps.com/es/noticias/metodologias-agiles-en-el-desarrollo-de-software

Gomez, K. (24 de 08 de 2017). megapractical. Obtenido de megapractical: https://www.megapractical.com/blog-de-arquitectura-soa-y-desarrollo-de-software/como-usar-la-agilidad-en-el-desarrollo-de-software

López, G. (02 de 01 de 2018). IMF. Obtenido de IMF: https://blogs.imf-formacion.com/blog/tecnologia/metodologias-agiles-de-desarrollo-201801/

OBS. (s.f.). Obtenido de OBS: https://obsbusiness.school/int/blog-project-management/metodologia-agile/cuales-son-los-valores-de-la-metodologia-agile

Palacio, C. A. (14 de 05 de 2017). Academia progma. Obtenido de Academia progma: https://www.pragma.com.co/blog/valorar-a-los-individuos-y-a-su-interaccion-mas-que-a-los-procesos-y-a-las-herramientas

Sanz, R. (s.f.). MDAP. Obtenido de MDAP: https://uv-mdap.com/programa-desarrollado/bloque-iv-metodologias-agiles/metodologias-agiles-vs-tradicionales/#:~:text=En%20la%20metodolog%C3%ADa%20tradicional%3A%20priorizamos,del%20proyecto%20en%20cada%20momento.