¿Por qué una Software Factory? Escrito por Pablo Sánchez el 18 de junio de 2020 La sociedad y el mercado audiovisual demandan agilidad y eficacia. Hace unos años, el ciclo de vida de los productos tecnológicos era más amplio, pero hoy en día, es raro que un teléfono móvil nos dure más de 1 año. Los clientes han reducido el tiempo de amortización de los desarrollos y se lo piensen mucho más a la hora de abordar nuevos proyectos. Los clientes quieren aportar más su punto de vista de negocio en más fases del desarrollo (no valen ya las reuniones de requerimientos iniciales y de entrega final), por eso la necesidad de usar metodologías ágiles. Y, ¿dónde encaja el modelo «Software Factory»? Pero primero… ¿Qué es una Software Factory? Una Software Factory permite crear y entregar rápidamente aplicaciones de software. Consiste en adoptar conceptos de producción industrial y automatización de los procesos. En la literatura se nombran los cuatro principios básicos: agilidad, automatización, analítica de la información y seguridad. Esto se traduce en una respuesta rápida a necesidades del mercado y a poder crear aplicaciones en cualquier momento y lugar (analítica y agilidad) con especial cuidado de asegurar la calidad del software (automatización) y proteger los datos sensibles (seguridad) Los beneficios de este modelo están bastante claros: Invertir en automatizar procesos permite asegurar la calidad, agilidad y lo que a un CEO le importa, mejorar la productividad. Y en ARANOVA ¿Cómo lo conseguimos? A principios de 2017 apareció nuestro nuevo slogan «Audiovisual Software Factory & Lab», en el que hicimos patente este cambio de paradigma y estos son los cambios que empezamos a experimentar para lograr llegar a este nuevo modelo operativo: Dividir los proyectos en módulos, extensiones, plugins, servicios… decidir la tecnología, lenguaje… y asignar cada uno al personal más cualificado para su desarrollo. Homogeneizar soluciones y crear librerías reutilizables y testeables automáticamente. Usamos varios lenguajes y en todos tenemos un «núcleo independiente» que cuando iniciamos un proyecto importamos porque estamos familiarizados con las funciones y métodos y nos aportan seguridad. Adoptar decisiones tecnológicas independientes siempre que cumplan con los requerimientos del cliente. Hemos rechazado trabajos porque un cliente requería el uso de determinadas herramientas o librerías. No pierdes un cliente por decir que no, pierdes un trabajo. Exigir a los desarrolladores tests estáticos y dinámicos de su código: calidad de código, pruebas unitarias con una buena cobertura, pruebas funcionales, de estrés (estas igual en el mercado audiovisual tienen más importancia) y las últimas pero igual de importantes, las de seguridad de código. Usar soluciones cloud y automatización con triggers / webhooks para poder trabajar en cualquier momento y lugar. Una reflexión en este punto: Es importante saber a quién confías los activos de tu empresa. Los proveedores de soluciones SaaS son/somos los «bancos de los datos digitales». Usar y colaborar activamente en proyectos de software libre. Permitir experimentar y formar al personal en las últimas tecnologías. Entidades ARANOVA Empresas knoweledge software-audiovisual software-libre