Archivo de la etiqueta: Curva de aprendizaje

Curva de aprendizaje en desarrollo de proyectos

En el 2011 tuve un proyecto grupal de universidad donde debíamos crear una aplicación de inventario de medicamentos y la íbamos a desarrollar en .NET.  A mitad del proyecto se nos ocurrió que la interfaz se desarrollara en WPF(Windows Presentation Fundation) en vez de Windows forms. Ninguno del grupo sabía cómo desarrollar interfaces en WPF, pero teníamos buen tiempo para aprender.  A dos semanas de finalizar el proyecto, los encargados de desarrollar la interfaz no la tenían lista. A dos días de finalizar el proyecto se logró terminar la interfaz. Luego tuvimos problemas en integrar la interfaz en WPF con el dll de la capa lógica de aplicación. Al final vimos que estábamos durando mucho en integrar, no avanzábamos como rápido y el tiempo se agotaba; por lo que se decidió  y rehacer toda la interfaz usando Windows forms. El re trabajo fue mayor y el proyecto no se terminó como se debía.

Esta historia me enseño que nunca se debe subestimar la curva de aprendizaje en un proyecto cuando se usa una herramienta nueva o que nadie del grupo conoce; y al contrario, es algo que se debe tener muy encuentra.

Mi recomendación es siempre ir por lo seguro, por lo que conocemos; en especial si el tiempo de entrega está muy próximo. Si se cuenta con buen tiempo para entregar el proyecto se  podría destinar ciertos días para aprender a usar la herramienta y al final de esos días determinar con el equipo de trabajo si la herramienta es fácil de usar, si vale la pena y si puede causar atrasos por el poco conocimiento.

Habrá ocasiones donde nos veremos obligados a tener que usar una herramienta o tecnología cual no conocemos, debido a que posee  cierta funcionalidad con la que no contamos. En casos así lo ideal sería contratar a una persona que sepa de la herramienta y así estaríamos evitando el proceso de curva de aprendizaje. Sin embargo, no siempre se puede contar con el dinero para esto, por lo que se debe analizar qué tan necesario o relevante es la funcionalidad que se requiere para el éxito del proyecto. He hecho un análisis con las mejores decisiones para este caso, no obstante cabe mencionar que el desarrollo y administración de proyectos  es un tema que contiene muchas variables  por lo que estas decisiones no son una metodología o una “fórmula mágica” para casos así, sin embargo pueden servir como base de análisis para sacar otra decisión que sea la más indicada.

  1. Asignar a uno o varios miembros del equipo para aprender a usar la tecnología y ponerle una fecha límite para esta curva de aprendizaje. Esta fecha límite debe calcularse teniendo en cuenta lo que pasaría si los miembros del equipo no logran adquirir el conocimiento requerido en ese tiempo.
  2. Si el tiempo que queda para entregar el proyecto es muy poco y la funcionalidad no es de alta prioridad, lo idea es terminar lo que falta primero y luego negociar con el cliente a ver si extienden la fecha de entrega para desarrollar lo que falta.  Es preferible terminar la esencia del proyecto a arriesgarlo por algo tal vez no tan relevante.
  3. Si todo el proyecto o las funcionalidades más importantes están basados en una herramienta o tecnología difícil de usar en la que ningún miembro del equipo tiene conocimiento alguno, pues están en el proyecto equivocado.