En las implementaciones de Scrum siempre es necesario tener presentes los principios ágiles en el día a día, dichos principios nos ayudan a establecer si estamos o no trabajando en forma ágil. ¿Estamos entregando valor en forma continua?, ¿Nuestro software funciona?, ¿Mantenemos las cosas simples?, serían por ejemplo, algunas de las preguntas en relación a los principios ágiles. Si no estamos haciendo lo anterior no estamos trabajando en forma ágil. Recordar que parte de la riqueza de la agilidad es ir adaptándonos para ser lo mas productivos y eficientes, y es importante también que dichas transformaciones no hagan que nos alejemos de los principios, ni que nuestra forma de trabajo de “calcifique” y ya no permita adaptarnos.
Como complemento del manifiesto ágil, los principios ágiles establecen una guía para de las ideas centrales de la agilidad.
1: Nuestra principal prioridad es satisfacer al cliente mediante la entrega temprana y continua de software con valor
Para ser considerados ágiles debemos de entregar software funcionando y de utilidad a las pocas semanas y así seguir haciéndolo en forma continua. El cliente tiene la oportunidad de probar y usar el software para retroalimentar y ajustar, para al final tener lo que él quiere y necesita.
2: Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.
La realidad es que no es posible que el usuario conozca todos los requisitos de su producto desde un inicio. Debe ser un proceso de descubrimiento al cual debemos de adaptarnos para lograr la solución deseada. La entrega temprana y constante hace que el usuario cambie la perspectiva y el conocimiento de su producto y por lo tanto surjan los cambios los cuales debemos de ir incorporando para dar forma al producto.
3: Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con preferencia por periodos de tiempo lo más corto posible.
La entrega continua hace que la incertidumbre y los riesgos disminuyan ya que el usuario tiene la oportunidad de ir viendo el crecimiento del producto, se va forjando una idea de su producto final a través de las pruebas y el uso. Igual crece el riesgo de demasiados cambios y entrar en un ciclo que no se haga nada nuevo, por lo que hay que trabajar de cerca con él usuario y hacerle ver esto.
4: Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante todo el proyecto
Dado el ritmo de trabajo, la incertidumbre y los riesgos es de suma importancia que todos trabajen en forma conjunta día a día, se tenga disponibilidad para resolver dudas, problemas y definir estrategias.
5: 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.
La agilidad se basa en las personas, por lo que hay que darles el espacio y las herramientas para que generen la mejor solución para el usuario. Hay que dar el espacio y la confianza al equipo para que tomen sus decisiones.
6: 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.
La más sencilla, práctica y eficiente forma de comunicación entre los integrantes del equipo (Dueño de producto incluido) es la comunicación cara a cara. Reduce los problemas y los malentendidos, la toma de decisiones es más rápida.
7: El software funcionando es la principal medida progreso.
El software funcionando y entregado es lo que nos indica cómo vamos en el proyecto, si no está indica problemas, retraso, conflictos, cambios o ajustes que hay que atener para obtener el software que queremos.
8: Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.
El equipo debe de lograr un ritmo sostenido en el que sea capaz de entregar software funcionando, de valor, y de calidad. Ni más lento, ni más rápido. El Dueño de Producto y el SCRUM Master deben proveer al equipo del trabajo, las herramientas y las condiciones para que esto sea posible.
9: La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.
El equipo debe lo más productivo posible, reducir la deuda técnica, por lo que los productos generados deben de ser de la más alta calidad posible. Cualquier problema regresará al equipo y reducirá la capacidad del mismo para entregar nueva funcionalidad.
10: La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.
11: Las mejores arquitecturas, requisitos y diseños emergen de equipos auto-organizados.No hay que complicarse la existencia para desarrollar buen software, ni herramientas o métricas complicadas. Hay que mantener todo simple.
12: A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación ajustar y perfeccionar su comportamiento en consecuencia.El equipo se organiza para, en conjunto, aplicando su experiencia, conocimientos y habilidades, obtener el mejor producto posible. En un equipo interdisciplinario el intercambio de ideas lleva a un análisis de la solución desde diferentes ángulos.
Una actividad muy relevante para el equipo para mantener una mejora continua iteración tras iteración. Revisar en forma periódica cómo ha sido la ejecución de las actividades, mejorar y tomar acciones, no hay que esperar a la conclusión del proyecto.