Retour

Accompagnement sur la refonte des applications et l’internalisation des développeurs

Accompagnement du client dans la modernisation de ses applications et dans l’internalisation du développement, jusqu’à présent assuré par un prestataire. Réorganisation du workflow, mise en place d’intégration et de livraison continue.

Enjeux

Construire l’architecture mobile Android et iOS

Plusieurs challenges furent en jeu : concevoir les architectures des applications du client sous Android et iOS, moduler des briques métier (bibliothèques), construire une stratégie pour la refonte des applications, accompagner les équipes de développement : choix des architectures, technologies utilisées, support au développement...

  • Design de l’architecture des apps : Clean Architecture
  • Design de l’architecture des bibliothèques
  • Modularisation : séparation des briques logiciel en modules indépendants (bibliothèques)
  • Participation au développement des applications
  • Test unitaires : rendre testable la totalité des app et des composants des nouveaux modules
  • Test d’intégration : assurer le bon fonctionnement des modules.
  • Test fonctionnels : rendre testable de façon automatique les principaux parcours utilisateur
  • Participation au recrutement des équipes de développement
  • Livrer une nouvelle version de l’application toutes les 2 semaines
  • Coaching Scrum Masters, Customer Proxys, and Product Owners in their roles and mindsets for few teams

Rôle clé

Être référent technique mobile Android et iOS

Accompagnement du Pôle Apps en amont pour la réalisation des études de faisabilité des nouvelles fonctionnalités et améliorations. Support aux squads pour la prise en main et développement des modules métier.

  • Mise en place de nouvelles architectures
  • Réalisation de POCs (études de faisabilité en amont)
  • Accompagnement des équipes pour la prise de décision des solutions à implémenter
  • Développement et Code reviews
  • Test unitaires / Test intégration
  • Test fonctionnels
  • Organisation en plusieurs squads
  • Refonte de la nouvelle application (Android / iOS) en MVP

Coaching DevOps mobile Android et iOS

Transformation d'un simple outil de build artisanal 'fait maison' en chaînes de CI/CD 100% automatisées. Introduction de la 'culture' DevOps. Mise en place d'un workflow formalisé et standard. Recrutement d'un profil DevOps en support.

  • Construction des chaînes de CI/CD en utilisant des outils standards et du marché actuel (Docker, Jenkins, Bitrise, …)
  • Formalisation du workflow
  • Automatisation des test (TU, TI, TF)
  • Génération automatique du 'changelog' et des 'releases notes'
  • Mises à disposition des métriques des équipes
  • Construction des applications automatiques
  • Déploiement automatique sur les stores internes
  • Recrutement et management d'un profil DevOps en support

Architecte Technique / DevOps

Choix des architectures pour les applications ainsi que modularisation et évolution d'une partie du logiciel existant (certaines briques métier). Culture de test (inexistant avant l’arrivée dans l’équipe). Industrialisation et automatisation.

  • Refonte totale des applications (Android/iOS)
  • Clean Architecture
  • Modularisation
  • Culture Craft
  • Formalisation du workflow
  • Développement natif (Android/iOS)
  • Accompagnement dans la transformation agile
  • Culture DevOps
  • Continuous Integration / Continuous Delivery
  • Automatisation des tests
  • Mise à disposition des métriques (couverture test, résultats...)

Résultats clés

Architectures résilientes, évolutives et compréhensibles avec une réutilisation de code, industrialisation et automatisation

  • Instauration d’une Clean Architecture pour les applications natives Android et iOS dans les délais.
  • Culture de test : passage de 0 test à 90 % de couverture pour les TU et 95 % pour les TI. Une excellente avancée au niveau des tests fonctionnels automatisés a permis d’aider de façon significative la QA dans leurs tâches de validation.
  • DevOps : automatisation complète des chaînes de 'continuous integration' et de 'continuous delivery' : analyse statique, Test unitaires, Test intégration, build et deploy des Applications sur les stores internes et des bibliothèques sur les dépôts dédiés.
  • La séparation des modules réutilisables, notamment pour la communication avec le 'backend' et la gestion unifiée des systèmes de 'tracking', a permis de : faire abstraction des problématiques spécifiques à ces modules, les concevoir en tant que sous-systèmes, les industrialiser et répondre au besoin de pouvoir attribuer le travail de réalisation de ces sous-systèmes à des équipes dédiées