SCRUM y desarrollo de software ágil.
El mundo del desarrollo de
software tiene características que son totalmente contrarias a la lógica de
negocios de otras industrias, para explicar esto en un ejemplo muy sencillo,
podemos compararlo con una comercializadora de productos al mayoreo, cuando el
volumen de venta aumenta, el proveedor puede castigar un poco su precio ya que
el volumen de venta le dará finalmente una ganancia mayor, por el contrario en
el desarrollo de software cualquier ingeniero podría caer en el error de pensar
que al ofrecer la construcción de un sistema que sea de un tamaño significativo
en la misma lógica que la comercializadora, el ingeniero podría ofrecer un
precio menor, pero resulta que un software mientras mas grande sea, su nivel de
complejidad aumenta en ocasiones exponencialmente, esto significa que mientras
mas grande sea el producto a desarrollar, se deben considerar costos mayores,
no hacerlo desemboca en el fracaso.
Buscando darle la vuelta a este
problema se han desarrollado técnicas para
minimizar la complejidad del desarrollo de sistemas, todas estas técnicas se
han agrupado en lo que conocemos como Ingeniería
de Software, al cabo de los años se ha pasado por muchas etapas, cada una
con sus claro-obscuros, podemos encontrar en un extremo el ingeniero que
considera que el documentar el desarrollo de software es una perdida de tiempo,
que esto solo repercute en el costo final y que prefiere sin realizar un
análisis documentado pasar directamente
al diseño y desarrollo del producto, por lo general esto lo hacen compañías
pequeñas que desarrollan también productos reducidos, en el otro extremo
encontramos a los ingenieros y compañías que incluso cuentan con
certificaciones tipo CMMI (Capability Maturity Model Integration) que lo que
certifican es que se tienen las mejores prácticas en el desarrollo incluido lo
concerniente a la Ingeniería de Software.
Recientemente mentes audaces y
creativas se han dado a la tarea de romper estos paradigmas y encontrar soluciones
que integren lo mejor de ambos extremos dando origen a las técnicas de
desarrollo ágil, ¿de que se trata esto?, los métodos tradicionales de
desarrollo como puede ser el Método Espiral
(analizo, diseño, desarrollo, pruebo, analizo, diseño, desarrollo, pruebo, analizo,
diseño, desarrollo, pruebo, etc.) o el Método
Cascada (analizo hasta el mínimo detalle, documento hasta el último
detalle, diseño hasta el último detalle, y finalmente implemento con una
seguridad mayor) implican como sus detractores lo indican una gran inversión de
tiempo para poder llegar a el termino del producto final, y muchas veces toda
la documentación que se genera queda en el entredicho su real utilidad y por el
lado contrario los que acostumbran no realizar ninguna documentación, cuando el
desarrollo empieza a ser de tamaño considerable convierten esas
implementaciones en verdaderas bestias muy difíciles de dominar para agregar ampliaciones
de funcionalidad o mejoras.
Aquí es donde entran la técnicas
agiles, una de las mas populares es la Programación
Extrema (Extreme Programming) que se basa en el levantamiento de historias
o requerimientos pequeños, simplificar su documentación, atacarlos
inmediatamente, y levantar los requerimientos al mismo tiempo que se esta
haciendo el desarrollo, de esta manera se soluciona el problema de el “siempre
presente” cambio de requerimientos que no se puede evitar, ya que si se esta
levantado el requerimiento mientras se desarrolla, se tiene mas flexibilidad y
se pueden hacer modificaciones sobre la marcha de una manera menos costosa.
La Programación Extrema ya fue un
avance, pero en mi experiencia personal todavía resultaba muy compleja pues
considero que es muy difícil medir el avance de los proyectos y tener una
visión global de los mismos.
Pero las mentes audaces y creativas
cuando realmente lo son, no paran y ahora ha surgido el SCRUM, lo he implementado y tengo resultados verdaderamente
significativos, SCRUM es una metodología ágil, pero tiene una sencillez bárbara,
verdaderamente esto logra que lo complejo del desarrollo del software sea su
programación y no la administración del proyecto.
Es tan sencillo que se los
describiré en un párrafo, si conocen las post-it, imaginen que tienen un
pizarrón dividido en tres secciones, la primera sección es para las tareas que
se tienen por hacer, la segunda sección es para las tareas que están en
proceso, y la tercer sección es para las tareas que ya están terminadas, los
post-it servirán para anotar cada una de las tareas por hacer (issues), cuando se tengan todas, se
pegan en el pizarrón y se inicia el trabajo, y se van colocando los post-it en
el lugar que corresponda según el proceso en que se encuentre, de entrada esto
nos brinda una visión muy realista y global del avance de nuestro proyecto,
SCRUM es ideal para equipos de desarrollo y para esos grupos o empresas que
tienen una motivación baja porque no ven que alcancen sus metas y objetivos,
con SCRUM todos pueden ver el avance del proyecto y eso da una motivación extra
al equipo, parece poco, pero motivación es uno de los ingredientes esenciales
para el éxito de proyectos grandes, se puede asignar una serie de issues a determinado desarrollador y se
puede hacer un seguimiento de su avance, en el equipo se definen Sprint´s que
son metas de desarrollo que van de una a 4 semanas, no mas de este tiempo para
que sea una meta sencilla de alcanzar, se establecen juntas diarias de 15
minutos en donde se comentan los avances y problemas que se han tenido al jefe
del proyecto y de esta manera se actúa con oportunidad ante los problemas imprevistos
y no hasta que ya implique una gran inversión de tiempo corregirlos.
En lo personal una de las cosas
que mas me gusta de SCRUM es la grafica de avance, en un solo vistazo podemos observar
como va nuestro proyecto, existen software que nos ayudan a manejar SCRUM por ejemplo Jira que es muy sencillo y
su costo es muy reducido.
Los invito a investigar más de
este tema, ya que esta explicación es muy superficial, recuerden que el mundo
necesita de mentes audaces y creativas que nos den soluciones como esta, no
olvidemos que todo es susceptible de mejora.
I.S.C. José Antonio Herrera Jiménez.
Gerente Comercial.
Evolución T.I. S.A. de C.V.
www.evolucionti.com.mx
Coordinador Académico del Área de Ingenierías
Universidad Vasco de Quiroga
www.uvaq.edu.mx
No hay comentarios:
Publicar un comentario