domingo 24 marzo 2019
Inicio Productividad ¿Qué son las metodologías ágiles? Conoce los tipos y las más usadas

¿Qué son las metodologías ágiles? Conoce los tipos y las más usadas

Ya seas un profesional dedicado a la construcción del software o un usuario interesado en conocer qué metodología se suele usar en proyectos de gran calibres de uso cotidiano como la app de Whatsapp o Facebook este artículo te será de gran interés.

Cuando se diseña y construye un software, detrás de ese gran trabajo, existe un equipo de personas y desarrolladores encargadas de realizar diferentes proyectos. Esto lleva a la necesidad de que una enorme cantidad de empresas necesitan hacer uso de ciertos procesos con el fin de controlar a todo ese equipo y que cada una de las personas que trabajan en dicho proyecto sepan realmente cuál es el cometido que tienen que hacer, por esto mismo es tan usadas las metodologías ágiles en el mercado del software.

Hoy podrás saber los conocimientos básicos acerca de las metodologías ágiles como: ¿qué es una metodología ágil? ¿En qué consiste realmente? ¿Cuáles son las metodologías de software ágiles más usadas? ¿Cuáles son las más conocidas?

La necesidad de crear una metodología ágil

Para comprender el concepto de metodología ágil lo ideal es conocer cómo antes del nacimiento de este tipo de metodología de desarrollo de software las distintas empresas y organizaciones trabajaban para gestionar y lanzar sus proyectos.

Las metodologías ágiles de software se crearon para cubrir ciertas carencias que otras metodologías más clásicas y antiguas no lograban conseguir produciendo un retraso en la entrega de sus productos software.

Antes del nacimiento de las metodologías ágiles se empleaban metodologías para la gestión clásica de proyectos en la cual se empleaban diversos factores como:

  • La planificación. Cualquier equipo de trabajo necesita organizarse y encajar en un tiempo determinado la realización de proyectos con el fin de que pudiera estar terminado en la fecha acordada para el cliente.
  • Usabilidad de ciertas herramientas para la gestión de un proyecto software. En las metodologías clásicas se usaban herramientas como el diagrama de Gantt, se elaboraban presupuestos, actas, registros en cuanto al tiempo que se le dedicará al proyecto así como con los gastos que costaría llevarlo a cabo. Y todo ello antes de que se entregara el software o aplicación al cliente. El cliente no obtenía resultados hasta que finalizara todos estos procedimientos.
  • El trabajo era muy procedimental. Esto conllevaba a una gran exhaustividad en cuanto a la documentación del proyecto dejando a veces de lado otros factores de gran importancia como la relación y comunicación con el cliente constantemente.

Estas características hacían que metodologías clásicas como el modelo en cascada se enfocaran demasiado en esos tramos predictivos y planificados. Generalizando, el mayor de los problemas era que el equipo de trabajo encargado de los proyectos tenía que conseguir un software que estuviera implementado y construido además de elaborar toda la planificación que, en la gran mayoría de las veces, no se conseguía cumplir y todo ello para que se pudiera presentar al cliente un producto funcional y finalizado tras haber completado toda y cada una de las etapas.

Si a todo ello le sumamos que debido al rápido avance tecnológico los productos software junto con los requisitos cambiaban constantemente, en muchísimos casos la vida útil del propio software suele ser corta pues se busca el impacto y la innovación en el mercado.

Por esto mismo se necesitaba hacer uso de alguna diferente metodología que estuviera prevista y se adaptara fácilmente a cambios constantes.

Las metodologías ágiles de software surgieron por esa misma necesidad. Se necesitaba ser ágil construyendo software que se pudiera entregar al cliente en un plazo breve y corto de tiempo pues una gran cantidad de software es útil sobre todo cuando se innova.

Ser pionero en el mercado es lo valioso y las metodologías clásicas de gestión de proyectos de software no ofrecían esto pero ¿qué se entiende por metodología ágil? ¿Porqué esta metodología se usa en un tremendo elevado porcentaje en las empresas actualmente? ¿Qué significa que sea ágil?

¿Qué es una metodología ágil?

Una metodología es un conjunto de procedimientos y métodos usados para lograr un objetivo estableciendo aquellas tareas que se deben realizar usando los conocimientos adecuados de aplicación para conseguir dicha meta.

A este concepto de metodología se le acuña el término de ágil (agile) entiendiéndose como todo aquello que se realiza con rapidez o prontitud.

Si unificamos ambos conceptos podríamos entender que una metodología ágil es el conjunto de aquellos procedimientos que ayudan a la consecución de un objetivo (software) de manera rápida en la que el cliente obtendrá en cada entrega un producto funcional.

Este concepto se puede entender por la unión de los dos significados pero en este caso concreto aplicado a un producto software. Incluso podría darte una definición más formal que con ayuda de su explicación detallada podrás comprender aún mejor dicho concepto de metodología ágil:

Una metodología ágil -agile methodology- es todo aquel conjunto de prácticas respaldadas bajo las 4 premisas dictadas en el manifiesto agile para el desarrollo de software ágil y los 12 principios en los que se rige dicha metodología.

Esta metodología de trabajo conocida como metodología ágil se comenzó a emplear alrededor del año 2001 cuando un grupo de personas que desarrollaban software prestaron atención a cómo cada uno de ellos construía software de un modo diferente y pensaron: ¿Y si contrastamos todos los puntos que usamos para desarrollar software y nos ponemos de acuerdo en cuáles son los más útiles?

Tras una reunión organizada en Snowbird, en el estado Utah situado en Estados Unidos, se pudieron poner en acuerdo sobre algunos de los puntos comunes en los que se desarrollaba software de forma más ágil, aunque obviamente, también hubieron otros puntos de vista en los que no estuvieron de acuerdo.

De todo este conjunto de puntos coincidentes pudieron formar el conocido Manifiesto Ágil que no fue más que una serie de premisas clarificativas que facilitaban un nuevo camino a través de una forma diferente en la que se desarrollaba el software y por supuesto, fue justo cuando aquí comenzó a nacer el concepto de “desarrollo ágil de software”.

Más tarde, los propios autores decidieron definir más claramente esta metodología con 12 principios fundamentales en los que se basaría este sistema ágil conocido como los principios del Manifiesto Ágil.

El Manifiesto Ágil ¿en qué consiste?

Una vez declarado los 4 principios de la metodología ágil, los autores decidieron crear una web donde dejarlos enmarcados para que cualquier persona pudiera informarse acerca de esas premisas y además ayudarles a ponerlas en práctica.

Para ampliar el conocimiento de dichos principios decidieron crear la web agilemanifiesto.org donde dejar constancia de los mismos. Si te interesa saber más de dicha web sobre los principios de una metodología ágil haz clic en el enlace de la web.

Metodologías ágiles de desarrollo de software

Por lo tanto, este modelo ágil se promulgaba con una serie de principios que formaban el Manifiesto compuesto por cuatro sentencias básicas:

  1. Individuos e interacciones: sobre procesos y herramientas. En este punto se intenta que una metodología ágil deberá de premiar a las personas que trabajan en el desarrollo más que a los procedimientos como puede ser una exquisita planificación.
  2. Software funcionando: sobre una documentación completa. En este caso el software es la medida que realmente servirá para medir el progreso de un proyecto. No se pretende tener una rica documentación con lujo de detalles. Ante esto, se preferirá y priorizará que el software se encuentre desarrollado, terminado y funcionando.
  3. Colaboración con el cliente: sobre la negociación del contrato. En este punto la metodología ágil de trabajo intentará tener en cuenta cierto trato periódico con el cliente. Es la mejor forma de saber si el cliente está satisfecho con el trabajo realizado en un corto periodo de tiempo, por lo que se busca el contacto con él. Hay veces en las que usando otras metodologías se retrasa tanto un prototipo funcional que cuando lo mostramos al cliente éste cambia de opinión y hay que volver a cambiar el proyecto. Con reuniones frecuentes podremos evitar este tipo de situaciones.
  4. Responder a cambios: sobre el seguimiento de un plan. La planificación general en cualquier proyecto debe ser y es obligatoria pero con las metodologías ágiles se hace “hincapié” en acostumbrarse a aceptar los cambios que se producen durante el desarrollo ágil del software. Hay que enfocarse más en una planificación pronta en lugar de una planificación exhaustiva para toda y cada una de las etapas, ya que si al cabo de dos meses el proyecto cambia hay que saber enfrentarse a ellos.

Estos son los puntos comunes que se sacaron en conclusión y que un proyecto con un desarrollo ágil deberá de cumplir.

Principios del Manifiesto ágil o “Agile Manifiesto”

En los 12 principios del Manifiesto se intentó especificar y detallar aun más de lo que las 4 premisas iniciales y básicas tenía el desarrollo de la metodología ágil de software. Si quieres conocer los 12 principios del Manifiesto Ágil desde la web de los autores haz clic en el enlace.

Los 12 principios que se deben de tener en cuenta a la hora de trabajar con una metodología ágil son los siguientes, que, tras cada uno de ellos intentaré explicar escuetamente.

La mayor prioridad será la de satisfacer al cliente a través de entregas tempranas y una continua entrega de software valioso y funcional.

Ya quedó comentado en las sentencias básicas de los 4 puntos anteriores. Si se tiene un buen contacto con el cliente permitirá evitar cambios en documentación y en el desarrollo del propio producto. Ya que el cliente recibe entregas tempranas, ésto ayudará a conocer a los desarrolladores realmente si van por el mismo camino para conseguir el producto software que el cliente desea obtener.

En las metodologías clásicas que no eran ágiles se tardaban en finalizar todas las etapas demasiado y esto hacía que el cliente recibiera un producto funcional tardío y quizás “pasado de moda”.

El cliente necesita ir viendo su producto por básico que sea lo más pronto posible.

Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

El hecho de que los requisitos puedan cambiar en el futuro proporciona una gran ventaja ya que de esta forma el cliente siempre tendrá su producto software a la última y en cada etapa se mejorará bajo la demanda del cliente.

El mercado de software tecnológico es muy amplio, cada día existen nuevas innovaciones y cada empresa quiere destacar como líder en su sector. Lo ideal es que el producto evolucione lo más pronto posible para ser el más actual en el mercado.

Muchas empresas son precisamente conocidas por ser pioneros en lanzar ciertas aplicaciones por lo que importa realmente es poder lanzar un software lo más pronto posible y así ser el primero en llegar al mercado.

Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.

Una versión actual, otra más actualizada, otra más nueva… esto es lo que permite aumentar la relación comunicativa con el cliente. Gracias a ello se entrega un software que realmente funciona y es una gran forma de estar previstos a pequeños cambios en lugar de cambios extensos en el software que implicarían un mayor plazo en la entrega del producto funcional.

Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.

Es una excelente manera de saber qué es lo que realmente el cliente quiere y usando esta metodología es lo que se pretende que esto ocurra.

Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el apoyo que necesitan, y confiarles la ejecución del trabajo.

Conviene que el equipo de desarrollo se encuentre ilusionado con el proyecto y en esta metodología ágil existirá una figura que tenga destreza para mantener a su equipo motivado.

Es esencial que exista una fácil comunicación entre ellos para corregir los fallos, optimizar el código, mejorar la interfaz de la aplicación… Esto se consigue gracias a que los integrantes del equipos tienen la capacidad de ser auto-gestionados.

El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus miembros es la conversación cara a cara.

En este modelo ágil es mucho mejor que todos los que forman el equipo de trabajo mantengan una relación estrecha entre ellos mismos en lugar de otro tipo de comunicación más lejana.

Siempre será mucho mejor que se comuniquen físicamente y se mantengan informados sobre el desarrollo del software constantemente.

Es altamente preferible evaluar el proyecto manteniendo un contacto directo en lugar de entorpecer el trato como una comunicación menos fluida entre los miembros del equipo como es el envío de correos electrónicos, las reuniones físicas es un pilar fundamental en una metodología ágil.

 

El software funcionando es la medida principal de progreso.

Relacionado con las 4 premisas básicas que una metodología ágil debe tener ya se ha comentado que no hay que tener demasiado en cuenta la documentación entre otros puntos.

En lugar de ello se prioriza más que el software funcione. Es la mejor forma de evaluar cómo el proyecto va evolucionando.

Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.

Para que una metodología ágil funcione es estrictamente necesario que todas y cada una de las partes colaboren.

Siempre la comunicación deberá de ser frecuente y tanto el equipo de desarrollo como el cliente deberán estrechar los enlaces comunicativos. Gracias a ello el cliente tendrá lo que realmente quiere.

La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.

 

La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.

Ambas anteriores pretenden una mejora continua gracias a que los miembros partícipes de la elaboración del proyecto puedan solucionar errores y ahorrar tiempo mientras se desarrolla.

Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.

El equipo deberá de conocer bien los objetivos a cumplir y entre ellos mismos deberán de relacionarse y tener la capacidad de auto gestionarse.

A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.

Siempre se entregará al cliente un software funcional en cada uno de los tramos definidos en la planificación. Finalizando dichos tramos se pondrá atención al trabajo existoso conseguido en esas etapas realizadas para tener en cuenta los puntos que sí benefician en cada uno de ellos.

Mejorar continuamente aprendiendo de los fallos cometidos con anterioridad y poniendo en práctica todo lo que funciona.

Tipos de metodologías de desarrollo de software ágiles

Existe diferentes metodologías de desarrollo de software ágiles, algunas más tradicionales y usadas que otras. Pese a que puedan aplicarse de forma única cada una de ellas también se pueden combinar diferentes metodologías.

Cada empresa u organización se adaptará mejor a unas técnicas y sistemas de desarrollo ágiles que a otras. Dependiendo de las circunstancias requeridas y detalles como la complejidad y temporalidad del proyecto así habrá que adaptar y elegir la metodología adecuada.

Cada modelo ágil posee diferentes plazos y formas que habrá que seguir para su cumplimiento.

Las metodologías ágiles de desarrollo de software más conocidas son:

  1. ASD: Adaptative software development.
  2. Agile modeling.
  3. AUP: Agile Unified Process.
  4. Crystal Clear methods.
  5. Disciplined agile delivery.
  6. DSDM: Dynamic systems development method.
  7. FDD: Feature-driven development.
  8. Lean software development
  9. RAD: Rapid application development.
  10. XP: Extreme programming.
  11. Kanban.
  12. Scrum.
  13. Scrumban.

Algunas de estas metodologías ágiles son de uso no sólo en el sector del desarrollo de software si no en otras organizaciones o empresas donde se quiera agilizar el tiempo en los proyectos y sus entregas rápidas funcionales.

Metodologías ágiles de desarrollo de software tradicionales

De todas las metodologías ágiles existentes algunas son más comunes de aplicación que otras, sobre todo, en el sector tecnológico. Algunas con sus virtudes y sus defectos, pero como se ha comentado, es esencial adaptar cada técnica o incluso la mezcla de las diferentes metodologías ágiles en base al proyecto el cual se quiera emprender.

Las metodologías ágiles de desarrollo de software más tradicionales en la actualidad son las que encontrarás en la siguiente imagen.

Metodologías ágiles tradicionales de desarrollo de software

Pese a ello a continuación podrás saber cuáles son las metodologías más usadas y sobre todo, una breve descripción para que puedas tener una idea de en qué consiste cada una de ellas.

Metodología de trabajo SCRUM

Con posterioridad se creará un artículo más detallado sobre la metodología SCRUM. Si te preguntas por cuál es la metodología ágil más implementada sin duda alguna hablamos de la metodología SCRUM.

  • Esta metodología de desarrollo ágil SCRUM tiene diferentes fases (planificación, arquitectura, ciclos iterativos, requisitos satisfechos).
  • Se pretende una planificación estimada pero en entregar una funcionalidad nueva o mejorada del producto siendo la entrega llevada a cabo en un plazo de cada 2 a 4 semanas. A estos tramos se les denomina hitos o milestones.
  • Una vez que no existan tickets ni problemas a resolver se considerarán que todos sus requisitos están satisfechos.
  • Existe una lista llamada Product Backlog donde se van insertando el trabajo a realizar durante el proyecto pero se eligen en esta lista por prioridad.
  • Existen diferentes roles conocidos como el propio cliente, el product owner, el scrum master y el equipo scrum.

Metodología XP – Extreme Programming

Este tipo de metodología ágil -conocida como modelo XP- está compuesta por múltiples fases a diferencia de otras metodologías conocidas como la exploración, la planificación, iteraciones de entrega, productización y el mantenimiento o muerte.

  • Para llevar a cabo esta metodología ágil, se definen los requisitos, se planifican en tiempo y se van realizando iteraciones con un producto funcional que mostrar en cada una de ellas al cliente. Tras finalizar el software se mantiene hasta que se le acabe la vida útil del software realizado.
  • Destaca por varios beneficios pero principalmente las ventajas de esta metodología ágile  son las entregas rápidas (en días en lugar de meses), la programación por pares (un programador escribe código y otro lo corrobora en tiempo real), un diseño más simple y minimalista…
  • Una característica que difiere de esta metodología ágil frente a otras es el Refactoring que es intentar mejorar siempre el código realizado con el fin de que en el futuro se pueda mantener de una forma más fácil.

Modelo Kanban

Agile Methodology

El concepto de la metodología ágil Kanban fue inventado por la conocida empresa de fabricante de vehículos Toyota, dicha empresa en el pasado ha sido una fuente de inspiración gracias a sus diferentes aportaciones al mundo de la productividad laboral.

  • En esta metodología se dividen las etapas del proyecto en columnas y cada columna tendrá una lista priorizada de cosas por hacer.
  • En cada etapa cada profesional del equipo se dedica a unas tareas y se definen la cantidad de personas que trabajarán en esa etapa del proyecto.
  • Se puede ejecutar esta técnica de forma física con un tablero dividido en columnas y en cada una de ellas se coloca por escrito la tarea a realizar en un post-it.
  • Es una de las metodologías ágiles más minimalista y fácil que existe. Se decide una tarea : “hacer apartado login de una web”, se escribe en un post-it y se pega en la columna adecuada para que pase a esa lista de tareas a realizar y entrará en ejecución por orden de prioridad.
  • El proceso para hacer funcionar esta metodología es fácil. Ese post-it con la tarea de “hacer apartado login” irá en la columna de “En progreso” si así le fuera pertinente, una vez termine, pasará a otra columna llamada “Testear” y tras ello se colocará en una columna marcada como “Hechas” y así con todas las tareas.
  • Se hace uso del Lead-Time que no es ni más ni menos que estimar el tiempo que es necesario para llevar a cabo una tarea.

Y estas tres son las metodologías de software ágiles más utilizadas en la actualidad. En el ranking de las más queridas encontramos a la metodología ágil SCRUM con sus ventajas y desventajas y también encontramos a otras con características que se adecúan más a un proyecto que a otro dependiendo del objetivo a conseguir.

Para finalizar este artículo, te recomiendo visitar esta web donde podrás conocer numerosos recursos útiles acerca de las diferentes metodologías e incluso encontrar anualmente un listado con las más utilizadas.

Lo más leído

Metas a corto plazo metas personales

Metas a corto plazo ¿Qué son? ¿Cómo definirlas?

Para empezar cualquier proyecto de vida es esencial hacerlo teniendo claras las metas personales para conocer desde dónde tenemos que partir, el camino que...

Este sitio web utiliza cookies para que tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR

Aviso de cookies
error: El contenido está protegido