¿Por qué Scrum?

Desde que estoy inmerso en el mundo Agile, en especial en Scrum, siempre he escuchado frases del tipo “Esos post-it son una chorrada”, “tanta reunión es una perdedera de tiempo”, “¿Eso sirve para algo?”, “Yo hago mi trabajo y listo”.

Haciendo un poquito de historia…

Cuando estaba con  el proyecto de grado de fin de carrera, era necesario entregar un amplio documento técnico hecho al detalle, con infinidad de diagramas UML, dichos diagramas se hacían antes de poner la primera línea de código, como era lógico pregunte a mi profesor de la  U ¿Qué pasa si el código no es como se muestra en el diseño? Su respuesta fue –Cambias el diseño.

Con la poca experiencia que tenía en ese momento, pensé que eso de cambiar el diseño seria el pan de cada día en el desarrollo de software.

Con el tiempo he comprobado que no estaba equivocado, en el software es muy complicado conocer al 100% lo que se quiere como para crear un diseño perfecto.



He visto quejarse al usuario al momento de la entrega de un producto, porque resulta, que eso que le entregaron y por lo cual pagó, no funciona como él suponía que lo haría.

Much@s dirán, pero es que eso es una mala planificación, un mal análisis, una mala toma de requerimientos, etc. Bueno,  seguramente si tengan razón,  pero resulta que el software no es una ciencia exacta (también me lo discutirán).

Creo que el error en el desarrollo de software, es que siempre se ha pretendido predecir con dotes de mago, todo el trabajo que se tiene que hacer para entregar un producto software (sobre todo en lugares malos de la matriz de Stacey).

Pretendemos que construir software es como construir una casa, que se ciñe a unos planos cerrados que describen lo que se tiene que construir.  Pues el software no son ladrillos con cemento, son líneas de código y PERSONAS.

¿Qué tiene Agile, funciona Scrum?

Son varios los puntos que hacen que Agile y en especial Scrum sea un marco óptimo de trabajo para el desarrollo de software. Los puntos más importantes basados en mi experiencia son:

Al tener entregas (demos, preview, etc.) frecuentes de software, tenemos un feedback del cliente, que hace que el cliente defina mejor lo que desea y el equipo hacer lo que en realidad necesita y quiere el cliente. El trabajo que no produce valor real es absurdo.


El producto no es posible si todo el equipo no trabaja en ese sentido, cada persona en el equipo es importante.


Todo el mundo lo sabe todo.

En Scrum existen reuniones como el sprint planning, daily meeting, retrospective, etc. Que tienen dos objetivos principales; crear un ambiente de transparencia, que hace que el conocimiento fluya en el equipo y no se de el caso “…..es que eso sólo lo sabe XXX…” debido a la comunicación que existe. Además, tener un plan realista que se ajusta a los cambios y necesidades reales del cliente, del equipo o el entorno.

No adivine. Planifique, haga, compruebe, actúe. Jeff Sutherland


Uno de los mitos de Scrum, es que no se documenta, lo cual es falso. Sí se documenta, pero se documenta con valor, es decir, no se tienen cientos de folios que no dicen nada. Se considera prioritario el software que funcione.


Debido a la sinergia del equipo, no es posible tener el equipo alguien que no se implique en el trabajo, no aportaría valor por cual sería fácil de identificar.


Las personas son el mayor valor a la hora de desarrollar software, y para eso es fundamental la felicidad, cuando se es feliz se trabaja mejor, se toman mejores decisiones y se rinde más.

En Scrum, la felicidad se mide con el fin de tomar medidas que permitan mantener índice de felicidad alto.

Scrum no es perfecto, pero cuando falla, falla antes, lo cual permite enderezar el camino o desistir. 

Comentarios

Entradas populares de este blog

Estimar no debe ser un compromiso

Equipo

SpringBoot + Docker