22 de noviembre de 2010

Cómo NO desarrollar un sistema de información - Parte I

¿Por donde empezar?, esa es la parte difícil porque siempre uno consigue documentación de como hacer las cosas bien, pero es más jodido escribir un manual de como hacer las cosas mal.


Empecemos por el principio (duh), cuando vas a desarrollar un sistema de información tienes que decidir primero la plataforma de desarrollo (obviamente esto es después que uno se reúne con el cliente, y decide que es lo que se quiere hacer, cuanto va a tardar, etc. bla bla bla), en la actualidad hay millones de plataformas de desarrollo, que si usas L(W)AMP (Linux/Windows, Apache, MySQL y PHP) o usas alguna plataforma que use Java, ruby o python, es decir, puedes elegir el que te de la gana, pero si quieres lograr un sistema malo, lo mejor es mezclar 2 ó más plataformas al azar y ver que sucede.

Un buen ejemplo de esto sería usar PHP y Apache para el desarrollo y en algún momento de la etapa de desarrollo decir algo como "Usemos Jasper para sacar los reportes", para el que nunca ha escuchado de Jasper, es un motor de creación de documentos (pdf, excel, word, etc.) escrito en java y que es bastante bueno, pero el punto clave es Java, ¿acaso no estábamos usando PHP?, sí, pero queremos hacer un sistema malo ¿recuerdan?, entonces debemos pensar en una solución en la que ejecutemos código de Java en PHP, ¿se puede hacer? sí, ¿es recomendable/usable/mantenible? ¿no?, perfecto.

Ok, ya tenemos nuestro sistema que usa PHP y Java, pero no suena tan interesante, ¿qué más podríamos mezclar en este caldo de plataformas? ya sé!!!!, .NET, ¿eso es lo más lógico no? así podemos crear un cliente que corra de forma nativa en plataformas windows, ¿pero qué pasa si el cliente cambia su plataforma de trabajo y algún día decide cambiar todas las máquinas de su oficina a Macs o alguna de las miles distribuciones de linux existentes? No importa, eso no va a suceder porque los usuarios son "usuarios sencillos", además si eso pasa les cobramos un poco más en sessiones de entrenamiento para que aprendan a usar el navegador, recuerden que esto empezó como un proyecto en PHP.

¿A qué te refieres con usuarios sencillos?, pues eso, los usuarios son unos animalitos que están en el fondo
de la cadena alimenticia pirámide de conocimiento del frasco, de hecho no tienes que preocuparte de los usuarios, ellos van a usar tu sistema de forma mecánica y nunca NUNCA se les ocurrirá hacer una pregunta difícil en las sesiones de entrenamiento ni pensarán en formas incorrectas o inadecuadas de usar tu sistema, porque los usuarios no piensan por sí mismos y es inconcebible pensar en un usuario que quiera joder la paciencia de forma voluntaria.


Pero todavía falta la base de datos, ¿cuál manejador de bases de datos usamos? hmmmm, postgreSQL, nah, demasiado confiable y es código libre, MySQL, nah, con el rollo de oracle que compró a Sun y todo eso no sentimos confianza, ¿MSSQL Server? es bueno pero no usemos la última versión, usemos la versión del 2000, que no hay nada mejor que usar un software de hace 10 años para crear un sistema actual y que cumpla con los "estándares de la industria".

Ok ya tenemos lo esencial para desarrollar nuestro sistema, ahora instalemos todos los servicios y pongámonos a trabajar, pero para hacerlo interesante, mantengamos control de errores en archivos de texto, no se te ocurra usar algún sistema o servicio de control de errores como bugzilla o trac, no hay nada mejor y ubicuo que una hoja de excel, eso nunca falla.

Continuará.... (espero)

1 comentario:

Miguel dijo...

Buenas,

Me gusta tu articulo, pero hay algo en lo que no estoy de acuerdo. A veces hay proyectos que tienen que ser desarrollados por dos tecnologías diferentes.

Lo correcto, es seleccionar la mejor tecnología.

Saludos.

Publicar un comentario