En general en mi día a día desde que comence me encuentro trabajando bajo las metodologías ágiles, desde distintos enfoques y combinaciones donde considero que año tras año se va volviendo parte de uno mismo, en mi experiencia la más utilizada fue SCRUM, aca quiero hacer una breve reseña de lo que son las metodologías ágiles y de como se aplican a nivel de framework con SCRUM, además de ciertas opiniones en el camino.
Podríamos decir que los principios y valores de cualquier enfoque son la base sobre la que se sustenta todo. Las metodologías ágiles no podían ser menos, por ello están basadas en una serie de principios y valores. Podríamos decir que todo lo demás se asienta sobre ellos. Sin principios ni valores las prácticas quedan vacías y sin sentido. Estos valores y principios se encuentran descritos en el Manifiesto Ágil.
Los valores son aquellos a los que damos mayor importancia y en base a ellos tomamos la mayoría de nuestras decisiones. En el manifiesto ágil se indican los siguientes valores:
En su momento sus escritores decían: Estamos descubriendo formas mejores de desarrollar software tanto por nuestra propia experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:
- 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
Esto es, aunque valoramos los elementos de la derecha, valoramos más los de la izquierda.
Para complementar a los valores tenemos los principios que podríamos decir que son recetas más concretas que nos permiten llevar a la práctica los valores. En el propio manifiesto ágil se incluyen 12 principios que pasamos a enumerar a continuación:
- Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor.
- Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
- Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia al periodo de tiempo más corto posible.
- Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto.
- 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.
- 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.
- El software funcionando es la medida principal de progreso.
- Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
- 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.
- Las mejores arquitecturas, requisitos y diseños emergen de equipos autoorganizados.
- A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.
Debemos tener siempre presente estos valores y principios en nuestro día a día ya que como comentamos anteriormente son la base sobre la que se asientan todo (reuniones, artefactos, roles)
Dentro del marco de metodologías ágiles tenemos varias implementaciones que nos permiten avanzar con el desarrollo de proyectos y productos con los clientes, en mi experiencia estuve con las siguientes:
- SCRUM Framework
- Extreme Programming
- Kanban
Siendo la que más logre utilizar en el día a día SCRUM combinada con tecnicas de XP a nivel de software (ya que es la que más se preocupa por la calidad del desarrollo a nivel de código). Considero que puede utilizarse alguna como principal combinada con herramientas que complementan desde otras implementaciones. Trabajo en el día a día con este tipo de metodologías se que son muy útiles sobre todo por el feedback continuo y entrega continua ya que son de agregado de valor para el cliente o interesado, lo cuál considero que es lo más esencial o lo que busca este tipo de enfoques como fin.
Importante destacar que al principio es bueno seguir los lineamientos planteados y probar en base a las reglas que nos establece la metodología, luego una vez bien implementada en el equipo si vemos que hay que quitar o agregar algo que la sigue haciendo más efectiva es bueno saber realizarlo pero una vez que todo el equipo esta interiorizada con la misma le esta funcionando bien y sabe que le puede hacer mejoras, optimizaciones.
Algo que aplica para todo en la vida "Para poder romper las reglas primero hay que tenerlas muy claras y entender su esencia", si ya del comienzo consideramos que sin haberlas utilizado podemos realizar modificaciones sin sustentos, lo mas probable es que tengamos problemas a futuro y le echemos la culpa a las metodologías, cuando en realidad el problema fuimos nosotros.