Consideraciones para proyectos de desarrollo de software exitoso. Parte I.
Dentro del área de desarrollo de aplicaciones de software con frecuencia sabemos de casos en que los proyectos quedaron inconclusos, el tiempo -y costo asociado- se extendió mucho más allá de lo originalmente previsto, fue necesario modificar el alcance inicialmente planteado y otras situaciones similares. Si bien en cualquier proyecto, de la naturaleza que sea, existe un riesgo y determinados rangos de certidumbre relacionados, en el caso de desarrollo de software las estadísticas arrojan alto número de fracasos. ¿A qué se debe esto?
Por supuesto puede haber varias razones, pero desde mi punto de vista una adecuada comunicación entre solicitante y ejecutante es el punto fundamental de partida. Una comunicación fallida va a impactar negativamente en distintas fases del proyecto, se trate de aquellos relativamente sencillos o de complejos sistemas de gestión y operación: las etapas que considero más sensibles a problemas de comunicación son: dimensionamiento, seguimiento, gestión del cambio y capacitación. La combinación de problemas en éstas puede provocar un desastre y hacer que el proyecto fracase.
1. Dimensionamiento.
Aunque pueda parecer obvio o trivial, algo que con mucha frecuencia se convierte en un obstáculo es la poca claridad en el entendimiento por parte del equipo técnico de las necesidades de quién solicita el desarrollo. Esto produce un mal dimensionamiento que a su vez trae otras consecuencias como discrepancias entre las expectativas de solicitante y la realidad alcanzable, decepción y frustración en ambos lados y por supuesto, diferencias importantes de tiempo y costo. El problema puede surgir desde el primer momento en que, con el afán de cerrar el trato, el desarrollador acepta escenarios propuestos sin un análisis previo. En cualquier caso, dedicar tiempo a entender los requerimientos y reconocer el costo asociado a esto por las partes involucradas, es de suma importancia para una buena planeación, realista y que acote el alcance del proyecto a satisfacción de las dos partes. Esto es válido para cualquier metodología que se pretenda utilizar, ya sea convencional o de aproximación iterativa.
2. Seguimiento.
No se trata simplemente de registrar y reportar el grado de avance de las tareas en una junta periódica y tomar acción en caso de desviaciones sobre el calendario, sino de comprender que se está trabajando, desde un modelo abstracto, en la implementación de algo tangible y concreto. Aún el proyecto mejor dimensionado y planeado tiene una alta probabilidad de fracasar si no recibe un estricto seguimiento puntual y el estado es comunicado eficazmente. Es aquí en donde la figura del líder del proyecto se vuelve clave, pues deberá ser capaz de comunicarse efectivamente con el solicitante para aclarar cualquier duda respecto al flujo del proceso afectado por el proyecto para transmitirlo al equipo de desarrollo. Esta comunicación efectiva implica también la capacidad para hablar con total claridad a las partes sobre las situaciones que puedan poner en riesgo el cumplimiento, sin importar que el hacerlo nunca será del todo agradable para éstas. Si el líder de proyecto es una figura fuerte, con habilidades de comunicación, autoridad y capaz de poner en sintonía a las dos partes, los riesgos en la ejecución son notablemente mitigados.
Ahora bien, ¿cómo reducir el riesgo de caer en una situación como las mencionadas? De lo dicho se desprende que la selección del líder del proyecto es muy importante, por lo que vale la pena considerar una figura independiente del equipo de desarrollo (ya sea externo o interno) quien se involucre durante las fases conceptuales previas al inicio del análisis. En determinados casos es posible cubrir la función internamente, pero también puede hacerse de manera muy efectiva a través de consultoría especializada que, por sí misma, agregaría mucho valor al proyecto. En un escenario así, el líder funge como intermediario entre quien solicita el desarrollo -las áreas directamente involucradas junto con TI- y el equipo de analistas y programadores, dirige el proyecto y es responsable de facilitar la comunicación al ser capaz de “transcribir” los requerimientos de uno u otro lado.
Si están iniciando un proyecto o están por hacerlo, los invito a considerar estos puntos.
Comments