lunes, 10 de septiembre de 2012

El desarrollo de software que defiendo.


Técnica y Gestión. Para mí la base de la construcción de software reside en estos dos conceptos. Aplícalos bien y obtendrás buenos resultados en tus proyectos. 

A todos nos gustan los detalles individuales, pero el desarrollo de software es un trabajo de equipo.¿Qué es la técnica? Analizar, diseñar, codificar, probar, integrar, conocer herramientas de desarrollo, conocer bien como funcionan los entornos de desarrollo...¿Y la gestión? Aquellos momentos de organización del trabajo en equipo que, de tenerlos te dan la ventaja. Esos momentos están ahí, pero tienes que creártelos. Para ellos tienes que dominar la técnica, la gestión de las personas, el proceso de desarrollo y conocer a tu cliente.  ¿Tantas cosas? Son un todo. En el fondo, una cosa lleva a la otra. Sumadas y bien aplicadas darán con el objetivo final: "Generar un flujo de trabajo constante" en el equipo de proyecto para construir un buen software que solucione los problemas del cliente. Para ello, el trabajo en equipo, mas que los nombres, es fundamental.

Dar continuidad al flujo de trabajo del equipo de proyecto es tarea de todos. Un ingeniero junior puede acudir a un líder técnico o a un arquitecto de software sin la necesidad de esperar al jefe de proyecto y así continuar con su tarea, para esto el proceso de desarrollo y los roles de las personas del equipo deben ser claros. Aplicar el concepto de Scrum es muy útil, dado que existen reuniones diarias de solo 15 minutos que ayudan a mantener flujo de trabajo estable en el equipo de proyecto.

Otro ejemplo para entender la importancia de mantener un flujo de trabajo constante, estamos en etapa de certificación de nuestro cliente y sabemos que dentro de muy poco tiempo, comenzarán a llegar los retornos del cliente, lo primero es crear una cuenta de correo común para todo el equipo de trabajo, a esta cuenta llegarán los retornos del cliente y no directamente al jefe de proyecto, esto lo hacemos con el fin de evitar provocar un cuello de botella y asegurarnos que los ingenieros de software comenzarán a resolver los problemas a la brevedad.


La gestión de personas es fundamental, es necesario conocer bien al equipo de proyecto, ¿que les gusta hacer?, ¿cuál es su visión del software?, ¿que opinan sobre tal tecnología?, etc. Esto es de suma importancia por que el software lo desarrollan las personas, hay que saber tratarlas y entenderlas para lograr generar una comunicación realmente efectiva y fluida. No sacamos nada con preguntar al ingeniero de software ¿cómo se encuentra? si no logro entender que su respuesta afectará directamente la planificación del proyecto.


Bueno y para finalizar debo dejar en claro que para escribir este artículo me base en una entrevista realizada a Johan Cruyff el año 2003 en La Vanguardia.