Mission+

Mission+ interface principale

Mission+ est une solution logicielle développée par Navblue (filiale d’Airbus) utilisée par certaines des plus grandes compagnies aériennes mondiales. Ce projet m’a offert ma première vraie expérience professionnelle riche en apprentissages techniques et organisationnels, dans un environnement critique où la robustesse, la performance et l’expérience utilisateur sont primordiales.

J’y ai découvert le travail en équipe à grande échelle, notamment la montée en charge rapide d’une équipe passant de 8 à plus de 50 développeurs, avec l’adoption de méthodes agiles comme Scrum et SAFe adaptées à ce contexte. Cette expérience de 3 ans m’a permis de participer activement à une refonte complète de l’architecture logicielle, inspirée de la programmation orientée composants, facilitant ainsi la collaboration entre des dizaines de développeurs répartis dans plusieurs équipes et pays.



Sommaire


Une architecture révolutionnaire pour l’aviation commerciale

Mission+ représente bien plus qu’une simple application de gestion de vol : c’est un écosystème logiciel complexe conçu pour répondre aux exigences critiques de l’aviation commerciale. Ma contribution principale a été de concevoir et développer une nouvelle architecture qui a permis au projet de passer d’un simple POC à une solution commerciale robuste adoptée par les plus grandes compagnies aériennes.

La genèse d’une architecture orientée composants

Face aux limitations de l’architecture initiale, 3 personnes (l’architecte Navblue, un collègue et moi-même) avons repensé entièrement le projet pendant environ 1 mois, pendant que le reste de l’équipe continuait à travailler sur l’ancienne version.

  • Défi initial : Transformer un POC en solution commerciale capable de supporter une montée en charge massive
  • Approche collaborative : Travail en trio pour imaginer une architecture révolutionnaire basée sur la programmation orientée composants
  • Vision modulaire : Chaque composant responsable d’une partie spécifique de Mission+ avec sa propre logique métier et interface utilisateur

Architecture technique : Modularité et robustesse

L’architecture que nous avons conçue s’inspire des principes de la programmation orientée composants, offrant une approche innovante pour le développement logiciel dans l’aéronautique.

  • Composants autonomes : Chaque composant (sous projet C++) encapsule à la fois la logique métier et l’interface utilisateur (C++ et QML)
  • Communication par services : Les composants communiquent exclusivement via des services bien définis, garantissant un faible couplage
  • Déclaration des services : Système élégant de déclaration des services requis et fournis par chaque composant
  • Chargement dynamique : Chaque composant est une DLL chargée à chaud au démarrage
  • Liaison automatique : Le Linker s’occupe automatiquement de lier les composants entre eux selon leurs dépendances de services

Cette approche a permis à 7 équipes de développement de travailler simultanément sur le même projet sans interférences, démontrant la robustesse et l’efficacité de cette architecture.


Technologies et outils : Un écosystème technique moderne

Mission+ s’appuie sur un stack technologique robuste, adapté aux contraintes de l’aviation commerciale :

  • C++ et Qt 5 : Fondations solides pour les performances et la portabilité
  • QML : Langage de conception d’interface utilisateur moderne et fluide, essentielle pour l’expérience pilote
  • OSG Earth : Cartographie 3D avancée pour la visualisation des trajets de vol et des aéroports mondiaux
  • CMake : Build system moderne facilitant la gestion de la complexité du projet
  • Git et GitLab : Gestion de version et collaboration pour les équipes distribuées
  • Conan : Gestion des dépendances dans un environnement multi-équipes
  • Gitlab CI/CD : Intégration continue adaptée aux contraintes aéronautiques

Expérience pilote complète : Une expérience immersive

Mission+ propose une expérience complète pour les pilotes de ligne pour les phase d’avant vol, en vol et après vol :

  • Cartographie mondiale : Cartes 3D de quasiment tous les aéroports du monde
  • Visualisation des trajets : Représentation 3D des routes de vol avec tous les détails opérationnels
  • Calculs de perfomances : Calculs des différents paramètres pour que l’avions puisse décoller sereinement
  • Météo : Affichage de la météo en temps réél sur la planète ainsi que sur le trajet de l’avion.
  • Interface intuitive : Expérience utilisateur optimisée pour les contraintes cockpit

Collaboration multidisciplinaire : Au cœur de l’innovation

Mon rôle s’est étendu bien au-delà du développement technique, me positionnant comme un pont entre les mondes technique et design.

Point focal technique-design

  • Interface privilégiée : Principal interlocuteur entre l’équipe design (UX, UI, Facteurs Humains, OPS) et les équipes de développement
  • Traduction des besoins : Conversion des spécifications design en solutions techniques réalisables
  • Vision multidisciplinaire : Intégration des aspects techniques, ergonomiques, opérationnels et d’expérience utilisateur
  • Anticipation des contraintes : Identification précoce des défis techniques liés aux exigences design

Montée en charge et méthodes agiles

  • Évolution organisationnelle : Participation à la croissance de l’équipe de 8 à plus de 50 développeurs
  • Adoption de Scrum : Expérience temporaire en tant que Scrum Master lors de la transition méthodologique
  • Facilitation agile : Animation des cérémonies et amélioration continue des processus

Contributions techniques : Au cœur du système

Mes contributions techniques ont touché aux aspects les plus critiques de Mission+ :

Développement du cœur applicatif

  • Architecture des composants : Conception et développement du système de composants qui constitue le fondement de Mission+
  • Services système : Implémentation des services de communication inter-composants
  • Gestion du cycle de vie : Développement des mécanismes de chargement et de liaison des composants

Bibliothèque de composants graphiques

  • Ancêtre du Design System : Création d’une première bibliothèque de composants réutilisables
  • Cohérence visuelle : Développement des composants graphiques principaux de l’application
  • Innovation UX : Contribution à l’expérience utilisateur adaptée au contexte aéronautique

Support DevOps et CI/CD

  • Processus de build : Participation aux processus DevOps et d’intégration continue
  • Support technique : Collaboration avec les équipes dédiées pour optimiser les déploiements
  • Qualité logicielle : Contribution aux pratiques de test et de validation

Impact et reconnaissance : Un succès commercial avéré

Mission+ est aujourd’hui déployé chez plusieurs acteurs majeurs du transport aérien, témoignant du succès de l’architecture et de l’approche technique adoptées.

Résultats concrets

  • Adoption commerciale : Utilisation par de grandes compagnies aériennes mondiales
  • Scalabilité prouvée : Architecture supportant une montée en charge de 8 à 50+ développeurs
  • Robustesse opérationnelle : Solution critique utilisée quotidiennement dans l’aviation commerciale
  • Innovation technique : Architecture orientée composants devenue référence pour les projets Navblue suivants

Héritage technique

L’architecture développée pour Mission+ a servi de fondation technique pour mes projets ultérieurs, notamment le Design System Kite, démontrant la pérennité et la qualité de l’approche adoptée.


Démonstration produit

Découvrez Mission+ en action dans cette présentation officielle :

Pour plus d’informations sur Mission+ : https://www.navblue.aero/product/mission/