- Prise en main rapide de l’outil appli blanche de l’offre ADN (framework RATP).
- Analyse et aide à la complétion des spécifications fonctionnelles.
- Création et gestion du backlog des tâches (découpage, chiffrage, priorisation et affectation).
- Choix des nouvelles technologies à utiliser.
- Conception globale de l’ensemble de l’application.
- Développement des fonctionnalités.
- Réalisation des tests unitaires et d’intégration.
- Assistance et guidance des autres développeurs vers les bonnes pratiques de développement.
- Administration des environnements bas (DEV, DEV2, REC, REC2)
- Déploiement fréquent et préparation des livrables pour recette et production
- Assistance corrective des anomalies de recette et de production
Projet : DIAMANT : Digitalisation des actes de maintenance des trains
J’ai démarré en tant que tech lead sur un nouveau projet qui a pour but de mettre à disposition des
mainteneurs des équipements ferroviaires du matériel roulant de la RATP (MRF), des fiches
dématérialisées de traçabilité des actes de maintenance et la documentation de maintenance.
Le projet est réparti en 3 applications : 1 application (JAVA) backend communiquant par WEB services
REST (JSON) avec 1 front web (Angular) et des terminaux mobile (Android).
Le projet possède plusieurs contraintes dont :
- La structure des formulaires à remplir par les agents côté mobile est dynamique
- La volumétrie des données produites : environ 500000 fiches par an
- la gestion des modes offline/online des terminaux mobiles
- la gestion du travail collaboratif entre les agents de maintenances qui peuvent modifier les mêmes
données
Le développement se base sur une méthode itérative (entre agile et cycle en V) : projet en 3 lots ayant
des sprints de 3 semaines
Equipe : 10 personnes (1CP, 1MOA, 2 AMOA, 1 MOE, 1 Tech lead, 3 Développeurs, 1 Admin système)
- Choix des nouvelles technologies à utiliser
- Mise en place des bonnes pratiques de développement
- Purge de la dette technique et montée en qualité des applications
- Conception et réalisation de nouvelles couches applicatives
- Développement de nouvelles fonctionnalités.
- Réalisation des tests unitaires et d’intégration.
Mission 1 : Développement de fonctionnalités pour le service Informations Voyageurs
On m’a confié un ensemble de projets différents qui portent tous sur une même application que j’ai
refondue entièrement techniquement.
J’ai intégré l’équipe d’un projet POC (qui a été commandé par la RATP et la SNCF) en tant qu’unique
développeur Java afin de réaliser de nouvelles fonctionnalités dans une ancienne application (APIX)
qui agrège les informations voyageur (dont la recherche d’itinéraires). Il s’agit d’une application back
qui expose des web services à destination d’un Chat-bot.
L’objectif était de démontrer que l’on pouvait faire des recherches d’itinéraires à l’échelle nationale
tout en combinant le résultat de plusieurs nouveaux moteurs d’itinéraires. Aussi, il fallait profiter du POC,
afin d’introduire un nouveau moteur d’agrégation des informations voyageurs innovateur.
Le POC a été une réussite car j’ai terminé tout seul (alors que 2 développeurs étaient prévus
initialement) dans les temps impartis les tâches demandées qui ont permis au Chat-Bot de fonctionner
comme attendu.
Dans ce projet en particulier, je gérais l’ensemble des étapes du cycle de développement, de la
conception suivie de la création des tâches à partir du besoin exprimé par le tech-lead, à leurs clôtures
en passant par leurs développements.
Equipe : 1 développeur, 1 Tech lead, 1 Architecte
Ayant consommé qu’une partie du budget du POC, le client m’a confié la tâche imprévue qui est de
rendre APIX, une solution multi-client et de merger l’ensemble des modules (30) dédiés à des clients de
l’application différents se trouvant dans des branches git différentes.
De plus, il a fallu récupérer le nouveau moteur d’agrégation du POC basé sur de la configuration, afin
de le rendre comme celui utilisé par défaut plus tard et customisable par client.
Il est à noter que j’avais la validation de l’architecte sur la majorité des choix techniques dont
notamment la mise en place d’un contexte Spring par module, et l’utilisation de java.net.http de
java11.
Ce fut une très grande refonte technique d’APIX et de montée en qualité afin de faciliter les futurs
développements. Le code fonctionnel est resté quant à lui intact.
Equipe : 1 développeur, 1 tech lead, 1 Architecte
Projet 1.3 : Rajout de tarifs aux l’itinéraires (3 mois)
Première évolution fonctionnelle qui porte sur l’information tarifaire relative aux itinéraires demandés par
les utilisateurs.
Equipe : 1 développeur, 1 tech lead, 1 chef de projet, 1 Architecte
Projet 1.4 : Hopen Maas : Adaptation du produit à un nouveau client (3 mois)
2 nouveaux clients hors RATP ont commandé des fonctionnalités par rapport à des réseaux de
transports différents.
Comme APIX est devenue une solution multi-clients, il ne s’agissait que de configuration pour les
fonctionnalités existantes.
Par contre, Le développement de nouveaux services était quand même nécessaire par rapport aux
nouveaux besoins comme celui qui donne la position d’un véhicule. Côté mobile, on voyait la position
du véhicule bouger sur le parcours.
Il a aussi fallu adapter l’existant à certains besoins spécifiques sans causer de régressions pour le client
RATP.
Equipe : 1 développeur back, 1 développeur mobile, 1 tech lead, 1 chef de projet, 1
Architecte
chargement de titres de transports. L’objectif du projet est de permettre à des clients dépositaires
(tabagistes) de vendre un service de rechargement des titres de transport à distance.
Equipe : 3 développeurs (+7 en centre de service), 1 scrum master, 1 architecte, 1 tech
lead, 2 Product Owners, 1 Chef de projet
Projet 2.1 : Smart Ticket : serveur de rechargement à distance
Il s’agit d’une application backoffice que j’ai conçue et développée tout seul.
Elle s’occupe principalement de recharger des cartes Navigo connectées au terminal de ventes (TCT)
tout en récupérant une ressource SAM d’un serveur distant.
Le rechargement se base sur la technologie Calypso à travers l’implémentation d’eclipse Keyple.
Environnement technique : JAVA 8, JEE, WINDOWS 10, POSTGRESQL, SQL, FLYWAY
SPRING BOOT 2.5, SPRING SECURITY, SPRING CACHE,
SPRING DATA, HIBERNATE, JPA, SPRING REST, JACKSON, GSON, KEYPLE
ECLIPSE, GIT, MAVEN, JENKINS, SONAR, REDMINE
JUNIT, MOCKITO, SPRING TEST, SPRING SECURITY TEST, H2
Projet 2.2 : Ticketing SDK : un SDK regroupant plusieurs fonctionnalités liés à la billettique en IDF
L’objectif du SDK est de pouvoir être utilisable par des applications différentes, notamment dans le
cadre du projet TCT, par SmartTicket et l’application mobile du TCT.
La plus grande difficulté technique était donc d’avoir un code qui tourne à la fois sur Java et Android
(api version 25) qui n’implémente pas toutes les fonctionnalités du JDK oracle ni celles du java 8.
Pour cela, des façades ont été mises en place.