Desarrollo ágil de software para una perfecta conectividad entre el smartphone y el vehículo

Los teléfonos inteligentes tienen ciclos de desarrollo y actualización de software más cortos que los vehículos. Para garantizar que ambos ecosistemas funcionen juntos correctamente en todo lo relacionado con las aplicaciones, Porsche Engineering utiliza un método ágil que garantiza que una amplia variedad de teléfonos inteligentes sea compatible con los coches en todo tipo de condiciones.

La conexión entre smartphones y la electrónica de los vehículos hace posibles nuevas funciones que mejoran aún más la experiencia de conducción. Como ejemplo, cabe citar aquellas que utilizan la cámara de un teléfono para grabar vídeos a través del parabrisas y vincularlos a información del coche en tiempo real. “Uno de los mayores desafíos a la hora de implementar funciones de aplicaciones basadas en la interacción entre los ecosistemas del vehículo y del teléfono móvil, son los muchos hilos que se crean durante el desarrollo”, explica Thomas Pretsch, Director de Infoentretenimiento, Conectividad y E/E de Porsche Engineering. Para lograr la gama de funciones deseada, las aplicaciones a menudo acceden a la centralita del motor (ECU) para leer datos relativos al régimen de giro, la velocidad y posición del vehículo, la fuerza de frenado, el ángulo de dirección o la aceleración longitudinal y lateral, todo ello a través de la conexión WiFi del sistema de infoentretenimiento del coche.

Desarrollo ágil de software, 2023, Porsche AG
Cartas boca abajo: el objetivo del planning poker es obtener una estimación independiente del esfuerzo requerido para completar una tarea de desarrollo.

Sin embargo, la conexión de software necesaria para ello en ocasiones se complica por los diferentes ciclos de vida de los productos de los dos sistemas. En algunos momentos los equipos de desarrollo tienen que integrar la tecnología de teléfonos inteligentes de rápida evolución en vehículos con intervalos de desarrollo mucho más largos. Al mismo tiempo, deben garantizar que la aplicación funcione de forma fiable en todo tipo de situaciones.

Siempre actualizado

Porsche Engineering utiliza métodos ágiles de desarrollo de software que permiten que las aplicaciones de los vehículos se mantengan continuamente actualizadas. Para el procesamiento se definen paquetes de trabajo individuales que se pueden implementar en periodos de apenas dos semanas. Como resultado, los desarrolladores ya no están sujetos a los ciclos de actualización de los coches, sino que tienen la opción de crear una nueva versión del software en cualquier momento y que se puede entregar a los clientes a través de la tienda de aplicaciones. Utilizando este método ágil de desarrollo, Porsche Engineering puede garantizar la implementación completa de una aplicación para teléfonos inteligentes Apple y Android, desde la programación y las pruebas hasta la generación de la versión de lanzamiento para el cliente final.

Thomas Pretsch, Director de Infoentretenimiento, Conectividad y E/E de Porsche Engineering, 2023, Porsche AG
Thomas Pretsch, Director de Infoentretenimiento, Conectividad y E/E de Porsche Engineering.

“La ventaja de Porsche Engineering en este sentido es la combinación de una gran experiencia en programación y un amplio conocimiento de la tecnología del automóvil. A esto se suma nuestra experiencia en la dinámica del vehículo, que nos permite predecir exactamente qué parámetros necesitamos para implementar una función determinada”, afirma Pretsch.

Un aspecto relativo a las aplicaciones que juega un papel mucho más importante en el vehículo que en otras áreas de influencia es la prueba del software. En Porsche Engineering, estas pruebas se llevan a cabo durante el desarrollo para que el código del software pueda adaptarse rápidamente en caso de que surjan errores: al definir los sprints o periodos breves de trabajo, el equipo establece hitos para la programación. Una vez alcanzados esos objetivos, un ingeniero de pruebas especialmente capacitado comprueba la efectividad del software. Para que en el futuro los elevados requisitos de fiabilidad funcional puedan implementarse de forma aún más eficiente, Porsche Engineering está ampliando el programa de pruebas de las aplicaciones en pasos sucesivos. “Las pruebas adicionales durante el desarrollo requieren tiempo, pero el esfuerzo necesario para realizar cambios es mucho menor cuanto antes se identifique un error”, afirma Johannes Hubert, ingeniero de Desarrollo de Infoentretenimiento y Conectividad de Porsche Engineering. Las pruebas funcionales mediante simulación y en el propio vehículo ya son parte integral del proceso de desarrollo.

"Las pruebas adicionales durante el desarrollo requieren tiempo, pero el esfuerzo necesario para realizar cambios es mucho menor cuanto antes se identifique un error" Johannes Hubert, ingeniero de Desarrollo de Infoentretenimiento y Conectividad de Porsche Engineering

“Las simulaciones se llevan a cabo a través de rutinas internas dentro del software”, explica Hubert. Fabian Breisig, ingeniero de Proyectos Especializado en Infoentretenimiento y Conectividad de Porsche, añade: “Estas pruebas proporcionan información sobre las funciones básicas de la aplicación. Los tests que se llevan a cabo en el vehículo, por otro lado, verifican la conectividad y el infoentretenimiento durante la conducción”. En el futuro, estos últimos se complementarán y, en parte, se sustituirán por simulaciones y test de mayor alcance en el banco de pruebas HiL (hard-ware-in-the-loop). “Para la aplicación, esto crea una situación similar a la del vehículo, lo que nos acerca al escenario real y nos permite replicar pruebas funcionales exhaustivas sin coche”, comenta Breisig.

Johannes Hubert, ingeniero de Desarrollo de Infoentretenimiento y Conectividad de Porsche Engineering, 2023, Porsche AG
Johannes Hubert, ingeniero de Desarrollo de Infoentretenimiento y Conectividad de Porsche Engineering.

Alta flexibilidad mediante simulación

El banco de pruebas HiL permite integrar aplicaciones en el vehículo incluso cuando este no está presente. En lugar del coche completo, solo se necesita como hardware el módulo de infoentretenimiento para que el sistema de prueba reproduzca a modo de simulación los flujos de datos entrantes y salientes. Esto conduce a un alto grado de flexibilidad en la creación de aplicaciones: las funciones para nuevos modelos se pueden integrar en una etapa temprana, de tal manera que ya estén disponibles cuando se lance el vehículo y los clientes puedan usarlas de inmediato.

Estos procedimientos se pueden emplear en diferentes campos. Porsche Engineering los utiliza, sobre todo, para desarrollar sistemas de baterías y estrategias operativas en vehículos eléctricos, pero el interés está creciendo también en otras áreas. “Los métodos ágiles son ideales para proyectos que están sujetos a un proceso de cambio continuo”, afirma Pretsch. “Debido a la importancia cada vez mayor de la conectividad en red y el software en los vehículos, cabe suponer que esta forma de trabajar se irá haciendo más recurrente en otros apartados”.

Desarrollo ágil de software

El desarrollo ágil de software es un enfoque de gestión de proyectos ampliamente utilizado en la electrónica de consumo, que se caracteriza por la programación en breves periodos de tiempo (sprints). Entre sus ventajas figura el hecho de que permite reaccionar rápidamente a los cambios, ya que el proceso se puede adaptar de manera flexible a diferentes circunstancias. Dado que los hitos intermedios son siempre solo partes del software, el objetivo final de un desarrollo no tiene por qué estar claramente delineado o conocido. La definición de la extensión de trabajo (ticket) a completar en el sprint se acuerda en una reunión de coordinación con todos los miembros del equipo. En este contexto, se utiliza un método conocido como planning poker.

Glosario de términos

Sprint

El desarrollo ágil se lleva a cabo en ciclos cortos o esprints (normalmente de dos semanas) para garantizar una retroalimentación rápida.

Stand-up

Se trata de una breve reunión diaria en la que los desarrolladores se ponen al día sobre el estado de sus sprints.

Ticket

Un ticket es una tarea de desarrollo de software que se transfiere a uno o más sprints.

Backlog

Es la lista de todos los tickets que se van a implementar.

Story refinement

La consecución del backlog es lo que se conoce como story refinement. En un proceso continuo, los tickets se elaboran y preparan para su implementación en un sprint.

Planning poker

Este sistema de planificación es un método ágil para estimar el esfuerzo requerido para completar un ticket. Requiere que cada desarrollador haga un pronóstico con "cartas de póker" ocultas. Si hay discrepancias entre las estimaciones, esto es una indicación de ambigüedad (por ejemplo, una formulación imprecisa del ticket). El objetivo de la planificación es garantizar que todos los desarrolladores proporcionen la misma previsión del esfuerzo necesario para cada ticket, lo que significa que tienen una comprensión común de la tarea.

Información

Artículo publicado en el número 2/2023 de la revista Porsche Engineering Magazine.

Texto: Richard Backhaus

Ilustraciones: Pia Bublies

Copyright: las imágenes y el sonido aquí publicados tienen copyright de Dr. Ing. h.c. F. Porsche AG, Alemania, u otras personas. No se debe reproducir total o parcialmente sin autorización escrita de Dr. Ing. h.c. F. Porsche AG. Por favor, contacte con newsroom@porsche.com para más información.

Artículos relacionados

FOSS Movement
Empresa

FOSS Movement

Porsche, que está impulsando su iniciativa de software libre de código abierto, ha publicado una guía estratégica para utilizarlo.