archivo

Archivos diarios: enero 31, 2012

Es frecuente encontrarnos en proyectos de desarrollo de software con obstáculos que de alguna y otra forma impiden la correcta ejecución del mismo.

Algunos de ellos se pueden sortear o solventar de manera más o menos rápida pero existen otros que persisten en el proyecto y cuya solución requiere en muchos casos de bastante diplomacia, en otros de la intervención de niveles superiores en la organización.

En otros casos una solución no es viable, ya sea por el tiempo o esfuerzo que requeriría, porque otra parte implicada no quiere que haya solución, etc…

Algunos ejemplos de obstáculos que pueden complicar el desarrollo de un proyecto y soluciones que se suelen aplicar:

– El área usuaria no participa, no lo hace en el tiempo que sería necesario o no terminan de implicarse.

Una solución que se suele aplicar es que todos los demás tiren para adelante con lo que hay.

– Se necesita la integración con un tercer sistema y los responsables del mismo no quieren proporcionar la interfaz de comunicación necesaria o no lo consideran prioritario y lo planifican en un plazo no compatible con los plazos en el proyecto.

En este caso salvo que sea una integración imprescindible, en cuyo caso bloquearía el proyecto, se obvia la funcionalidad que puede proporcionar ese componente o se reinventa la rueda.

¿Cuándo tenemos este antipatrón? Pues cuando ante un problema de estas características se decide rodearlo sin intentar encontrar una solución.

Claro que habrá veces que no sea posible (aunque si el inconveniente es grave, habría que pensarse muy seriamente dar por finalizado el proyecto y resolver el contrato, antes de que todos pierdan más dinero) y no tendremos más remedio que buscar una alternativa que permita continuar los trabajos. Procura que todos estos problemas sean conocidos cuanto antes a nivel de dirección y que tengan constancia escrita.

Pero en muchos casos llegar a terminar un proyecto a través de esa alternativa puede requerir mucho esfuerzo (y disgustos), no solo por el necesario para sortear el obstáculo y buscar la solución tal vez por un camino más largo, sino porque el resultado final puede que se aleje de las expectativas del usuario.

Enfoque y perspectiva o lo que es lo mismo dónde estamos aplicando nuestro esfuerzo y hacia donde queremos ir teniendo en cuenta el contexto en el que nos encontramos.

En el momento en que el enfoque no está orientado según la perspectiva o la misma no es adecuada (pueden existir diferentes causas: no se tiene en cuenta las expectativas del cliente o de los usuarios o no se han comprendido, no se interpreta correctamente o se ignora el contexto del proyecto, clientes o usuarios presionan para conseguir ciertos hitos en plazos muy complicados de conseguir, etc…), estamos llevando el proyecto hacia un final alternativo que no es válido (de ahí el nombre del antipatrón), ya que se aleja de los objetivos y expectativas reales.

Las circunstancias que pueden dar lugar a este antipatrón son diferentes, como distintas son también sus consecuencias (si bien, tienen en común el hecho de que llegará un punto donde no se verá el final del proyecto, no tanto porque esté lejos sino por el esfuerzo dedicado a llegar a supuestos finales que no lo eran):

– No cumplir con las expectativas del cliente o de los usuarios, trae problemas sobre todo si se ha actuado de manera irresponsable (acotación no pactada del alcance, calidad del software deficiente, múltiples bugs, etc…), por lo que la entrega del producto no es el final, ahora tocará una larga travesía en el desierto haciendo todo aquello que no se hizo cuando se debía.

– Ignorar el contexto o circunstancias que rodean al proyecto puede dar lugar a decisiones incorrectas o falsas expectativas del desarrollador. Si no te quieres dar cuenta de lo que hay, si no reaccionas, probablemente lleves al proyecto a un lugar equivocado.

– El cortoplacismo es agotador, hace perder cualquier perspectiva (para recoger en el futuro hay que sembrar en el presente y eso es complicado cuando todas tu esfuerzo está dirigido a cumplir con hitos intermedios) y crea la sensación de que nunca se va a llegar al final porque por cada obstáculo que se supera llega a continuación otro igual o peor.