Software Factory: Desarrollo de software “industrializado” y a medida

Dedicarse al desarrollo de software para una empresa cuyo ?core? no es precisamente éste, representa, además de un desafío, varias problemáticas. De ahí que la externalización en esta área sea una tendencia fuerte en el mundo corporativo, un escenario donde la Software Factory surge como un modelo de servicios, que apoyado en una estrategia metodológica ya ha madurado por varias décadas en el mundo de la informática y permite cubrir las necesidades de desarrollo a la medida de las compañías.

Publicado el 31 May 2013

ban3

Dedicarse al desarrollo de software para una empresa cuyo “core” no es precisamente éste, representa, además de un desafío, varias problemáticas. De ahí que la externalización en esta área sea una tendencia fuerte en el mundo corporativo, un escenario donde la Software Factory surge como un modelo de servicios, que apoyado en una estrategia metodológica ya ha madurado por varias décadas en el mundo de la informática y permite cubrir las necesidades de desarrollo a la medida de las compañías.

“Para la mayoría de las empresas el desarrollo de software no es el ‘core’ de su negocio, e invertir en buenas prácticas, metodología y en mantener profesionales del área de informática es caro y requiere dedicación”, explica Gastón González, Gerente General de BPMpartners y TecnoProcess.

Y es que una compañía que no se dedica al desarrollo de software, “se ve obligada a desviar su atención, esfuerzo y dedicación en buscar optimizar sus procesos de desarrollo interno v/s poner foco en su ‘core”, comenta Marisela Urzúa, Gerente de Servicios de Mantenimiento y Desarrollo de Aplicaciones de IBM Chile. Así también, agrega la ejecutiva, cuando una empresa busca evolucionar hacia nuevas tecnologías, se le presenta la necesidad de contar con distintas habilidades y conocimientos especializados, encareciendo cualquier iniciativa de este tipo. Sin duda, una necesidad de especializaciones que, finalmente, lo que hace es complejizar el panorama para la empresa y alejarla de su real interés: su foco de negocios.

Además, si el desarrollo no es su orientación, la firma tampoco está preparada para soportar peaks de alta demanda que muchas veces pueden presentarse en relación a las necesidades de la compañía o sus áreas por contar con software a medida. “La empresa no tiene ni la flexibilidad ni el dinamismo para soportar esta situación”, explica Rocco Abiuso, Gerente Unidad Proyectos de In Motion.

Por otra parte, señalan los expertos, cuando el desarrollo se hace de forma interna hay dificultades en cuanto a la especificación de requerimientos y la calidad del software resultante, muchas veces generadas o acrecentadas “por la falta de conocimiento de nuevas tecnologías habilitantes para realizar desarrollos de manera más simple y rápida”, como comenta el ejecutivo de BPMpartners. Esto, agrega, además de la carencia existente en cuanto a metodologías y modelos de buenas prácticas, que requieren una madurez de la organización TI en términos de desarrollo a fin de realizar buenas estimaciones de costos, tiempos y esfuerzo para los desarrollos de software que se enfrentan.

Según los especialistas, también resulta todo un desafío contar con los profesionales TI con los conocimientos y experiencia para afrontar esta tarea, y luego retenerlos, por lo cual suele suceder que muchas veces el conocimiento de un sistema desarrollado radica en la persona que lo construyó y no, como debiera ser, en el proceso de desarrollo de software.

Con tales retos, parece natural que las empresas opten por externalizar este servicio y confiar en un tercero experto el desarrollo de software. Esta necesidad de desarrollos específicos ha generado el posicionamiento del concepto de Software Factory (fábrica de software), un modelo que lleva varias décadas en el mundo TI y cuyo objetivo es dar cobertura a los requerimientos funcionales de cualquier organización a través del desarrollo a medida de software.
 

Gastón González, BPMPARTNERS.

Marisela Urzúa, IBM.

Rocco Abiuso, IN MOTION.

Salvador Gandulfo, LUXFACTA.

“Industrializando” el desarrollo de sistemas

“Una Software Factory es una empresa que desarrolla software a medida a partir de especificaciones que entrega el cliente”, explica el ejecutivo de In Motion. Una definición a la cual la profesional de IBM agrega que “consiste en la implementación de un proceso de desarrollo de software maduro en cada una de las etapas del ciclo de vida (industrialización del proceso de desarrollo), basado en una gestión integral del servicio”. Y esto involucra el uso de mejores prácticas de la industria, así como gestión en base a métricas en pro del monitoreo y la mejora continua del servicio.

Según relata Salvador Gandulfo, Gerente General de Luxfacta Chile, el concepto no es nuevo, data de 1968, cuando Bob Bemer, pionero de la computación, afirmó en el marco del congreso IFIP: “Parece que tenemos pocos entornos específicos (instalaciones de fábrica) para la producción económica de programas…”. Un año después, se crearía la primera fábrica de software: Hitachi Software Works.

De acuerdo al ejecutivo, “se trata de aplicar los procesos de industrialización a la generación de programas, para que éstos puedan ser producidos bajo estándares que permitan mantener un nivel de calidad aceptable”. En otras palabras, se trata de normar el proceso de diseño, desarrollo, pruebas y documentación. “Esto -agrega- trae como consecuencia que el proceso se pueda, entonces, supervisar de manera adecuada, evitando la sensación de ‘caja negra’ que a veces rodea a los proyectos de TI, y a la vez permite encargar el proyecto, o parte del mismo, a otras unidades TI o inclusive a empresas externas”.

Sí, porque la fábrica puede operar tanto dentro como fuera de las instalaciones del cliente. Pero, a juicio de Gastón González, cuando existen organizaciones que toman la decisión de implementar un área propia de desarrollo de software dentro de la organización ven que es una tarea difícil de llevar y a veces los costos superan los presupuestos estimados, llegando a transformarse en verdaderos centros de gastos vistos así por las demás áreas funcionales de la organización, ya que no cumplen lo prometido en tiempo y forma.


“Core” y calidad

Los servicios de una Software Factory normalmente incluyen todas las fases del desarrollo, incluyendo desarrollos a medida y especializados, así como testing, y extendiéndose también a servicios de mantenimiento correctivo, es decir, requerimientos que se originan en problemas y/o errores operacionales de las aplicaciones, y consisten en dar continuidad a la operación y luego analizar la causa raíz para llegar a una solución definitiva; mantenimiento evolutivo, que incluye el desarrollo de requerimientos de mejoras, adaptativos y de tipo normativos y/o legales; y soporte operacional.

Esta forma de trabajo, que es una analogía de los procesos de producción industrial, e involucra el uso de procedimientos estándares y la aplicación de normas de calidad, tiene múltiples ventajas a ojos de los expertos. La principal, enfatiza Marisela Urzúa, es apoyar a las empresas para que mantengan el foco en su “core” de negocio. “Es decir, que los costos de TI estén orientados en obtener un resultado óptimo y no en buscar optimizar un proceso de desarrollo interno, donde claramente no se cuenta con ventajas comparativas”, detalla.

Para los especialistas, la externalización del desarrollo de software en una Software Factory permite lograr una mayor eficiencia en los costos de TI, algo que, según la profesional de IBM, se explica “ya que la madurez del proceso de desarrollo va generando productividad, y ésta se traspasa al cliente”.

“A la larga -según el ejecutivo de BPMpartners- permite reducir en forma considerable el costo en el desarrollo y mantención de proyectos de software, así como el ‘time-to-market’ en la entrega de los productos comprometidos”. Esto, pues posibilita a las empresas contar con equipo de profesionales especializados en una extensa gama de productos y tecnologías, lo que permite también mejorar la calidad de los entregables generados.

Y es que las fábricas de software tienen fuerte énfasis en la calidad, a través de certificaciones que integran mejores prácticas, “las cuales pueden abordar elementos técnicos (acreditaciones de marcas de productos) y también de metodologías y/o procedimientos (CMMI, ITIL, Lean Agil)”, detalla Rocco Abiuso.

Una Software Factory logra un cierto nivel de madurez en el desarrollo de aplicaciones computacionales, mediante la incorporación de estándares y mejores prácticas provenientes de modelos capacidad y madurez de desarrollo de software, como CMMI, y eso implica mejores estimaciones de costo, esfuerzo y tiempo que serán traspasadas a sus clientes. Sin embargo, el ejecutivo de In Motion advierte que “normalmente éstos no están dispuestos a pagar un desarrollo que considere todas las prácticas necesarias y tiende a acortar los tiempos y las actividades, afectando principalmente las etapas de pruebas y actividades de soporte técnico”.


Múltiples ahorros y ventajas

A juicio de Rocco Abiuso, “la principal ventaja que provee el servicio de una Software Factory es que el costo del desarrollo es variable, dado que no es necesario tener internamente desarrolladas las especializaciones y certificaciones requeridas. Otro punto relevante es que se dedican los recursos internos de las compañías al desarrollo del negocio y no a una práctica alejada de sus objetivos corporativos”.

En efecto, para Gastón González, hay ahorros de tiempo y costos en aspectos como: capacitación de personal para que éste se mantenga actualizado, así como también en las certificaciones necesarias para el óptimo desarrollo de software; en riesgo laboral, pues lo que se contrata es un servicio, no a los profesionales TI; en inversión en infraestructura asociada al desarrollo de software, y la administración y seguridad relacionados con ésta, ya que esa responsabilidad se traspasa a la Software Factory.

Pero, ¿para qué tipo de empresas los servicios de Software Factory son recomendados? De acuerdo a los expertos consultados, para compañías con alta demanda de desarrollo de software que no pueda ser adquirido como empaquetado (ERP, CRM, etc), o bien con fuertes necesidades de integración de aplicaciones preexistentes; empresas que conozcan sus requerimientos y que ya cuenten con el análisis y diseño de sus aplicaciones, deseen mantener el conocimiento del negocio en sus analistas funcionales, y tengan variaciones en las necesidades de volumen de horas de desarrollo.

Dependiendo del tipo de compañía y/o industria, los beneficios pueden variar. Por ejemplo, si hablamos de una empresa del rubro telecomunicaciones, que tiene un alto dinamismo tecnológico, lo que más se valora puede ser la disponibilidad de habilidades y especialización y el “time-to-market”. En otros casos, con compañías con menor dinamismo tecnológico, el principal beneficio puede ser la eficiencia de costos que se puede llegar a obtener.

De todas formas, los beneficios de este modelo de servicio son claros. “Con todo lo anterior, se consigue reorientar al área de TI a brindar un mejor servicio a sus clientes internos, apoyando y agregando valor a sus áreas de negocio”, concluye Marisela Urzúa.

¿Qué te ha parecido este artículo?

¡Síguenos en nuestras redes sociales!

Redacción

Artículos relacionados

Artículo 1 de 3