¿Qué es el desarrollo ágil de software en automoción?
Existen dos métodos básicos de desarrollo de software: el tradicional, en cascada, y un enfoque más reciente, denominado ágil, que es fundamental para la transición de la industria automotriz al vehículo definido por software.
En el enfoque de cascada, el desarrollo de software pasa por fases discretas, en las que una fase se completa antes de que empiece la siguiente. Las fases incluyen la definición de requisitos, la implementación, la integración y las pruebas.
Los defectos del método de cascada son muchos: No es lo bastante flexible para seguir el ritmo de cambio de la industria automotriz actual, no permite la necesaria retroalimentación y colaboración con los equipos de negocio dentro de una empresa y con socios externos, y no prevé la realización de pruebas en una fase suficientemente temprana del proceso.
La capacidad de probar sistemas de software complejos es especialmente importante en la industria del automóvil, donde los ingenieros realizan sofisticadas simulaciones de las condiciones reales de conducción – pruebas de software en bucle, hardware en bucle y vehículo en bucle – antes de sacar un vehículo a la carretera.
¿Cómo funciona el método ágil?
La metodología ágil representa un cambio cultural y de procedimiento que se aleja del enfoque en cascada, que es lineal y secuencial. La metodología ágil es iterativa y colaborativa e incorpora bucles de retroalimentación.
Las organizaciones ágiles crean pequeños equipos llamados "scrums" en respuesta a requisitos específicos y prioritarios de la empresa. A continuación, los equipos se dedican a un "sprint", un proceso iterativo de escribir código, probarlo, recabar opiniones de las partes interesadas, reescribir el código y así sucesivamente. Los sprints pueden entregar código listo para la producción en cuestión de semanas.
Tanto el enfoque en cascada como el ágil pueden utilizar el estilo del modelo V de desarrollo de software para pasar por el diseño, la implementación y las pruebas de integración y cualificación. La diferencia es que el enfoque en cascada puede utilizar el modelo V como un proceso global, mientras que el enfoque ágil puede utilizar el modelo V dentro de cada sprint.
La metodología ágil permite a las empresas pasar de las actualizaciones periódicas asociadas al método en cascada a un nuevo estilo de despliegue de software conocido como CI/CD, o integración continua y despliegue continuo. Agile y CI/CD están relacionados pero son diferentes. Ágil se refiere al método de desarrollo de software; CI/CD es un proceso (comúnmente descrito como pipeline) que incluye pruebas, despliegue y supervisión.
La metodología ágil ofrece una serie de ventajas, como permitir a los ingenieros responder con rapidez a los cambios del panorama empresarial. Gracias a los métodos ágiles, los ingenieros pueden proporcionar un flujo continuo de mejoras de software que se han probado a fondo y que responden a las necesidades de la empresa, porque la colaboración se ha producido a lo largo de todo el proceso.
Desarrollo ágil de software en la industria del automóvil
A medida que los vehículos se basan más en el software, aumenta la presión sobre los fabricantes de equipos originales y los proveedores para que escriban, desplieguen e integren el código de forma más rápida y eficiente. El software no solo desempeña un papel más importante en las funciones básicas del vehículo, sino que también permite nuevas funciones como el infoentretenimiento, los sistemas avanzados de asistencia al conductor y los sistemas de conducción autónoma.
Los fabricantes de equipos originales necesitan incorporar nuevas funciones antes del inicio de la producción, así como la capacidad de introducir actualizaciones de software de forma rápida y segura una vez fabricados los vehículos.
Tradicionalmente, los desarrolladores han escrito software para cada componente de hardware y luego lo han integrado con código para otras partes del vehículo. Las pruebas del software integrado se realizaban tarde en el proceso, lo que limitaba el tiempo disponible para introducir cambios adicionales. El desarrollo de cada componente y plataforma del vehículo ha sido un proceso único que vuelve a empezar para la siguiente plataforma.
Los fabricantes de equipos originales están pasando de este enfoque integrado verticalmente a métodos iterativos que incorporan las ventajas ágiles de la colaboración, la integración y la reutilización del código. Por ejemplo, las capas horizontales de middleware pueden sustituir al código específico de cada componente o plataforma de vehículo. Las aplicaciones y funciones pueden integrarse mediante interfaces de programación de aplicaciones y compartirse entre los equipos de desarrollo.
El método de software ágil también ayuda a los fabricantes de equipos originales a implantar nuevas arquitecturas en las que el procesamiento se traslada a grandes controladores de dominio centralizados desde unidades de control electrónico más pequeñas, lo que reduce el coste y la complejidad.