
Creo que uno de los errores más frecuentes en el desarrollo de software es establecer suposiciones basadas en corazonadas más que en hechos comprobables y reales - incluso la teoría puede no ser aplicable en la práctica.
Hace algunos años (aproximadamente en el 2000 - tempus fugit), mientras trabajaba micro empresa local como el "gerente de desarrollo" (aunque realmente era el gerente de una oficina vacía), fui encargado de diseñar y desarrollar un aplicación para el llenado de formatos oficiales en oficinas de inspección fitozoosanitarias. Posteriormente esta información capturada serviría para emitir todo tipo de reportes y concentrados, útiles para tomar decisiones e incluso evitar contagio de enfermedades en ganado.
En teoría (incluso legalmente) existía un documento "llave" con el cual siempre estaría presente, así que todo el sistema fue centrado en este pequeño documento (una guía de transporte zoosanitaria - todavía puedo recordar el nombre).
Como toda historia, la mía tiene drama. Al terminar el sistema, instalarlo en algunas casetas "piloto" y estar detrás de la persona que lo iba a usar surgió el "pequeño" detalle que algunas veces simple y sencillamente no se capturaba este pequeño documento clave (he olvidado el por qué).
Y para hacer las cosas más difíciles, tuvimos la grandiosa idea de emitir números de serie "falsos" para un documento clave no capturado. OK - la captura funcionaba de maravilla. Pero posteriormente, y tal como usted, amable lector lo podrá suponer, todos nuestros maravillosos reportes y concentrados simple y sencillamente no "cuadraban".
Después de meses de hackeo, logramos tener una versión funcional. Bastante parchada por cierto. El código era horrible (de hecho creo que debería de hablar después del hecho de atribuirle adjetivos tan subjetivos a algo tan exacto e intangible como es el software).
Finalmente, mi historia tiene un final feliz. Inicié el código desde cero. Haciéndolo más eficiente, con una mejor GUI, y sobre todos eliminé a esas horribles dependencias. Después de sesiones maratónicas de desarrollo (que creo que no podría repetir, a estas alturas del partido). La nueva versión del sistema tuvo una excelente aceptación.
Mi enseñanza fue que si por azares del destino cometes un error de diseño grave, es necesario encontrar una gran solución, acorde al tamaño del problema.
Saludos a Edgard, donde quiera que este ahora, digno colaborador mio en ese entonces y gran amigo.
1 comentarios:
Bueno en una pelicula dijeron una frase que se me hace muy cierta "La suposicion es la madre del fracaso" es increible como alguien que se dice saber del tema nos pasa los datos y nos ponemos a programar y crear pantallas y demas, despues, una triste realidad, una parte medular del sistema tiene una falla, si es necesario hacer todo de nuevo, hay que hacerlo, no queda de otra, pero tambien como desarrolladores tenemos la culpa, a veces confiamos demasiado en una sola persona, necesitamos pedir TODAS las opiniones a TODAS las personas involucradas, tambien debemos ser concientes como se hacen las cosas al momento del desarrollo, hay un excelente comentario acerca de como hacer las cosas en esta direccion:
http://www.solucionesvulcano.com/blog/2005/09/paafuera-y-no-paadentro.html
son las cosas que todo mundo sabemos pero nadie aplicamos!
Saludos Colega! un excelente año!
Publicar un comentario