Los que me seguís en Twitter habréis visto mis comentarios de los últimos días, ahora es el momento de detallarlo un poco más.
Una compañía del grupo (pequeña, 20-30 usuarios) de la que nos desvinculamos hace unos meses ha realizado el arranque de un sistema. Durante el desarrollo nuestro departamento había dado soporte en cuanto a arquitectura técnica (comunicaciones, servidores) y entorno de desarrollo (lenguajes, estándares de programación, modelo de datos) pero los sistemas (uno web y otro local) habían sido desarrollado por un proveedor externo y por un desarrollador propio de esa compañía. Lo último que sabíamos nosotros, justo antes de la venta, es que la infraestructura y la aplicación externa funcionaban en las pruebas realizadas y se estaba completando el desarrollo interno.
El lunes me llama el director general de esa compañía para contarme que el arranque había sido un desastre y que habían tenido que volver a las aplicaciones anteriores. Y que quiere un informe de qué habría que hacer para volver a poner en marcha esos sistemas.
Un par de días de entrevista y revisión de datos y un resultado desolador. Errores de programa imposibles de no detectar por el programador o el usuario en una prueba medianamente rigurosa, inconsistencias de datos entre aplicaciones y algunas carencias funcionales, tampoco hubo soporte durante el arranque: el desarrollador de vacaciones y el “padrino ” de la aplicación, lo mismo. Así, las incidencias se acumularon hasta hacer imposible el trabajo.
Me parece de una irresponsabilidad total de todas las partes lo sucedido: ni el desarrollador ni el “propietario” de la aplicación pueden irse de vacaciones el día del arranque, no se puede arrancar si los usuarios no han probado de forma medianamente seria, hay que verificar las conversiones por si se ha actualizado alguno de los sistemas…
Si la dirección no da a estas cosas la importancia que tiene, implicando a los usuarios, planificando las fechas de arranque con los recursos disponibles (no solo para soporte, también para la prueba de usuario que no se hizo porque “estábamos bajo mínimos de personal”). Incluso nos deberían haber implicado a nosotros, que conocíamos parte del sistema, aunque luego les facturaramos las horas (que no lo habríamos hecho). El analista-programador no puede limitar su prueba a qué no de errores y a que "el número de registros cuadre entre las aplicaciones" (explicado por él, literalmente).
Y ahora tengo que hacer un informe que trascenderá del director general al consejo. No sé como explicar lo que se ha hecho mal sin ganarme enemigos de por vida. La receta es de “primero de sistemas” (por favor, sin polémicas sobre telecos, informáticos o asimilados): prueba unitaria, integrada, prueba de usuario, migración y revisión de datos, paralelo y arranque real (con soporte del equipo de desarrollo).
Pero sobre todo, si realmente el arranque de un sistema que soporta la operativa de la compañía es importante (que lo parece), hay que dedicar tiempo y recursos a que salga bien. No se puede tirar adelante y esperar a ver que pasa. Y si en la filosofía de la compañía no está eso de planificar, ni sistemas, ni nada arrancará de forma correcta. Y, por desgracia, esto es aplicable a una gran parte de nuestro tejido empresarial.

24 ago 2007 | 07:41 AM
Desgraciadamente en un alto porcentaje de las ocasiones las cosas se hacen de esta forma.
Sin planificación, sin análisis, en definitiva, sin implicación de todos los interesados (a veces parece que el único interesado es el desarrollador).
Lo de irse de vacaciones el día del arranque me recuerdo un proyecto de hace unos años en que el jefe de proyecto/interlocutor con el cliente se fue de vacaciones (sin decir nada a nadie) el día en que procedíamos a sustituir una aplicación por otra nueva.
El grado de "profesionalidad" de algunos tiende a ser nulo ...
Que os sea leve.
24 ago 2007 | 08:34 AM
Difícil papeleta te ha tocado. Informar de los problemas sin levantar ampollas.
Yo nunca he sido demasiado político, tiendo a mostrar la realidad en forma cruda, o al menos mi visión de ella, y eso a veces levanta ampollas, y grandes.
Este video es un buen ejemplo de cultura errónea, pero que desgraciadamente aún existe.
http://www.youtube.com/watch?v=LYlhCGng5Mk
Un saludo y suerte
24 ago 2007 | 08:48 AM
Pues voy a salir en apoyo del desarrollador y del "padrino".
He vivido situaciones similares y no precisamente por falta de profesionalidad, sino porque los directores de arriba con sus másters y que tanto saben (luego no saben ni cómo funciona su departamento porque no se ve desde su mesa de despacho) te obligan a desarrollar el proyecto en contra de tus criterios, los criterios de ingeniería que sabes que son correctos, pero claro, "ellos saben más" y "no me discutas".
¿ Y entonces que haces ? ¿ Ir de Cid Campeador ? ¿ Es que la empresa es tuya ? Además ni te lo pagan ni te lo agradecen, así que quizá la mejor solución es dejar que el proyecto se estrelle para que se le preste la debida atención.
En España no se hace nada hasta que no ocurre un desastre, así que mejor que ocurra porque de lo contrario el desarrollador y el "padrino" estarán de pringados toda la vida, mal vistos, mal pagados y ni agradecidos.
24 ago 2007 | 09:25 AM
Desde luego, parece que hay palos para todos. Yo me centraría en lo que hay que hacer para arrancar (que seguramente sera repetir los procesos preestablecidos) y dejar de lado las culpas.
Casi siempre lo que hace falta es alguien que sepa dirigir la implantación del proyecto y tenga una imagen global de como va. Estoy seguro que el "Padrino", si esa era su funcion, sabía perfectamente que la puesta en marcha iba a ser un autentico fracaso.
24 ago 2007 | 11:52 AM
Pues yo creo que nunca debemos dejar que un proyecto se estrelle como dice alg.
Una de las cosas que veo que a la mayoría de la gente le cuesta asumir, o ni se lo plantean, es la fase de "asumir perdidas" que se da en muchos proyectos.
Si te ponen un plazo político, o si no consigues los recursos prometidos para el proyecto, o ........ pues pasa lo de siempre, no se cumplen fechas. Antes de llagar a eso hay que plantearse que perdidas se asumen.
Quito funcionalidad y llego a tiempo, me paso y cuesta más caro .....
Por mucho que duela y grite quien grite, o lo pones a tiempo sobre la mesa, o te estalla en la cara al final. Lo que no puedes hacer es entregar algo que "estalla", y luego venir diciendo bla bla bla. Para mi no hay excusas, hay problemas y soluciones para ellos, pero hay que afrontarlos a tiempo, y mostrarlos, nunca ocultarlos, gestión de riesgos que le llaman.
Me gustaría saber el porcentaje de nosotros que en la planificación inicial hace una evaluación de posibles riesgos y sus medidas correctoras.
25 ago 2007 | 11:09 AM
Pues pienso como alg, no quiero decir que en este caso el desarrollador y el propietario sean inocentes o culpables, sino que en demasiadas ocasiones he visto cómo simplemente no hay análisis o los detalles de alto nivel, el desarrollo se le encarga a una empresa que es del cuñado de uno de los jefes y cuando la cosa tiene que instalarse se busca al responsable de informática para que se haga cargo de la instalación y pasarle el muerto.
¿ Errores ? Muchísismos:
- mala gestión de la subcontratación
- se ignora el criterio, seguramente formado, del/los responsable de informática
- el análisis se hace al estilo "Benito y CIA" sin asignar los debidos responsables internos que intervengan en el proyecto
- no se implica gente interna en el el seguimiento y control del desarrollo
- al final se busca al muerto de hambre para pasarle el marrón y que se busque la vida
En lo que decís veo que tenéis razón siempre que se trate de una empresa donde haya interés por poner los proyectos en marcha y se valore la inciativa y la implicación de la gente en los proyectos.
Ahora, en una empresa donde no se valore la iniciativa y las aportaciones de la gente, la gente vaya a lo mínimo, los directores a eludir responsabilidades y echarle al culpa al director de IT (como siempre), el director de IT valore cobrar sus objetivos por encima de cómo salga el proyecto para ponerse la medalla y escurrir el bulto ... entiendo que pasen estas cosas.
Seguramente el desarrollador y el propietario son los más inocentes en este caso, he visto demasiados casos de este tipo para creer que sean tan incompetentes, y más los dos al mismo tiempo.
¿ No creéis que algo huele a quemado y han salido corriendo ?
25 ago 2007 | 12:06 PM
Pues yo, ademas de no romper lanzas en favor de nadie, aprovecho para recordar el post anterior en el que se hablaba de metodologías... con una buena metodología de pruebas (testabilidad del software, CMMI, verificacion y validacion, etc) no se hubiera ni si quiera intentado hacer un paso a producción sin tener las pruebas realizadas.
Aqui no sólo falla la calidad del desarrollo, sino tambien la precaucion debida en la gestion del cambio, los planes de marcha atrás, los planes de puesta en producción y me juego la mano derecha a que no habia un plan de explotacion preparado para el dia siguiente a la puesta en produccion, asi que los pobres de "explotacion", "operaciones" o "sistemas" o como quiera que se llame el área que se iba a encargar de que ese nuevo sistema corriera bien durante los proximos 10 años se iban a comer un marron de consideracion.
Para eso sirven los estandares...
¡Saludos y buena suerte!
Antonio
25 ago 2007 | 11:32 PM
¿ningún usuario clave estuvo implicado en las pruebas previas al arranque? - eso suele evitar la mayoría de los problemas... el que los usuarios metan las zarpas es la mejor garantía de que se va a probar... si no hay metodología al menos eso.
... ¿hubo pruebas previas al arranque?
Vaya papeleta que tienes Rafa... no hace falta que te lo diga pero es una reflexión en voz alta: es muy diferente el entorno metodológico de la empresa final del entorno de la empresa de consultoría.
26 ago 2007 | 10:34 AM
La verdad es que todo lo que habéis apuntado tiene más sentido que lo que se hizo. Como dice Luis, no comparto lo de que a veces hay que dejar que ese estrelle el proyecto. Aunque la empresa no es nuestra, la responsabilidad de hacer bien el trabajo, si.
En entornos pequeños, es muy difícil poder aplicar de forma estricta jetodologías. Pero me quedo con el comentario de Luis (tic616): "¿ningún usuario clave estuvo implicado en las pruebas previas al arranque? - eso suele evitar la mayoría de los problemas". Si el proyecto es solo de TI y no de TI CON los usuarios, no hay metodología que lo ampare. De hecho, para mi elprincipal problema es la falta de un responsable funcional claro implicado con el proyecto.
4 sep 2007 | 12:01 PM
Me parecen muy apropiados la mayoría de comentarios y, como dice Antonio, está claro que aqui ha fallado todo. Aunque para mi la figura más importante es la del "padrino"... si para comenzar este tio es el que se va de vacaciones el dia del arranque, eso dice mucho sobre su implicación, apaga y vámonos...
Que te sea leve la redacción del informe, aunque supongo que a estas alturas ya estará hecho y presentado.
Saludos!
5 sep 2007 | 11:31 PM
JotaTe, como se suele decir, la conversación continua...informe presentado, plan de acción aprobado por todos y, a los cuatro días, ya se ha vuelto a incumplir.
6 sep 2007 | 01:21 PM
Nada nuevo bajo el sol. Desgraciadamente y en la mayoría de los casos, lo que hubiera sido notícia es que se estuviera cumpliendo el plan acordado...
Saludos!