Saturday, August 19, 2006

Que son Software Factories?

Un "nuevo" paradigma de desarrollo de software. El concepto de Software Factories se refiere en pocas palabras a la Industrializacion del Desarrollo de Software. Muchos desarrolladores construyen sus aplicaciones con la idea erronea de que es la primera en su tipo. Apoco no? jajaj.

Un Software Factory basicamente es una linea de productos de software que configura algunas herramientas de desarrollo extendibles tal como es el caso de Visual Studio con DSLs, patrones, frameworks y guias, basadas en "recetas" para la construccion de tipos especificos de aplicaciones.

Como un ejemplo tenemos MCSF (Mobile Client Software Factories) la cual cuenta con patrones, instrucciones paso a paso, How to's, una aplicacion de ejemplo con codigo fuente, documentacion de la arquitectura y application blocks, ademas de un Guidance Automation toolkit el cual automatiza las tareas mas comunes al desarrollar aplicaciones moviles en Visual Studio. De esta manera, los arquitectos pueden utilizar esta propuesta para crear una arquitectura base para su aplicacion, de acuerdo a lo que dice microsoft y despues dejar que los desarrolladores utilicen esta arquitectura base para crear las apliaciones de una manera agil y predecible.

Con MCSF, tanto arquitectos como desarrolladores pueden incorporar muchas de las practicas y patrones ya probados en el desarrollo para moviles.

Beneficios de utilizar Software Factories:

Arranque agil: Ya que provee a los arquitectos y desarrolladores una forma efectiva de crear una linea base inicial de alta calidad para sus soluciones. Esta linea base incluiria codigo y patrones que son tipicamente descubiertos en las fases de incepcion y elaboracion de un proyecto, asi que con un poco de sentido de logica sabemos que tendra un nivel de madurez mucho mayor a una aplicacion desarrollada sin una guia o codigo base.

Reduccion de Riesgos: Esta etapa creo que es a veces la que nos pega en tiempos en desarrollo de proyectos. A quien no le ha sucedido que ha tenido que desarrollar en un campo en el que jamas habia imaginado? Pues creo que a todos nos pasa. Y si queremos que el proyecto sea exitoso hay que realizar investigaciones, pruebas y cosas como administracion y control de riesgos. (Esto deja abierto el tema para un proximo post de Moprosoft o CMMI). Pero el hecho de tener esta linea base la cual nos proveen las factories ayudan a mitigar estos riesgos.

Mayor calidad: Debido que nos provee de componentes reusables y guias que ya se han probado en este caso directamente por gente de microsoft, estamos seguros de que existe un alto nivel de calidad. O conocen a algun cliente a quien no le importe que el producto sea de buena calidad?.

Mayor Productividad. En el caso en el que incluya una serie de herramientas que automaticen las tareas mas comunes dentro del mismo IDE de desarrollo, por supuesto que hara las cosas mas faciles. Para el caso de MCSF la creacion de vistas, presenters, controllers con solo dos clicks (uno derecho y uno izquierdo jaja) del mouse. Despues de haber hecho todo esto a pie, creanme que es un alivio poder realizarlo asi.

Facil de adoptar: Esta abierto, es customizable, arquitectos y lideres de desarrollo pueden meterle mano para que cumpla con necesidades especificas ayudados de la completa documentacion que lo acompania.

Que les parece? mas o menos se entendio? Van a seguir programando a ciegas o van a empezar a buscar su factory hasta para el hello world? Ahi se los dejo de tarea.

Saludos.

Por cierto, a quien ayude este post me gustaria que dejara algun comentario incite a seguir con la motivacion de escribir este tipo de posts. Nada satisface mas que 1 hora y media de mi vida sirvio para algo jajajaja. :)

1 Comments:

At 4:36 PM, Anonymous Anonymous said...

Jaime. Efectivamente como lo mencionas el tema de las fabricas de software tiene inumerables ventajas, en particular para las empresas de tecnologia que normalmente desarrollan soluciones especificas para clientes.

Sin embargo no esta ausente de dificultades el implementar una fabrica de software. Por la experiencia que tengo en el tema(que algo es, pero no tanto) la principal dificultad tiene que ver con 2 temas:

El primero es cultural. No de buenas a primeras, programadores y arquitectos quedran entrar en un modelo de obreros de la tecnologia (Que es la forma negativa de ver el tema). Y segundo para implementar una fabrica de software que se justifique economicamente, requieres de un volumen continuo y creciente de requerimientos de construccion. Que es mas una dificultad para el area comercial que para el area de operaciones de una fabrica de software.

Con todo es una opcion de moda en los ultimas aƱos, y que cuando funciona da muy buenos resultados.

Saludos Cordiales
Javier Urrutia
http://MisBytes.wordpress.com

 

Post a Comment

<< Home