Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El...

18
Una Guía para Integrarle a tu Empresa Metodología Ágil.

Transcript of Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El...

Page 1: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Una Guía para Integrarle a tu Empresa

Metodología Ágil.

Page 2: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

03 Metodología Ágil. Una Guía para Integrarle a tu Empresa04 Roles06 Artefactos06 Pila de Producto07 Pila del Sprint07 Incremento08 Flujo de Trabajo09 Ejemplo Práctico (Ficticio)11 Ejemplo de Pila del Producto13 Ejemplo de Pila del Sprint15 Metodologías Ágiles en entornos remotos de desarrollo15 Herramientas18 Conclusión

Índice

Page 3: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Metodología Ágil. Una Guía para Integrarle a tu EmpresaEl desarrollo de software ha experimentado cambios drásticos a lo largo de su corto tiempo de existencia debido, en parte, a las dificultades de diseño que produce una aplicación, sea para móviles, equipos personales, servidores, entre otros.

Por mucho tiempo se usó el desarrollo en cascada, que no es más que un proceso riguroso para la creación de software, el cual debe seguir una serie de procedimientos estrictos que conllevan a diversos problemas ocasionados por el constante cambio de requerimientos y procesos que genera esta área de profesionalización.

Para el año 2001, un grupo de especialistas se reunieron con el fin de crear una metodología que tuviese la capacidad de adaptarse a los diversos cambios de este proceso. Así nació el Manifiesto Ágil, que se basa en cuatro postulados que intentaban dar un giro a todo el proceso antes definido.

A partir de ese momento han surgido diversas plataformas orientadas a la Metodología Ágil, mientras que otras se han adaptado a los nuevos tiempos, integrándose con la Metodología Ágil de una forma casi armoniosa, tal es el caso de Scrum.

3

Page 4: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Aunque ya existía desde mucho antes del Manifiesto Ágil, ha sufrido algunos cambios que han beneficiado al desarrollo de software como industria. ¿Vos ya conocías ésta metodología?

Bien, el Scrum consiste en una serie de ciclos de tiempo definidos como iteraciones o sprints de dos a cuatro semanas (lo más corto posible), que deben cumplir con metas significativas produciendo resultados robustos.

RolesA continuación detallamos a vos los diferentes roles que se integran en el proceso de Scrum de manera efectiva, procurando obtener los resultados deseados flexibilizando aquellos tiempos, medidas y resultados necesarios para obtener un producto final acorde con lo deseado.

4

Page 5: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Stakeholders o Clientes finales: Deben estar compuestos por usuarios finales del producto. Se encargan de supervisar cada versión final del software, atentos a que cumplan los objetivos deseados, así mismo, es necesario que provean el feedback necesario para poder guiar el desarrollo del producto a sus requerimientos finales.

Product Owner: Se encarga de verificar que los objetivos se cumplan de acuerdo a las necesidades del cliente final. Debe tener una visión clara del negocio, saber qué sectura se hace un tanto necesita para un producto completo según el sprint así lo requiera. Debe repartir los requisitos en diversas iteraciones y definir los tiempos necesarios de cumplimiento. Es el que representa a todas las personas interesadas en el producto final.

Scrum Master: Tiene la responsabilidad de mantener el proceso lo más ágil que sea posible, eliminando obstáculos y replanteando estrategias.

Equipo de desarrollo: Compuesto por grupos pequeños de 3 a 9 personas que cumplan diversos roles técnicos, como diseñadores, programadores, testers, analistas, etc.

No tiene la figura de líder, por que este proceso promueve una jerarquía horizontal, en su lugar ocupa la posición de coach o facilitador que promueve la comunicación entre todos los miembros del equipo y vela por el cumplimiento de objetivos a través de reuniones periódicas.

5

Page 6: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Son todas aquellas herramientas usadas para implementar Scrum de manera efectiva, entre estas podemos mencionar:

Artefactos

Pila de ProductoEs un documento que recopila la lista de características necesarias para el producto final, son priorizadas de acuerdo a su retorno de inversión más alto, es flexible, lo crea el Product Owner con participación de todos los stakeholders detallando costos, beneficios y tiempos estimados de entrega para cada recurso.

6

Page 7: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Al igual que el documento anterior, la Pila del Sprint es otra lista, que se origina de la Pila de Producto, con la diferencia que es creada y mantenida por el Scrum Master. También contiene estimados de tiempo flexibles, discutidos previamente por todo el equipo durante la reunión diaria del Sprint, la cual no debe durar más de 15 minutos.

Pila del Sprint

Es un documento que contiene todos los elementos completos de la Pila de Producto con un valor agregado compuesto por cada incremento de anteriores sprints.

Es importante conozcás la definición de completo en este contexto, es un término en el cual todos los miembros que componen los diferentes roles de Scrum han acordado como completo incluidos stakeholders, de esta manera se obtiene una clara percepción del estado en el cual se encuentra el proyecto final y cuando debe llevarse a cabo la próxima entrega del producto.

Es importante destacar que aunque es una lista flexible, por sus características se diferencia de una simple lista de tareas, sus principales atributos son los siguientes:

Cada entrada en la Pila de Producto agrega valor al producto final.

Se ordenan según su prioridad.

Todos los valores son estimados. Es flexible.

Incremento

7

Page 8: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Flujo de TrabajoEl desarrollo del software se debe dividir en una serie de iteraciones o sprints de dos a cuatro semanas con una meta fijada para cada uno hasta llegar al producto final, existen diversas herramientas que ayudan a la planificación en este sentido, como Trello, que usa la plataforma Kanban, aunque muchos deciden diferenciarla de Scrum es posible armonizar ambas estrategias a través de una planificación eficiente.

Kanban permite gestionar el desarrollo de una manera fluida, a través de un tablero donde se representa el flujo de trabajo por medio de listas, que contienen las tareas en forma de tarjetas que se mueven a medida que el trabajo va avanzando de etapas hasta su culminación.

UnKanban se basa en una serie de principios que lo justifican como herramienta útil en el proceso ágil de desarrollo de software, estos son:

Comenzar con lo conocido: Es necesario familiarizarse de manera estrecha con todo el proceso y trabajar con lo que tenemos a nuestra disposición.

Adaptarse al cambio: El equipo debe acordar llevar a cabo cambios pequeños, efectivos y sucesivos, deben ser flexibles y adaptables a las necesidades que van surgiendo en todo el proceso, desde su comienzo hasta el final.

8

Page 9: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Respetar todos los roles: Es necesario que cada miembro del equipo de Scrum en general sepa cuales son sus responsabilidades, el alcance y las limitaciones de su posición dentro de la estructura organizativa.

Promover el liderazgo en todos los niveles: Se debe delegar una cantidad importante de labores a todos los niveles del proceso. Cada rol en el proceso de Scrum debe tener claro cuales son sus responsabilidades y tener control suficiente para llevar a cabo el proceso necesario.

La empresa Quality Software ha recibido un pedido de parte de uno de sus clientes más importantes, Euro Mercado, para crear un software administrativo que les permita gestionar ventas, compras e inventario de acuerdo al flujo de trabajo particular del cliente.

Después de diversas reuniones entre el Product Owner de Quality Software y Euro Mercado (Stakeholder), Luis (Product Owner) ha decidido crear la Pila del Producto con una serie de características iniciales para el producto final.

Ejemplo Práctico (Ficticio)

9

Page 10: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

ID Historia Estimación (Días) Prioridad

3

1

2

5

Como un usuario autorizado necesito ver una lista de ventas efectuadas a

lo largo del tiempo.

Como un usuario autorizado necesito ver una lista de las compras hechas detalladas por proveedor y

materia prima.

Como un usuario autorizado necesito crear ventas que detallen los

productos a vender, precio, cantidad, impuestos y total

de venta.

Como un usuario autorizado necesito

obtener un reporte de inventario de productos

existentes con sus costos y precios de ventas finales,

incluyendo posibles descuentos a clientes

preferenciales.

8

7

6

4

1

2

3

4

10

Page 11: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Luego de crear la Pila del Producto, Luis usa el tablero de Trello para Euro Mercado, ahí puede ver una serie de listas definidas de la siguiente manera:

[Pre-producción] Sandbox [Pre-producción] Backlog [Pre-producción] Briefing [Producción] Development [Producción] Testing [Post-producción] Pre Release [Post-producción] Release [Post-producción] Feedback

Pre-ProducciónEn la etapa de Sandbox se definen las ideas o propuestas a ser convertidas en iteraciones, de esta lista, Luis llevó una serie de ideas a la reunión con el cliente, Euro Mercado. Luego en Backlog se identifican aquellas tareas prioritarias y se van dando atención a los que lo requieran, aquí Luis convierte cada uno de los elementos de la Pila del Producto en tarjetas con los detalles recopilados de la reunión con el cliente.

Finalmente la etapa de preproducción termina con Briefing donde Maria (Scrum Master), delinea los tiempos y se va dando la estructura final del sprint que comenzará a partir de la siguiente fase. Es en este momento donde se crea la Pila del Sprint. Debido a sus conocimientos técnicos sabe que debe dividir la tarea en varias tarjetas que permitan definir a quién corresponde cada asignación, así ellos pueden dar sus opiniones y tomar cada tarjeta en el momento oportuno para comenzar su desarrollo y el avance a la siguiente fase del Sprint.

Ejemplo de Pila del Producto

11

Page 12: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

ID Tarea Responsables Fecha comienzo Fecha Final Estado

2

3

4

5

Lista de Ventas (BackEnd)

Patricia

Patricia

Lista de Ventas (FrontEnd)

Miguel

Testing

Generación depermisos

Santiago

Sprint Inventario

01/01/2019

01/01/2019

09/01/2010

10/01/2010

08/01/2019

08/01/2019

10/01/2010

10/01/2010

En proceso

En proceso

En espera

En espera

Ejemplo de Pila del SprintProducciónEste ciclo suele ser más iterativo, un miembro del equipo de desarrollo escoge una tarjeta, lleva a cabo lo requerido y va desde la etapa de Development a Testing donde otro miembro del equipo, generalmente el tester escoge la tarjeta y es posible que regrese a Development las veces que sea necesarias hasta que se considere que el sprint ha cumplido con los objetivos deseados.

Siguiendo el ejemplo propuesto, Patricia (Programador Backend) toma su tarjeta correspondiente y empieza la creación de código necesario para la tarea asignada, código relacionado a los datos, como son almacenados, procesados y devueltos a la aplicación. Al mismo tiempo Miguel (Programador FrontEnd), toma su tarjeta y se encarga de modelar la interfaz y todo lo relacionado con la interacción directa con el usuario final.

12

Page 13: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Una vez Miguel y Patricia terminan el desarrollo de cada una de las tarjetas, ellos las mueven a la lista Testing, donde Santiago (QA) puede probar las implementaciones de ambos, revisa que todo esté de acuerdo al sprint, pero de pronto, nota dos detalles importantes, la lista de ventas no muestra los impuestos de cada venta, además que el botón para crear nuevas ventas es de color celeste, en lugar de turquesa. Así que devuelve ambas tarjetas a Development para que Miguel y Patricia arreglen los detalles pertinentes. .

Post ProducciónEsta fase envuelve toda la preparación para el lanzamiento de la versión del producto correspondiente al Sprint, el lanzamiento en sí y el análisis de los resultados. El pre release permite enviar el código a producción sin conocimiento de todos los clientes envueltos (stakeholder), solo unos pocos, de tal forma que permitan la retroactividad a través de un proceso de A/B Testing, asegurándose que todos entiendan el resultado final. En la etapa de Release se anuncia a todos los involucrados. Finalmente para la etapa de Feedback se toman todas las impresiones de los usuarios del sistema para ser incluidos en futuros Sprints.

13

Page 14: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

Para el versionado de producto se puede seguir la normativa Semver, que consiste en una definición de conceptos que permiten asignar un número de versión al producto, tal que identifique claramente cuál es la característica agregada. Se compone de tres números que se identifican como Mayor.Menor.Parche. El primer número define un cambio que rompe compatibilidad con versiones anteriores, el segundo número es para agregar funcionalidades al sistema y el último número identifica cambios importantes de seguridad.

Siguiendo el ejemplo que hemos venido manejado a vos, luego de varias iteraciones entre Development y Testing, Santiago decide que el producto cumple con lo requerido para la tarea: “Como un usuario autorizado necesito ver una lista de ventas efectuadas a lo largo del tiempo.”, así mueve esa tarjeta de Briefing a Pre Release, donde se llevarán a cabo los pasos finales que completarán ese sprint en particular y permitirán que el producto final avance de versión, de la 0.14.3 a la versión 0.15.0.

Gracias a los avances tecnológicos de los últimos tiempos y a la expansión de internet como medio de trabajo es posible que vos puedas llevar a cabo proyectos con personas trabajando a distancia, claro, los retos de comunicación son significativos, como diferentes zonas horarias (debido a que están ubicados en diferentes países), barreras culturales, diferentes idiomas (aunque el inglés sea casi un requisito para la libre comunicación), entre otros. Sin embargo, con las metodologías ágiles y las herramientas adecuadas podés producir resultados satisfactorios.

Metodologías Ágiles en entornos remotos de desarrollo

14

Page 15: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

HerramientasTrello: Es un software de planificación, al estilo Kanban, que permite a través de listas y tarjetas organizar todo el proceso de Scrum para un proyecto definido.

Slack: Es una aplicación de comunicación para equipos de trabajo, donde a través de texto y voz es posible mantener la comunicación entre canales y grupos organizados dentro de la empresa.

Slack ofrece salas de chat organizadas por temas, así como grupos privados y mensajes directos. Posee un cuadro de búsqueda que permite acceder a todo el contenido de la aplicación. Slack integra una gran cantidad de servicios a terceros y respalda las integraciones hechas por la comunidad. Las principales incorporaciones incluyen servicios tales como Google Drive, Dropbox, Heroku, Crashlytics, GitHub, Trello y Zendesk.

Toggl: Es un software que permite controlar los tiempos de las diferentes tareas planteadas en el sprint. Es posible saber con esta herramienta si se está logrando los tiempos estimados y si es posible volver a planificar o estirar los tiempos para lograr los resultados esperados.

15

Page 16: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

A través de una serie de reportes se pueden obtener listas de tareas con sus respectivos tiempos y determinar responsabilidades y dificultades dentro del proyecto.

Skype: Es una aplicación que se destaca por permitir llamadas a través de internet usando una tecnología denominada VoIP, Tiene la finalidad de conectar a los usuarios vía texto (mensajería instantánea), voz (VoIP) o vídeo. Una de sus fortalezas es permite la comunicación gratuita por voz y video entre usuarios de Skype desde y hacia cualquier punto del mundo. También permite realizar llamadas especiales, a muy bajo costo, entre computadoras y la red de telefonía fija o móvil.

Es posible usar Skype para conferencias y reuniones del equipo. Se pueden planificar reuniones periódicas de 15 minutos, donde todo el equipo repartido en diferentes lugares pueden aportar ideas u organizar el scrum para informar del estado de las tareas.

Github: Es una forja (plataforma de desarrollo colaborativo), que permite alojar el código fuente de proyectos de software usando un sistema de control de versiones llamado Git.

Permite a través de su interfaz, llevar un control de versión de todo el código, hacer revisiones del mismo, distribuir el código entre todos los miembros del equipo y garantizar la calidad y estabilidad del proyecto a corto y largo plazo.

Paypal: Debido a que muchas organizaciones remotas están compuestas por miembros de diferentes países, es necesario contar con un medio de pago universal y estable, Paypal ofrece este servicio de manera ágil y eficiente, usando el dólar como moneda de pago y sus acuerdos con instituciones bancarias a nivel internacional se garantiza el pago de los servicios de todo el equipo de desarrollo.

Bitcoin: Una alternativa a los medios de pago tradicionales es la famosa criptomoneda llamada Bitcoin. Pionera en su campo, Bitcoin permite el pago en una moneda de fácil convertibilidad, gracias a la gran cantidad de exchanges que existen a nivel mundial.

16

Page 17: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto

ConclusiónLas metodologías ágiles de desarrollo nos permiten entregar productos estables y robustos, con énfasis en la retroalimentación entre clientes y creadores. Es importante destacar que no son reglas estrictas, debido a que cada caso en particular tiene sus aristas que necesitan de procesos flexibles, adaptables y prácticos. Sin embargo es la metodología que está marcando la pauta en el desarrollo de software en general.

17

Page 18: Una Guía para Integrarle a tu EmpresaMetodología Ágil. Una Guía para Integrarle a tu Empresa El desarrollo de software ha experimentado cambios drásticos a lo largo de su corto