archivo

Archivos diarios: agosto 20, 2013

Desde la distancia los grandes retos, los proyectos complicados, la competencia de organizaciones más poderosas casi siempre parece insalvable. Incluso cuando estamos inmersos en ellos sigue pesando la imagen que tenemos de ellos, de tal forma que supone una gran resistencia. Después cuando te das cuenta de que realmente puedes hacerle frente, lo mismo es demasiado tarde.

Decía Séneca que :”A algunos se les considera grandes porque también se cuenta el pedestal” y no olvidemos que ese pedestal es el que le ponemos nosotros, porque tendemos a hacer gigantes a los demás mientras, a la vez, nos vamos haciendo más pequeños.

No se trata de pensar que todo es fácil sino de no dar la batalla por perdida antes de empezar a librarla, mejor aprovechar tu tiempo y tu esfuerzo en tratar de que las condiciones de partida sean lo más satisfactorias posibles.

¿Qué después no se consiguen? La magia en el desarrollo de software no existe, hay mejores y peores desarrolladores, mejores o peores circunstancias, pero el proyecto no se hace solo. Una cosa es no sobreestimar nada y otra que no te den lo que necesitas para poder conseguir los objetivos, ahí si que toca pelear y si se consigue la victoria lo será a costa del buen hacer, del trabajo en equipo efectivo y de muchas, muchísimas horas de trabajo.

Hay una diferencia importante entre lo que son las restricciones en el proceso de desarrollo de software (algo inherente por otra parte ya que no todo es posible y siempre tenemos por delante un presupuesto y unos plazos, que aunque sean flexibles, no pueden ser infinitos) y la imposición de requisitos.

Imponer requisitos por parte de desarrolladores a los usuarios, algo que es más frecuente de lo que parece, sobre todo en aquellos casos donde el desarrollador cree conocer o dominar el negocio con el que se está trabajando (es posible que lo domine o que incluso sea un gran experto pero siempre debe tener en cuenta el contexto en que se desarrolla el negocio y esa información solo te la va a dar con precisión el usuario) y que piensa que nadie mejor que él para especificar determinadas funcionalidades del sistema.

A veces se hace porque efectivamente lo cree así y otras porque le conviene que la aplicación tome una determinada deriva.

Es importante trabajar con personas que conozcan el negocio pero la línea de desarrollo del producto debe estar siempre en manos del usuario. El papel del desarrollador en este sentido debe ser aconsejar y poner su conocimiento y experiencias al servicio de los usuarios, informar de las restricciones existentes y gestionar con ellos aquellas que puedan ser flexibles o modificadas.

He leído una cita de Lao-Tsé que viene a sumarse a otras tantas que os he ido comentando en el blog y se basa en la necesidad de reaccionar si se va en la dirección equivocada.

“Si no cambias de dirección, puedes terminar a donde te estás dirigiendo”.

Ese problema ha dado lugar al fracaso de innumerables proyectos de desarrollo de software y el trasfondo real, en la mayoría de los casos es económico. Es decir, unos porque no están dispuestos a pagar más (y lo mismo tienen razón) y otros porque no están dispuestos a perder (más) dinero (y lo mismo también tienen razón).

Por tanto, se tira de contrato o se tira de requisitos y se trata de llegar a una solución que probablemente no sea satisfactoria porque ya se ha detectado que el sentido que ha tomado el proyecto no era el correcto. Parcheando y parcheando se tratará de conseguir algo. Lamentablemente ese algo en muchos casos será un fracaso que terminará costando más dinero que si se hubieran tomado las decisiones en el momento adecuado.

Es mejor reaccionar en el momento adecuado y tratar de buscar una solución real al problema, no una que se sabe de antemano que no va a llevar a ningún sitio.

La efectividad de la reacción será mayor cuanto más nos hayamos anticipado a la ocurrencia del problema, sin embargo, lo importante siempre será la intención de adaptarse al cambio, ya que de esa manera, podremos afrontar el trabajo que se requiere para poner todo en el camino correcto.