Por Ing.
Daniel Oviedo Suárez ITIL,
SMC, CSM, Parasoft DTP
Las metodologías ágiles contemplan el desarrollo
de software de manera integral, con un énfasis muy marcado en la entrega de
valor al cliente y el retorno de la inversión (ROI).
En la actualidad, las
metodologías ágiles que se usan para el desarrollo de software están
posicionándose muy fuertemente en las empresas líderes de este sector como,
Microsoft, Oracle, SAP, IBM, CA y HP.
De todas las formas que existen para
poder desarrollar software, únicamente de manera colaborativa es como se logra.
La colaboración entre el cliente y los desarrolladores es vital e indispensable
para la entrega de resultados, siempre se debería fomentar y apoyar.
Es muy importante promover técnicas,
procesos y métodos que faciliten esta colaboración. Se debe permitir a los
desarrolladores expandir su aportación de valor a los proyectos, y así ofrecer
a los clientes transparencia sobre los mismos.
La literatura tradicional sobre
desarrollo de software habla del triángulo de hierro, formado por el alcance, costo
y duración de un proyecto.
Este triángulo siempre ha
presupuesto que la calidad era inherente a los desarrollos, sin embargo, ha
resultado ser la variable que más sufre en numerosos proyectos. La gestión
tradicional de proyectos fija un alcance a desarrollar en un determinado tiempo
con un costo establecido. Con esas tres variables fijas, ante cualquier
problema, la respuesta más probable será que la calidad disminuye. Las prisas
por terminar en tiempo, por no rebasar el presupuesto o el hecho de cumplir con
el contrato firmado no dan muchas opciones.
NO NEGOCIEMOS LA CALIDAD
Nos encontramos en una época
donde la calidad juega un papel de protagonista como una gran ventaja ante nuestros
competidores y clientes. Las metodologías ágiles nos están proporcionando un
marco de referencia en el que lograr una calidad satisfactoria es parte
integral del proceso de desarrollo.
Las herramientas de las cuales pueden
hacer uso los desarrolladores son el punto de entrada a un cambio de paradigma
que aumentará el estándar de la calidad de cada uno de los desarrollos. Técnicas
como el desarrollo guiado por las pruebas (TDD), y aún más otro concepto que se
está introduciendo como el desarrollo guiado por las pruebas de aceptación
(ATDD), comienzan a ser las piezas fundamentales sobre las que se puede
elaborar un producto garantizando en su integridad y calidad durante todo su
ciclo de vida.
Se busca integrar el control de
la calidad en el propio proceso de desarrollo. Es más, se busca que la única
posibilidad de desarrollo sea crear entregables que funcionen correctamente,
que cumplan con una definición del producto acabado, que sea un requerimiento
participar colaborativa y constantemente con el equipo de desarrollo y el
cliente o PO. Se debe integrar en el equipo a cualquier persona involucrada,
incluso los Testers, pues comparten el mismo objetivo que el resto del equipo.
Otro objetivo imprescindible es
el cumplimiento de las expectativas del cliente. Por ello es el uso de iteraciones
de manera incremental, ya que es la base de todas las metodologías ágiles, esto
nos permite alinear esas expectativas con el avance del proyecto. Uno de los
principios básicos define que el grado de progreso de un proyecto únicamente se
puede medir por el software que ya brinda valor al cliente, y que es
potencialmente utilizable.
SCRUM
Dentro de todas las diferentes
metodologías ágiles, Scrum es la que más se refiere al Project Management, en contraste
con las metodologías tradicionales de desarrollo de Software, el rol del
Project Manager está distribuido entre los diferentes roles del equipo: El
Scrum Master, El Product Owner y el Equipo Scrum.
El Product Owner se enfoca en los
aspectos del negocio, incluyendo la prioridad en que el producto se va a ir desarrollando
para que éste genere valor. También se encarga de las proyecciones, presupuesto
y gestión de los diferentes interesados en el desarrollo del producto.
El Scrum Master se encarga de
gestionar el proceso de Scrum, funciona como un facilitador del equipo, y su
autoridad se extiende únicamente al proceso. No es responsable por el éxito o
el fracaso de los proyectos. Además, ayuda al Product Owner a darle continuidad
al progreso del proyecto.
El Equipo Scrum se encarga de
construir y/o desarrollar el producto, así como realizar los planes un poco más
enfocados a corto plazo durante el Sprint Planning, que posteriormente se
actualiza durante el Daily Scrum Meeting. Además, se encarga de realizar las pruebas
necesarias para asegurar la calidad y la mejor manera de desarrollar
técnicamente el producto.
RETOS
Actualmente la puerta de entrada
a las metodologías ágiles de muchas empresas es Scrum. Como ya bien conocemos,
se trata de un marco de referencia basado en una colección de procesos para la
gestión de proyectos que permite centrarse en la entrega de valor al cliente y
la potenciación del equipo para lograr su máxima eficiencia, dentro de un
esquema de mejora continua. Por ejemplo, usar Scrum en un desarrollo de
software en diferentes países, plantea una serie de retos a superar, que vienen
principalmente de la distancia física, una diferencia cultural y horaria. Ésto
impacta principalmente en la comunicación entre los miembros del Equipo Scrum,
y las reuniones diarias, que son una de
las piezas fundamentales de esta metodología. Es muy destacado el caso de cómo
hacer reuniones todos los días cuando el equipo se distribuye en diferentes
zonas horarias. Esta dificultad para comunicarse se contempla como uno de los
principales retos a superar cuando utilizamos Scrum en un desarrollo global de
software.
Algunos otros retos que tiene Scrum son:
- Cambio de paradigma: tradicional a ágil
- Correcta construcción de las historias de usuario
- Documentación en Scrum
- Conectar el negocio y la tecnología
- Errores del Product Owner
- Generación de documentación excesiva
- Eliminar desperdicio del Product Backlog
- Seleccionar el proyecto piloto adecuado
¿DÓNDE ESTAMOS?
Las metodologías ágiles cuentan
ya con una muy amplia literatura e infinidad de horas de experiencia reales de
implementación. Existen importantes eventos y capacitaciones a nivel internacional,
donde se contrastan herramientas y procesos relacionados con las mejoras en el desarrollo
de software y donde se plantean los estándares para la aplicación de estas
metodologías. Sin embargo, en México, pareciera que las únicas armas con las
que se cuenta para mejorar la calidad del software son las herramientas
tecnológicas, impulsadas actualmente por las diferentes marcas en el mercado.
Sin duda son una buena referencia para numerosas empresas tanto públicas como
privadas, pero para evitar muchos dolores de cabeza y de cartera, establecer
siempre desde un inicio los métodos y la gestión de proyectos está ayudando a muchísimas
empresas a mejorar la satisfacción del cliente, a incrementar ganancias y
reducir costos alrededor del desarrollo de software, y muy importante también, a
mejorar la eficiencia de muchos desarrolladores, que es el verdadero core de esta
industria.
Un liderazgo en gestión de
proyectos sumado a los conocimientos del equipo de desarrollo y junto con las
herramientas clave, son el punto neurálgico de la calidad del software.
Contáctanos nosotros te podemos apoyar con la implementación de una Metodología Ágil. www.alpha-consultoria.com
Referencias:
Comentarios
Publicar un comentario