Monday, June 23, 2008

Empezando a practicar con Spring

Hace un año y medio empezaba a leer acerca de Spring, desde entonces estoy convencido de que es un framework que debo usar en mis proyectos ya que facilita en gran medida el desarrollo de aplicaciones.

Inyección de dependencias (DI ó Dependency Injection) y AOP (Aspect Object Programming) son su core. Este par de conceptos llevados a la práctica permite tener aplicaciones con bajo acoplamiento.

Con DI es posible tener código (clases) totalmente agonósticas de sus dependencias, de modo que tales dependencias les son dadas por el contenedor ligero de Spring, de acuerdo a la configuración hecha a través de un archivo XML (típicamente). Con esto, con solo cambiar la configuración en dicho archivo es posible inyectar dependencias diferentes.

Con AOP se obtiene también desacoplamiento, pero diferente a DI. AOP permite agregar funcionalidad a nuestro código en tiempo de ejecución. Es posible, por ejemplo, establecer el conjunto de métodos que podrán demarcar una transacción sin que la clase contenedora de tales métodos se entere de que tendrá esa funcionalidad. Este "aumento" en la funcionalidad para una clase dada es conocido como aspecto. Así, otras responsabilidades pueden ser manejadas como aspectos, típicamente aquellas que se presentan en más de una capa de la aplicación, conocidas como crosscutting concerns.

Con Spring tendremos aplicaciones que serán mucho mas fáciles de probar y mantener.

Tal está siendo el éxito de Spring que ya se puede considerar como la plataforma tecnolólogica de facto en el desarrollo empresarial con Java.

Desarrollando ágil

Durante el tiempo que he trabajado en Softtek, he estado involucrado en proyectos donde se han usado diferentes procesos de desarrollo de software. Tales procesos han ido desde el clásico y tradicional Cascada, Cascada "rupizado", RUP y un proceso de Softtek llamado PDSS (Process Development Software Softtek) que recoge el aprendizaje en el desarrollo de software que Softtek ha tenido durante los más de 25 años que la organización lleva de vida.

He participado en dos proyectos donde se usó el PDSS. No hay duda que el camino puede ser más sencillo (y divertido). Es tiempo ya de empezar a explorar las metodologías ágiles.

Organizaciones como Softtek deben de voltear a ver a los procesos ágiles. El mercado es muy competido y aquellas organizaciones que sean capaces de desarrollar sus productos de manera expedita y con calidad, tendrán mayores posibilidades de crecer más y más rápido.

Por tanto, mi interés ahora es empezar una jornada que de entrada creo será muy interesante, excitante y de mucho aprendizaje. El primer paso lo pienso dar de la mano de Tom y Mary Poppendieck, acabo de ordenar su libro: Implementing Lean Software Development: From Concept to Cash. Ahora que voy a mudarme al centro de desarrollo de Aguascalientes seguramente habrá oportunidad de llevar a la práctica algo de lo que para entonces ya haya leído. Seguiré contando...