martes, 10 de mayo de 2016

Ventajas del desarrollo de proyectos basado en iteraciones


Para aquellos quienes han trabajado en proyectos de desarrollo de software mediante el uso de métodos tradicionales, el hecho de particionar el proyecto en pequeños ciclos y no en fases les pueda resultar extraño. Partir del hecho de tomar un grupo de características y someterlas a un mini proceso auto contenido de construcción, en el que se tiene como meta no enfocarse en un gran bloque o módulo, sino en un compromiso de concluir con un paquete de características, puede ser romper con ciertos paradigmas laborales.

Se trata de dividir un proyecto en pequeños ciclos, llamados por algunos como iteraciones o para quienes trabajan bajo SCRUM en Sprints, ofrece enormes ventajas para que nuestro cliente o promotor del proyecto, perciba avances sustanciables y controlados en la construcción de su sistema o producto, adicional que en términos generales genera enormes ventajas para la gestión del proyecto sobre todo para la mitigación de riesgos.

Antes de mencionar cuales son los beneficios es conveniente que nuestro cliente tenga claro cómo se trabaja bajo este enfoque de iteraciones ó Sprints, y la importancia de que una vez iniciado no es conveniente para las dos partes, tanto equipo como cliente, modificar el alcance del compromiso del mismo.

1.-Visión cercana de un paquete de características (Compromisos Acotados)

El cliente define un alcance de lo que requiere pero el equipo decide en cuanto tiempo lo puede tener listo. Lo anterior mencionado es una regla de oro en la cual también es importante recalcar que el alcance tiene que ser claro, en base a características que se puedan tener listas y funcionales en lapsos de tiempos cortos: 1, 2, 3 o 4 semanas y siempre partiendo desde aquello que le dé más valor al negocio.

2.-Construcción controlada e incremental

El equipo construye las características comprometidas para una iteración o sprint desde una perspectiva de agregar capas de funcionalidad, sobre las bases de lo que ya está construido de tal forma que el cliente puede ver en pequeños lapsos como el producto toma forma.

3.- Control de cambios y riesgos

Pasadas unas 3 o 4 iteraciones tanto el equipo como el cliente determinan si los esfuerzos realizados hasta el momento van enfocados en lo que se requiere, a lo que el negocio realmente persigue o si el producto resultante cubre con las expectativas de los usuarios, de no ser así se pueden hacer ajustes en el alcance y del mismo modo se controlan los riesgos, no desde un enfoque global sino desde un micro incremento de funcionalidades y características.

4.- Construcción enfocada en el negocio

Como ya se mencionó toda iteración inicia con un compromiso de características que el cliente considera que son esenciales o más importantes para el negocio, de tal manera que en determinados ciclos ya se puede tener un producto potencialmente usable, en el cual el retorno de la inversión puede darse antes de que oficialmente termine el proyecto.

5.-Mejora en el rendimiento del equipo

El equipo refuerza sus habilidades al orientarse a cubrir con los compromisos pactados durante la iteración, de tal forma que la velocidad de desarrollo es exponencial al número de funcionalidades base que se tengan ya implementadas en el producto; las nuevas funcionalidades solo van arropando a las anteriores y en cada ciclo el conocimiento se retroalimenta para mejorar la forma de trabajar.


miércoles, 4 de mayo de 2016

Marco de Trabajo vs Metodología


“Un buen arquero no es juzgado por sus flechas si no por su puntería”

Thomas Fuller


Cuando se habla de metodologías se habla de un proceso definido para hacer las cosas, para hacer actividades que ayuden y den orden a un proceso de elaboración de un producto. El problema no está en las metodologías ni en los procesos, el problema está cuando se quieren llevar al pie de la letra en proyectos, y estos tienen diferentes características o diferentes entornos.

No existe mejor herramienta que una mente despierta

Personalmente prefiero el uso de marcos de trabajo porque considero que pueden ser usados como una caja de herramientas, y dichas herramientas pueden ser usadas cuando el entorno, la situación o la experiencia lo ameriten, sin estar sujetos a un paso a paso.


Las ventajas que ofrecen los marcos de trabajo es que permiten responder de manera oportuna a los cambios, ajustando las herramientas y líneas de acción de acuerdo al entorno del proyecto. El equipo de trabajo no necesita estar sujeto a un modelo de trabajo restrictivo especificado por una guía, sino más bien en un modelo adaptativo orientado en la experiencia recabada en las iteraciones del proyecto en ejecución o de proyectos anteriores.

Ejemplo de las diferencias entre las Metodologías y los Marcos de Trabajo en ejecución:

Metodología
Marco de Trabajo
Orientado en el proceso.
Orientado en las personas.
Centrado en las bases contractuales del proyecto.
Centrado en el producto y sus beneficios.
Ejecución casi obligatorio de Fases, roles y herramientas.
Ejecución adaptativa de las fases y herramientas.
Basado en especificaciones o guías oficiales.
Basado en la experiencia y retrospectivas de todo el equipo.
Basado en fases secuenciales de un proceso.
Basado en iteraciones y herramientas adaptativas.

Alguien dijo en una ocasión: No porque tengas un martillo en la mano le debes de ver a todo forma de clavo. Las metodologías tienen muchas ventajas competitivas porque nos dan un orden en la forma de trabajar, pero cuando el entorno y variables del proyecto son muy cambiantes, mucho de lo que se tiene se convierte más en una limitante que en una herramienta de apoyo para la obtención de los objetivos.


El sentido del proyecto no es el proyecto en sí, sino el resultado y su valor que genera a las personas. Sin importar que modelo se utilice, no existe mejor herramienta para la obtención de resultados que la experiencia y una mente despierta.