“Lo único constante es el cambio” Heráclito

Tal como indica Heráclito, lo único constante son los cambios, se enfrentan todos los días, a cualquier hora y lugar e impactan de manera diferente, pueden ser planificados o no planificados, ya sea para bien o para mal. Es una constante de vida, de lo único que se puede estar seguro es que sucederá. Al final del día, si se desea llevar una vida resiliente, se debe dominar el cambio porque son inevitables. El mundo seguirá exigiendo adaptación y flexibilidad ante las circunstancias cambiantes, por lo que es mandatorio aceptar la fluidez de la misma.

Para nadie es un secreto que todos los sectores de la sociedad experimentan una creciente presión por cambiar. A medida que las herramientas modernas de información, comunicación y colaboración ganan terreno, el ritmo de trabajo se acelera enormemente y el cambio de formas tradicionales de realizar el trabajo a enfoques ágiles se convierte en un desafío para las organizaciones. La capacidad de construir software de manera tradicional con un proceso estático ya no es suficiente. La necesidad actual es tener procesos ágiles y dinámicos para un desarrollo y una entrega de software al usuario rápida con una experiencia enriquecedora, es decir, que genere valor.

Complementando lo que indica el artículo de CA Technologies denominado “Don’t Let an Outdated Software Strategy Hold You Back” y realizado por la empresa Freeform Dynamics, el software se ha convertido en un facilitador empresarial esencial, que conlleva a que la demanda de aplicaciones innovadoras crezca sin descanso, por lo tanto, el software se considera un activo vital para un negocio moderno y exitoso, tanto para permitir la transformación digital como para mantenerse al día con los mercados dinámicos, competitivos y clientes exigentes. Sin embargo, el desarrollo de software generalmente ha funcionado como un oficio de taller o ingeniería pesada a la medida, por lo que el negocio necesita tener un enfoque formalizado y automatizado, adoptando conceptos de previsibilidad, escala y producción en masa para entregar aplicaciones de manera rápida y efectiva, basado en las tendencias actuales, pero no a expensas de la calidad, el costo o el riesgo comercial. Lo anterior es posible gracias a las fábricas de software.

En términos generales, una fábrica de software es una analogía, que trata de expresar la necesidad de imitar las buenas prácticas de las fábricas que producen algún tipo de bien para poder desarrollar software con un proceso cada vez menos artesanal (Avalos, 2008). El concepto es muy antiguo, data desde los años 60s, pero ha evolucionado según las necesidades del contexto, ya que aparecen nuevas áreas de conocimiento como control de calidad, metodologías, filosofías y marcos de las mejores prácticas para la gobernabilidad de las tecnologías de información, por consiguiente, las empresas necesitan procesos de adaptación para obtener mejor rendimiento, y así cumplir los objetivos de tener una fábrica de software  como reducir el tiempo para comercializar nuevos productos, aumentar la flexibilidad y agilidad en el montaje de componentes y reducir los costos de producción, al mismo tiempo que aumenta la calidad y la satisfacción del usuario final. (Alan W. Brown, Ana López Mancisidor, Luis Reyes Oliva, 2011).

¿Entonces, cuál es la novedad?

Las fábricas de software son la convergencia de ideas clave de líneas de producción de software, desarrollo basado en componentes y desarrollo dirigido por modelos. (Jack Greenfield, Keith Short, 2004). La innovación radica en integrar estas ideas en un marco que pueda admitir nuevas herramientas, prácticas y tendencias respecto a la época que se vive, al combinar técnicas basadas en modelos y componentes con los principios de las líneas de producción. Las fábricas de software introducen un nuevo modelo de desarrollo de aplicaciones, donde las herramientas de desarrollo se configuran rápida y económicamente para crear fábricas de software para dominios específicos. La realización de esta visión exige que se repiense herramientas, métodos, lenguajes y marcos de trabajo de la organización donde se implementará. 

Ahora bien, implementar una fábrica de software no es sencillo, no se trata de pasar de un proceso fijo a otro, se trata de construir y planificar cambios a lo largo del ciclo de vida del software (CoMakeIT, 2019), es decir, construir una fábrica de software moderna que puede crear, desarrollar y entregar aplicaciones de manera más eficiente que antes, aplicando los principios de agilidad, automatización, retroalimentación y seguridad.

Es interesante la acotación que realiza Otto Berkes, vicepresidente ejecutivo y director de tecnología de CA Technologies, al manifestar que hay una clara indicación de que las organizaciones que adoptan prácticas modernas de desarrollo de software como metodologías ágiles, incrementando la automatización siempre que sea posible, utilizando el aprendizaje automático y analítico para generar ideas (retroalimentación) y la integración de la seguridad en el proceso de desarrollo, aumentan las probabilidades de impulsar el crecimiento de una  organización, dado que, si no se tiene un enfoque que se adapte a lo que la industria exige, junto con la fábrica necesaria para cumplir con la visión de una compañía, se quedará rezagado en un mundo competitivo. Además, la realidad es que el futuro del negocio de una compañía de software está en las manos de los desarrolladores y depende de lo bien que se han organizado los procesos y les permita aprovechar las oportunidades de crecimiento para su empresa.

Conclusiones:

En conclusión, cada década tiene su propia tendencia, lo que funcionó en su momento, puede requerir adaptación actualmente. Si bien todos parecen sentirse bien, tranquilos, sin salirse de la zona de confort, la historia demuestra que todo tiene un inicio y un fin y los resultados hablan, por lo tanto, para evolucionar es necesario aceptar el cambio no como una amenaza, sino como una oportunidad.

Michael Rodríguez Marín.
Master en Gerencia de Tecnologías de Información
SM/Ingeniero de Software
Grupo Asesor

https://www.linkedin.com/in/michaelrodriguezmarin/

 

Bibliografía

Avalos, Z. C. (2008). FÁBRICA ACADÉMICA DE SOFTWARE.

CoMakeIT. (2019). Co-Innovation with a Distributed Software Factory. CoMakeIT, Continues Innovation.

Dynamics, F. (2017). Don’t Let an Outdated Software Strategy Hold You Back. Obtenido de https://docs.broadcom.com/doc/dont-let-an-outdated-software-strategy-hold-you-back-final-research

Jack Greenfield, Keith Short. (2004). Assembling Applications with Patterns, Models, Frameworks, and Tools.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *