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.

jueves, 16 de febrero de 2012

Gamestorming

Existen algunas metodologías que encuentro geniales, una de ellas es presentada en el libro Gamestorming que conocí gracias a mi amigo @lcruz, este presenta de forma fácil como usar los juegos para buscar la innovación. En el libro podemos ver, que los negocios estan construidos en base a objetivos y estos implican moverse desde un punto en A a uno en B (obvio).

El espacio entre estos puntos (A y B) se llama challange space. En los negocios siempre podemos definir claramente el punto B. No obstante cuando hablamos de innovación, no siempre es posible determinar el punto específico al que se puede llegar, un ejemplo claro es el viaje a la Luna. En este challange space las reglas aparecen a medida que el juego se desarrolla, el objetivo no está claro al principio, como ejemplo puedo decir que un día fui a buscar a mi hija al jardin y fue asombroso ver que jugaban a las escondidas de una forma totalmente nueva, inventaron ellos mismos sus reglas. En el libro se presenta que los objetivos de esta busqueda de ideas innovadoras son prometedores pero difusos y esta forma deactuar se parace mucho a la manera en como los niños inventan sus juegos.

En Gamestorming, los objetivos difusos deben ser:

1.- Emocionales, para motivar pasión y energia.

2.- Sensoriales, que se representan en dibujos o modelos fisicos.

3.- Progresivos, para ajustarlos en el proceso.

Es un excelente libro para entender el proceso de generación de ideas innovadoras. como dice @rpardo lleno de sabiduría, leánlo!