refonte du module règlement/livraison
DESCRIPTION
Soutenance finale. Refonte du module Règlement/Livraison. Migration technologique d'un programme Finance de marché Projet ambitieux du fait de son importance Ma démarche a aussi donné de l'intérêt au projet Refonte en profondeur Utilisation de nouveaux outils Implication envers le client - PowerPoint PPT PresentationTRANSCRIPT
Page 2
Migration technologique d'un programme Finance de marché Projet ambitieux du fait de son importance Ma démarche a aussi donné de l'intérêt au projet
Refonte en profondeur Utilisation de nouveaux outils Implication envers le client
Mes premiers pas en tant que « chef de projet » Ma démarche Mes difficultés Mes erreurs Mes réussites? Les leçon tirées
Page 3
BNP-Paribas-Arbitrage
Société en nom collectif au capital de 185 millions d'euros
Filiale de BNP-Paribas s'occupant de l'arbitrage Arbitrage: ensemble d'opération permettant de réaliser un
bénéfice sans risque Modèle APT de S. Ross Exemple
- Prêt-emprunt de titre Divisée en 2 pôles
Pôle fonctionnel Pôle logiciel
Page 4
Prêt-emprunt de titre
Opération qui consiste à prêter du titre contre du cash ou d'autres titres
Notions: Date de valeur, collatéral, Appel de marge, Opération sur titre
Notions de gestion: Instruction, Detail, Netting
Page 5
Problématique
Bolivar, logiciel de trading Front-to-Back De la négociation au paiement Logiciel très complexe:
- Communication interne (intermodule)- Communication externe (SWIFT, Equilend)
Depuis 2002, passage en technologie 3-tiers- Déploiement du logiciel sur différentes places financières
(New York, Hong Kong, Tokyo...)- Soulagement de la base de données- Accroître la maintenabilité
Organisation de l'équipe- IT (MOE)- BAPI (MOA)
Page 6
Problématique
Le module de Règlement-Livraison Génération des flux Opérations sur les instructions (Validation, suppression,
netting) Transfert des titres et du cash Comptabilité
Migration du module de Règlement/Livraison vers Java/Weblogic
Le rendre plus rapide et plus fiable (le back-office perd actuellement 1 jour-homme/jour à afficher les propositions)
L'adapter en technologie 3-tiers. Améliorer l'ergonomie des écrans.
Page 7
Moyens
Spécification 1 MOA pour les dialogues avec les utilisateurs Anciennes spécifications du module Documentations du module Accès au code source du module
Développement Java Développement avec l'IDE Eclipse et partage du code sous
CVS Serveur Weblogic pour le développement et base de test Base de non-regression Outils de test Mercury et Eclipse (JUnit), Confluence pour la
gestion de documentation
Page 8
Spécifications
A partir de l'existant Anciennes spécifications Documentation Code source
Introduction du changement Analyse du module Réunion avec le client afin de déterminer leurs nouveaux
besoins Proposition à l'équipe BAPI
Page 9
Analyse
Migration entre technologies très différentes SQL (langage de requête) vers Java(langage objet) Visual Basic (langage procédural) vers Java(langage objet)
Choix techniques Batch
- Centraliser la génération des propositions- Répartir l'intelligence- Optimiser les accès aux services- Gestion des cas particuliers
Nécessité de s'adapter aux Patterns utilisés MVC State Pattern Frameworks: framework graphique, Spring Organisation en service encapsulant les accès en base
Page 10
Études effectuées
Gestion des cas particulier: étude des moteurs d'inférence
Besoins- Séparer la gestion des cas particulier du fonctionnement
normal- Code non compilé pour livraison simplifiée- Libre- Rapidité d'éxecution
Intégration de Drools à mon batch- A tous les niveaux de remplissage des champs, appel au
moteur d'inférence Établir les bonnes pratiques pour les tests de
non-regression Indispensable à la validation du module R/L Étude des outils de Mercury et réunion avec des
spécialistes Établissement des bonnes pratiques IT et BAPI
Page 11
Développement
Développement en J2EE avec Spring Échange avec les autres développeurs Java,
perfectionnement dans cette technologie:- Optimisation de code (List, appels de fonctions, Garbage
Collector...)- Code modulaire afin d'accroître la maintenabilité (utilisation des
Interfaces)- Bonnes pratiques quant à l'utilisation du framework graphique
Swing (pas d'héritage mais builder, éviter les fuites de mémoire)
Implémentation du pattern MVC- Rendre indépendant le modèle, l'affichage et les actions de
l'utilisateur Utilisation de frameworks existants
- Apprendre à utiliser les frameworks (Documentation, Javadoc, tutoriels)
Utilisation d'outils de gestion de configuration (Maven) et de déploiement
Page 12
Tests
A partir des spécifications, élaboration des plans de tests
Tests différents selon les parties car but différents- Batchs- Client
Utilisation de deux bases de données en parallèle pour les tests de batchs (Système de base de non-régression)
Implémentation et exécution des tests du client: utilisation des outils Quality Center et QuickTest Pro de Mercury
Page 13
Gestion de projet
Détermination de mes tâches Évaluation des tâches à faire Évaluation de la charge de travail
- Difficultés et tendance à la surévaluation Gestion de l'avancement Utilisation de l'outi Jira
Détermination des tâches des autres développeurs
Besoin de développements pour mon projet- Spécifications des besoins et planification
Page 14
Gestion de projet
Organisation du développement Pour mon stage
- But: toucher au plus de chose possible afin d'acquérir de l'expérience
Après le stage- Évaluation de la priorité: gain de productivité au back-office et
des moyens d'atteindre cette priorité- Livraison modulaire de façon à répondre au besoin des
utilisateurs le plus vite possible tout en laissant le temps au Bapi d'effectuer un vrai travail de spécification
Choix du cycle de développement Cycle incrémental
- Livraison des batchs puis du client Cycle en V pour le client Cycle incrémental pour les batchs
- On livre flux par flux
Page 15
Gestion de projet
Organisation du changement Changement progressif pour ne pas brusquer les
utilisateurs- Livraison des batchs- Livraison du client
Livra
Page 16
Critiques
Stratégie de test des batchs Non-garante du respect des spécifications et de la non-
regression
Page 17
Conclusion
Objectifs de projet atteint Augmentation de la vitesse d'affichage des flux passant de
plus d'une minutes à moins de 10 secondes Utilisation d'un batch Java soulageant la base de données Passage en technologie 3-tiers réussi
Bilan Démonstration de ma capacité à gérer un projet
- Objectifs atteints en temps voulus Apprentissage du métier d'ingénieur
- Organisation et animation de réunions- Explications techniques
Formation à des méthodes et outils utilisés dans l'industrie (Pattern MVC, programmation orientée aspect, logiciel de test, moteur d'inférences...)
Niveau technique bon, améliorer l'humain