viernes, marzo 27, 2009

Si no estas usando un framework...

Si no estas usando un framework para desarrollar software, probablemente estés re-inventando la rueda. La única validez que tiene el proceso de "re-inventar la rueda" es para conocer como funciona. Pero si te están pidiendo elaborar un sistema realmente amplio para una empresa, con una cobertura del 70% de las operaciones, y esa empresa NO se dedica a realizar software... entonces es una seria estupidez desarrollar software sin un framework.

"Cuidad, si re-inventas la rueda, podrías terminar así..."

Un framework, es una estructura de soporte definida mediante la cual, se desarrolla y organiza lógicamente una pieza de software. Entonces, el programa, modulo o sistema en cuestión, se apoya en un framework (en el marco de trabajo) para ser desarrollado. Un framework incluirá soporte para generar programas, una serie de librerías organizadas en módulos lógicos, y un lenguaje (que se ejecuta en una maquina virtual usualmente) para ayudar a desarrollar y unificar los módulos que conformen el proyecto.
El uso de un framework, es tan obligatorio en un proyecto de grandes magnitudes, como lo son las típicas practicas de desarrollo de software:
Para los estudiantes, o novatos en el tema, permitanme dar un sencillo ejemplo:
Imaginemos por un breve momento, que se quiere construir (de acuerdo a un plano) una casa de dos plantas, para tres personas, con cochera y jardín.
Este es el problema:
construir la casa de acuerdo a las especificaciones (del plano), construirla en un tiempo planificado y con la mayor eficiencia posible.
Bien, hay un par de caminos que podemos tomar, el primero consiste en:
1. Comprar ladrillos, cemento, arena, pintura, tejas, piso cerámico, defensas, hierro, contratar mano de obra calificada, comenzar la construcción....

"Niiiiceee...."

Al menos, eso es lo lógico, ¿no? Son los pasos "normales", lo "sano".
La misma lógica es aplicable al mundo del software.... sin embargo, existen personas que rechazan esta "linea de pensamiento" y cometen errores que en el contexto del ejemplo anterior, seria:

2. Construir la casa, desde CERO (literalmente), de manera que vamos a inventar nuestro propio cemento, pintura, techo, defensas, pisos. Vamos a usar herramientas que no estamos seguros si las vamos a aprovechar y vamos a gastar en cosas completamente innecesarias... como... flamingos rosados de mármol tallados a mano importados de la India para el jardín (wtf?).

"NOT so nice. NOT AT ALL."

Y para colmo, creen que se puede realizar la casa, en el mismo tiempo que lo haría de la manera "normal". Se que para muchos lectores, esto suena ridículo, ¡¿verdad?! suena muy ridículo. Es más, seria increíble pensar, que alguien proponga soluciones así.... pero les tengo una noticia...
Este es el caso que sucede SUCEDE en las empresas, y también SUCEDE en los equipos de desarrollo.
Casi a diario, se esta perpetrando este crimen. No solo es una perdida de tiempo, sino que también es un insulto al desarrollador de software que si tiene buenas practicas (o que intenta tenerlas). ¿Saben que es lo peor? muchos cometen el error de creer que con solo usar Java o .NET (y solamente eso), ya están usando un framework suficiente para hacer un RIA (Rich Internet Application) en 3 meses. Pues déjenme decirle, que si ese fuera el caso, no existiría Spring, Struts, IceFaces, MyFaces, ASP.NET MVC, Adobe Flex, RoR, Etc...
Lo terrible es que este suceso se sigue perpetrando, y es por simple ignorancia...

"¡Que pena ser ignorante!"

Empresas, por que rayos ¿no capacitan a sus gerentes de informática?, ¿a sus arquitectos de software?, ¿a sus team leaders?, ¿Por que no escuchan las voces de los programadores, que de cara a semejantes atrocidades, alzan la voz inmediatamente y proponen el cambio?
Ya lo dije antes, pero no me molesta volverlo a repetir...
"si un equipo de desarrollo, sumergido hasta el cuello de dificultades técnicas, pretende producir software: simplemente vamos a obtener software que es REFLEJO de las dificultades, problemas, ignorancia, malos requerimientos y mala administración en los que se vio envuelto el mismo".
Instruyace, no deje de leer, no se estanque, procure estar a la par (o solo un centímetro atrás) de la tecnología, y procure, sobre todas las cosas, escuchar a sus colegas, pero a los que saben.

Pero sobre todas las cosas, por favor, si no estas usando un framework.... ya es hora de que comience a usar uno.

¿Y tu, qué frameworks usas?

Sunsetting Sr. Byte.

El Sr. Byte ha estado más de 5 años inactivo. Digamos que estaba en " code freeze ". Pero ahora es el último release. Quizas no...