Desarrollo de software. ¿Dónde quedaron las personas?

El factor humano en el desarrollo de software es esencial y marca la diferencia. Son personas las que desarrollan, son personas las que comunican las especificaciones, son personas los usuarios, son personas, en definitiva, todos los implicados en el proyecto.

Cualquier estrategia de desarrollo que no tenga en cuenta esto no está siendo realista.

Puedes intentar hacer repetibles determinados aspectos del proceso de desarrollo con el objeto de armonizar ciertas prácticas o ciertos elementos de control por parte de niveles superiores de la organización. Este proceso en background resulta beneficioso porque la organización debe tener una imagen general de cómo se trabaja y de los resultados que se van obteniendo. No soy partidario de exterminar los procesos sino de que los mismos se conviertan en herramientas para los desarrolladores y no al revés (y esto puede ser compatible con el deseo de la organización de homogeneizar ciertos aspectos de su funcionamiento).

Ahora bien, tratar de encorsetar todos los proyectos bajo un mismo paraguas metodológico limita los resultados, nos convierte en cumplidores de la metodología (¿Qué nos piden 10 items y de esta forma? Pues nada aquí los tienes, otra cosa es que sirvan realmente para algo?) e impactan en el resultado porque hay esfuerzo que de manera innecesaria se distrae en tareas que no aportan nada y más a largo plazo porque se habrá creado una excusa perfecta para justificar proyectos que no han ido bien: «pues yo he seguido toda la metodología paso a paso…».

Está demostrado y no hay que recurrir a estudios de prestigiosas consultoras, que imponer tallas únicas lejos de solucionar los problemas del desarrollo de software los agudiza. Lo peor de todo se produce cuando fallando los procesos se sigue pensando que el problema se encuentra en que el proceso no tiene suficiente nivel de detalle y así sucesivamente, haciendo cada vez más pesados los procesos.

Hay que entender que una organización quiera conseguir una predecibilidad en los resultados que sea escalable al resto de proyectos de misma: «si aplico esta estrategia probablemente la mayoría de los proyectos conseguirán buenos resultados», y de ahí la intención de conseguir esa repetibilidad a través de los procesos.

De esta forma el factor humano sería secundario, solo son piezas de una maquinaria, totalmente prescindibles e intercambiables en cada momento, porque se piensa que el valor principal lo aporta el proceso y no las personas.

El factor humano es el más impredecible, a través de procesos detallados se quiere minimizar su impacto, ya que se pretende que las personas sean meros instrumentos de los procesos y no al revés.

Sin embargo el desarrollo de software es el resultado del valor que cada persona aporta al proyecto, de si el responsable funcional colabora o no en el proyecto, de lo claro que tenga o no lo que quiere, de si los desarrolladores entienden bien las especificaciones, de si las llevan adecuadamente a cabo, etc… y todo eso en un contexto donde se interacciona con más personas, en donde las prioridades pueden cambiar, etc… No hay proceso que pueda sustituir ese trabajo, lo más que te podrá decir es que lo plasmes en tal o cual documento, pero eso no asegura, para nada, que el resultado sea de mayor o de menor calidad.

Ahí está la clave, las personas aportan valor al proyecto porque el desarrollo de software requiere un esfuerzo intelectual importante en todas sus áreas y por parte de todas las personas que participen en él. Y no todas las personas son igual de efectivas, impactando de manera muy sensible en los resultados el hecho de si se acierta o no con las personas y el equipo y si el mismo se ha gestionado de manera adecuada durante el proyecto.

Deja un comentario