miércoles, 23 de octubre de 2019

Metodologías Agile Telefónica

La historia del manifiesto ágil

Durante el año 2001 un grupo de programadores cansados y agotados de caer siempre en los mismos errores a la hora de desarrollar y programar software, firmaron y redactaron un texto conocido como El Manifiesto Ágil (o The Agile Manifesto en inglés).

Este texto revolucionario para la época explicaba una nueva metodología para el desarrollo del software.

El Manifiesto Ágil proponía “locuras” para ese momento, como no documentar el 100% del proyecto antes de desarrollarlo.

En lugar de documentarlo todo al inicio y esperar a que el software estuviera 100% desarrollado para entregárselo al cliente (con todas las sorpresas que el cliente se llevaba), el manifiesto defendía una nueva forma de programar por trocitos.

El desarrollo del software se dividía en trocitos funcionales de por sí. Estos trocitos se iban entregando al cliente o al destinatario final, se probaban para comprobar que resolvían un problema concreto, y se recibía feedback.

De esta manera los programadores se aseguraban que el software estaba tomando el rumbo adecuado y que el producto digital final resolvía los problemas del cliente. Y si algo no funcionaba como debería, pues había tiempo para corregirlo, ya que solo había que corregir ese cachito, y no la totalidad del software.

Este sistema revolucionó el mundo del desarrollo. Aplicando las reglas del manifiesto ágil surgieron nuevas metodologías de trabajo como el Scrum, que a día de hoy se han convertido en un estándar en el sector de la programación.

En el cambiante mundo del desarrollo de software, los requisitos aplicados a un proyecto parecen incrementarse en el tiempo, mientras se reduce el plazo que se asigna para cada trabajo.

Parecería que todo se pusiese en contra de los desarrolladores, excepto por el hecho de que ya hay alguien que se preocupa por ellos, encontrándose con joyas como la metodología Agile y su framework de procesos Scrum .

El software de desarrollo Agile se refiere a un grupo de metodologías aplicadas en la creación de software que basa su desarrollo en un ciclo iterativo , en el que las necesidades y soluciones evolucionan a través de la colaboración entre los diferentes equipos involucrados en el proyecto.

Los métodos Agile por norma general promueven una gestión de proyectos disciplinada que fomenta la constante inspección del código y la adaptación de éste, un sistema organizado que permite y facilita el trabajo en equipo, la auto-organización y favorece el rendimiento del tiempo de desarrollo.

Además fijan un conjunto que comprende las mejores prácticas de desarrollo para optimizar los tiempos de entrega del software . Así siempre se cuenta con la máxima calidad en el producto final, ya que desde el primer momento el equipo de programadores cuenta con un punto de vista de negocio en consonancia con las necesidades del cliente y los objetivos impuestos a la empresa.

El desarrollo con metodologías Agile se refiere a cualquier proceso de desarrollo que está en consonancia con el manifiesto Agile , que establecieron un grupo de catorce figuras de la industria de la creación de software acerca de lo que hay que hacer y lo que no durante el desarrollo de un proyecto.

Destacando sobre cualquier otro framework que utilice esta metodología para trabajar, se encuentra Scrum, un framework de procesos de Agile ultraliviano de uso muy extendido que otorga un conjunto de herramientas y funcionalidades al desarrollador o equipo de éstos, muy versátil y funcional en cualquier tipo de proyecto.

¿Y qué es un framework de procesos?

Pues no es más que un conjunto de prácticas concretas que se deben seguir para que un proceso sea coherente dentro de un marco en particular. Por ejemplo, Scrum requerirá el uso de ciclos de desarrollo (llamados Sprints) mientras que otros como XP contarían con sus propias “reglas” a seguir.

La etiqueta de “ultraliviano” o ligero se debe a que la cabecera del proceso se mantiene lo más pequeña posible para asegurar que los recursos y el tiempo se emplean en el desarrollo de la aplicación en sí, maximizando la producción.

Un proceso Scrum podría distinguirse de otros procesos Agile por las prácticas que sigue y emplea, así como por los conceptos usados . Conceptos como los diferentes roles que se asignan en el desarrollo del proyecto, etiquetas de tiempo, etc…

Por algo es la utilidad más usada en el mundo del desarrollo para administrar software complejo así como para desarrollar infinidad de productos, haciendo uso de prácticas iterativas e incrementales. Scrum aumenta significativamente la productividad y reduce el tiempo relativo de desarrollo de los clásicos modelos de desarrollo “en cascada”.

El proceso o metodología Scrum permite a las organizaciones o empresas adaptarse sin problemas a los cambiantes requisitos de respuesta y productividad en tiempo , facilitando así la creación de un producto que cumple con los objetivos que se solicitan en un plazo mucho menor y con una depuración de código mayor.

¿Cómo aplicamos estas técnicas de Agile Learning en la empresa?
Lo primero que necesitamos es un cambio de metodología por parte de la empresa. Para esta parte vamos a repasar en la parte final de la guía una serie de herramientas.

Lo segundo que vamos a necesitar es un cambio de mentalidad por parte del empleado. Si creéis que el primer requisito es complicado, el segundo puede serlo más. ¿Por qué qué ocurre si nuestros empleados no aceptan las nuevas metodologías? Pues que el cambio al agile learning en la empresa no servirá de nada.

Para solucionar este posible problema tenemos dos soluciones:

Trabajar mucho la comunicación para que vean que los empleados también van a beneficiarse del nuevo sistema. Puedes echarle un vistazo a la guía “como hacer que mis empleados se tomen en serio la formación”, o “ventajas de digitalizar la formación” para sacar ideas. Pero este plan de comunicación puede marcar la diferencia entre una buena acogida, o una acogida desastrosa en la nueva forma de formarse.

Utilizar la gamificación en la empresa. La gamificación consiste en aplicar elementos de juego en ámbitos que no son juegos, como la formación y la empresa. Esta es un forma fantástica de aumentar el interés de los empleados por una nueva metodología. Aquí podéis aprender más sobre cómo utilizar la gamificación para involucrar el empleado en la transformación digital y aquí tenéis una guía completa de las ventajas de la gamificación en la formación.

Todas las herramientas que veremos en la sección de herramientas de agile learning en la empresa incluyen elementos de gamificación. De esta forma involucramos más al usuario al aumentar su interés. Además se utilizan los juegos para aumentar la retención del conocimiento de las formaciones.

El primer problema que resuelve Agile Learning en la empresa: La falta de inmediatez a la hora de formar.

enlace 1
enlace 2
enlace 3

Metodologías ágiles para la gestión de proyectos

Podemos definir las metodologías ágiles como un conjunto tareas y procedimientos dirigidos a la gestión de proyectos. Son aquellos métodos de desarrollo en los cuales tanto las necesidades como las soluciones a estas evolucionan con el pasar del tiempo, a través del trabajo en equipo de grupos multidisciplinarios que se caracterizan por tener las siguientes cualidades:

    Desarrollo evolutivo y flexible.
    Autonomía de los equipos.
    Planificación.
    Comunicación.

Existen diferentes opciones ágiles entre las cuales podemos destacar las siguientes: Scrum, programación extrema (XP) y Kanban, siendo estas tres (03) las alternativas más utilizadas. Es importante mencionar, que todas las metodologías ágiles cumplen con el Manifiesto ágil, el cual se encuentra compuesto por doce (12) principios agrupado en cuatro (04) valores fundamentales:

    Individuos e interacciones sobre procesos y herramientas.
    Software funcionando sobre documentación extensiva.
    Colaboración con el cliente sobre negociación contractual.
    Respuesta ante el cambio sobre seguir un plan.

***

¿QUIÉN CONFORMA EL EQUIPO SCRUM?

En los Equipos Scrum, se cuenta con roles específicos y cada uno de ellos es imprescindible para que se lleve a cabo el proceso de forma satisfactoria:

    Stakeholder: Es el cliente, su responsabilidad radica en definir los requerimientos (Product Backlog), recibir el producto al final de cada iteración y proporcionar el feedback correspondiente.

    Product Owner: Es el intermediario de la comunicación entre el cliente (stakeholder) y el equipo de desarrollo. Este debe priorizar los requerimientos según sean las necesidades de la solicitud.

    Scrum Master: Actúa como facilitador ante todo el equipo de desarrollo, elimina todos aquellos impedimentos que identifique durante el proceso, así mismo se encarga de que el equipo siga los valores y los principios ágiles, las reglas y los procesos de Scrum, incentivando al grupo de trabajo.

    Scrum Team (Equipo de desarrollo): Se encarga de desarrollar los casos de uso definidos en el Product Backlog, es un equipo auto gestionado lo que quiere decir que no existe un de jefe de equipo, motivo por el cual todos los miembros se deben de encargar de realizar las estimaciones y en base a la velocidad obtenida en las iteraciones irán construyendo el Sprint Backlog.

****

O nos adoptamos a los cambios o no sobrevivimos
Carmen Lasa Gómez, experta en metodologías Agile en Telefónica, nos explica en este vídeo:

Qué es y qué no es agile
Los pilares en los que se basa
Sus valores y principios
Qué implica esta metodologia
Y como es válida para cualquier empresa, incluidas las Administraciones públicas



https://www.youtube.com/watch?v=xoTrctmlwTs

No hay comentarios:

Publicar un comentario