jueves, 31 de marzo de 2016

Los grandes retos que implica la implementación de SCRUM




"El cambio es como el Cielo: todos quieren llegar ahí, pero nadie quiere morirse”.

Carly Fiorina

A pesar de que la implementación de SCRUM en un equipo de desarrollo de software trae grandes beneficios poder llevar este marco de trabajo de forma completa implica en hacer una gran reingeniería al interior así como al exterior de la organización, tanto en la forma de interactuar por los miembros del equipo de trabajo como con los clientes o usuarios.

SCRUM a diferencia de las metodologías de desarrollo de software tradicionales está basado en valores, entre los que destaca el empoderamiento del equipo de trabajo en la cual cada uno de los elementos tienen la facultad de auto asignarse actividades así como controlar sus tiempos (siempre y cuando estos se encuentre dentro del tiempo permitido para el Sprint) sumado a que fomenta las interacciones humanas dentro y fuera del equipo (todos tienen voz y cada opinión cuenta).



SCRUM obliga a que cada individuo del equipo de trabajo a que desarrolle habilidades que anteriormente estaban enmarcadas solo a ciertos perfiles, permitiendo que un programador pueda también ser analista o tester o el SCRUM Master ser arquitecto de software o administrador de base de datos así como un analista codificar ciertas funcionalidades.

En otras palabras el gran reto de la implementación de SCRUM en los equipos de trabajo es el cambio de un paradigma laboral, no solo en la organización del equipo si no a un nivel más profundo que es cambiar la forma de pensar de los elementos del grupo, los cuales tienen que tener un rol más participativo en las actividades y tareas que se ejecutan durante el proyecto. Cambiar los hábitos laborales de los individuos de la noche a la mañana es extremadamente complicado porque las costumbres se convierten en leyes sobre todo cuando se trabaja con personas hechas a la vieja escuela donde el Líder de Proyecto es quien negocia con los usuarios tiempos y entregas sin hacer team back con su equipo así como tomar la decisión de quien hace que y como en cada fase del proyecto.

SCRUM obliga a los programadores a pasar más de un rol pasivo donde construyo solo y cuando me son proporcionadas las especificaciones de requerimientos, ya sea mediante casos de uso, prototipos u otros,  a un rol de gestor, analista y líder con el objetivo de no solo terminar el trabajo que se tiene auto asignado sino concluir con los objetivos propuestos de todo el proyecto.


Aunque parezca increíble pero la ventaja que implica fomentar la comunicación con este marco puede ser algo complicado al momento de tener especialistas cuando una de sus limitantes es socializar o las relaciones humanas para lo cual las reuniones diarias tienen que ayudar a mitigar esta posible desventaja para abrir a la gente y que se monte al barco de un proyecto basado en prácticas agiles de SCRUM.


La implementación de SCRUM en un equipo de trabajo o una organización, como ya hemos visto, implica grandes cambios en la forma de trabajar e interactuar de las personas, que es algo muy difícil porque desde el punto de vista práctico se tiene que reinventar al grupo desde su concepción más básica que es el individuo, ayudando con esto, a descubrir a potenciales líderes que de otro modo hubiera sido imposible.


Agilidad para el desarrollo de productos y servicios innovadores



Los viejos paradigmas empresariales se derrumban como piezas de domino, los nichos de mercado que antes eran vacas sagradas están dejando de ser una opción viable ante una economía global sujeta a tantos cambios de manera muy acelerada. Las empresas del siglo 21 tienen dos opciones ante estos panoramas: Desaparición o Reinvención, y esta última se encuentra sustentada sobre dos nichos principales: innovación y agilidad, para responder de manera inteligente ante cambios tan drásticos en el gusto de los consumidores y usuarios.

Las empresas de hoy requieren ser flexibles para responder ante las exigencias del mercado y esto puede actualmente ser logrado mediante el uso de prácticas Agiles, muy comunes en los equipos de desarrollo de software para la construcción rápida, evolutiva e incremental de aplicaciones.

Las practicas agiles tienen entre varias ventajas reducir la incertidumbre y el riesgo al lanzar lo más pronto posible un producto para su uso, puesto que entre más temprano se lance una primer versión, los usuarios pueden retroalimentar con información valiosa para mejorar el siguiente reléase, reduciendo el coste de un largo proceso de maduración de un producto o servicio antes de que llegue a las manos de los usuarios objetivo.



También facilitan el flujo de comunicación en el equipo de creativo encargado de dar forma al producto, puesto que fomentan la interacción cara a cara, evaluando todos los puntos de vista posibles y empoderando al equipo en una misión común, logrando crear un marco de trabajo enfocado en la búsqueda de soluciones innovadoras.



Otro elemento a destacar es el aprendizaje temprano sobre las prácticas ejecutadas mediante el uso de sesiones de retrospectivas al final de cada ciclo,  lo cual permite mejorar y agilizar los procesos creativos al detectar impedimentos que en siguientes fases pueden obviarse, descartarse o mitigarse.

Para finalizar es importante que al formar grupos creativos que trabajen con prácticas agiles, estos deben estar conformados por personas que tengan diferentes roles, funciones o habilidades dentro de la organización con el objetivo de dar cierta ventaja al tener la mayor cantidad posible de detalles que pueden ser valiosos para elevar la calidad, usabilidad e innovación del producto final.