De
todos es conocido, por lo menos para los que nos encontramos en la industria
del desarrollo de software, que satisfacer las necesidades de los clientes no
es una tarea sencilla y mucho menos cuando se trata de entregar resultados en
lapsos de tiempo muy corto. Ya no existe tiempo para hacer un levantamiento
exhaustivo de requerimientos, hacer uso del UML en todo su esplendor o elaborar
especificaciones de casos de uso antes de digitar las primeras líneas de
código, el tiempo hoy es un recurso limitado para lo cual el equipo de trabajo
tiene como misión imposible comenzar la construcción de algo que apenas va
teniendo forma por lo obtenido en sesiones cortas con el cliente y los usuarios
finales.
La
agilidad propone que el equipo de desarrollo de software se enfoque más con la
premisa de entregar software funcional en iteraciones de tiempo relativamente
cortas, por lo que los principios, técnicas y especificaciones de los métodos
agiles se acoplan perfectamente a aquellos clientes que esperan tener una
herramienta potencialmente usable en un lapso de pocas semanas. Construir
software no es una tarea sencilla, el surgimiento de los métodos tradicionales
como cascada o RUP surgieron para poner un poco de orden en el caos existente
durante mucho tiempo en esta industria pero las reglas del juego han cambiado
vivimos en un mundo donde los cambios ya no se dan en años si no en cuestión de
meses, los mercados y las tendencias se mueven a una velocidad vertiginosa para
lo cual la industria, las instituciones y las empresas de servicios tienen que
renovarse constantemente para ser más competitivos, atraer más clientes o
simplemente sobrevivir, los productos innovadores son requeridos en lapsos de
tiempo muy tempranos y es aquí es donde la Agilidad hace su aparición como una
opción para enfocarse en lo que realmente es importante.
Agilidad
puede sonar como algo muy radical para construir software entendiendo que los
métodos tradicionales surgieron para controlar las variaciones o incertidumbre
mediante la ejecución de unas efectivas primeras etapas de compresión del
dominio y diseño los requerimientos, pero cuando se trata de tener algo usable
en tiempo record es cuando se requiere buscar otros medios. El concepto de
Agilidad no pude tener mucho sentido si no hablamos que va tomado de la mano
con la Adaptación. Agilidad y Adaptación son dos poderosas herramientas para
crear software evolutivo e ir mitigando riesgos o la incertidumbre sobre los
cambios drásticos de los requerimientos o alcance del proyecto.
Durante
las primeras iteraciones del ciclo de desarrollo (preferentemente en lapsos no
mayores de dos a tres semanas) es conveniente entregar el “core” de la
solución, durante estas primeras entregas el cliente puede ir identificando si
se ha entendido la esencia de la aplicación o existen requerimientos
adicionales que se requieren incluir, dado el caso lo construido puede irse
ajustando en las siguientes iteraciones, incrementado y dando forma de poco a
poco al producto final, en otras palabras respondiendo rápidamente (Agilidad) y
ajustando (Adaptabilidad) sobre la marcha.
Es
importante recordar que agilidad no significa caos y desorden más bien ser práctico
y veloz en la ejecución así como flexible en los ajustes, no solo del software
sino también al proyecto y del equipo.
Enlisto
a continuación a grandes rasgos como puedes usar la agilidad y adaptación en el
día a día en tus proyectos:
1.-Inicialmente
clarifica y aterriza la visión del producto final con el promotor del proyecto,
mínimo a un alto nivel.
2.-Descubre,
define, aclara y clasifica cuales son los requerimientos clave para que la
solución pueda ser considerada exitosa.
3.-Planifica
y ejecuta tus entregas en ciclos cortos. Trata de que en la primera iteración
se construya el esqueleto de la arquitectura del software, sobre este esqueleto
se irán agregando las capas de funcionalidad en las posteriores iteraciones.
4.-Durante
la ejecución involucra activamente al promotor del proyecto para que en las
entregas se tenga retroalimentación y se pueda evaluar si se están alcanzando
las expectativas de los usuarios finales, de no ser así adapta el software,
adapta el proyecto y adapta la forma de trabajar de tu equipo para obtener los
mejores resultados posibles.
No hay comentarios.:
Publicar un comentario