Moraphi.com

Curriculum Vitae

CAI

Diagramme SVG

Diagramme SVG

Gestion des Sites

Gestion des Sites

Statistiques

Statistiques

Stage de fin d'études

Au long de mon cursus à l'ESIEA et à l'IIT, j'ai pu me former dans de nombreuses disciplines.

J'aurais donc pu effectuer mon stage dans divers domaines (infographie, réseaux, ...). Mais quand ce stage m'a été proposé, j'ai tout de suite accepté: le sujet était très intéressant, et faire mon stage dans une entreprise telle que le CAI) représentait une excellente opportunité.

 

Warning Aujourd'hui, le Crédit Agricole ayant fusionné avec Le Crédit Lyonnais, le CAI s'appelle désormais Calyon, mais j'ai décidé de conserver sur cette page le nom que j'ai connu à l'époque.

A savoir

Dates: Octobre 2002 - Août 2003.

Durée du stage: 10 mois.

Stage effectué au Crédit Agricole Indosuez (Calyon).

Langue utilisée: Anglais.

Architecture MVC.

Langages de programmation: php   mysql  

Autres éléments: smarty   css   SVG

Le CAI

Crédit Agricole Indosuez, banque de grande clientèle, déploie son offre dans plus de 50 pays: principalement en Europe, au Moyen-Orient, en Asie et aux Etats-Unis. Les activités couvrent les trois principaux métiers de la banque d'affaires : la banque de marchés, la banque d'investissement et de financements ainsi que la banque privée.

Mon stage

Au cours des dix mois que durèrent mon stage de fin d'études, j'ai conçu pour le CAI un système d'information disponible sur leur intranet. Ce système devait renouveler la manière de travailler des équipes Réseau et Telecom, et leur offrir tout un panel de services et d'automatisations qui n'existaient pas auparavant.

 

J'ai donc effectué ce stage au CAI, au sein du service Réseau et Telecom. Dans ce service, j'ai intégré l'équipe Telco & Mainframe (TMF) donc le but est d'assurer la gestion des infrastructures telecom à l'international. Ces infrastructures constituent un réseau qui relie de nombreux sites géographiques à travers le monde.

Il est primordial de savoir à tout instant quelles villes sont reliées entre elles, et comment elles le sont (débit de données, type de flux de données, etc...), ne serait-ce que parce que ces liens (ou lignes) n'appartiennent pas au Crédit Agricole Indosuez, mais sont loués à des opérateurs telecoms. Le Crédit Agricole Indosuez doit donc savoir quelles lignes vont lui être facturées.

 

A mon arrivée, cette gestion des contrats, du réseau et des commandes opérateurs avait déjà subi deux évolutions majeures:

  • tout d'abord, l'intégralité de l'information du réseau était fournie sous la forme d'un document Excel fait à la main. Cela occasionnait de nombreuses erreurs et de la redondance d'information.
  • Ensuite, une base de données fut créée sous Microsoft Access, utilisant des tables relationnelles. L'information était alors toujours réputée correcte, et il était possible de faire des statistiques sur les données. Seulement, la base n'était pas très ouverte vers les nouvelles évolutions du réseau, et était fermée sur un mode de gestion cadré sur un seul contrat. Elle commençait à montrer ses limites.

 

C'est donc pour développer une nouvelle application de gestion du réseau que j'ai été recruté au sein du Crédit Agricole Indosuez. En reprenant à zéro le design du système, et en le façonnant de manière à répondre au plus près aux besoins de mon équipe, je devais donc aboutir à un système intranet complet permettant de gérer le réseau international du Crédit Agricole Indosuez, en facilitant les tâches quotidiennes de mon équipe, tout en restant ouverte vers les nouvelles évolutions du réseau, et tout futur contrat.

Etude préalable

Nous avons planifié quelques réunions avec d'autres équipes pour soulever les attentes et les commentaires de tous les utilisateurs potentiels du système alors à concevoir. Ces réunions permettaient de présenter le projet à des personnes externes au service auquel j'étais intégré. Ainsi, nous pouvions obtenir des avis supplémentaires et des remarques qui nous ont aidé à prendre du recul.

 

De ces réunions, j'ai réalisé un document d'analyse des besoins et de contraintes utilisateurs. En quelques sortes un cahier des charges "allégé". Ce document détaillait les différents futurs utilisateurs probables de l'application, et listait toutes les fonctionnalités à incorporer, selon leur importance. Par exemple, la génération de statistiques sur le réseau avait une importance moindre que la sécurisation des informations de la base de données. Ce document m'aura servi de référence durant un certain temps, jusqu'à ce que les prototypes réalisés soient assez matures pour pouvoir y ajouter de nouvelles fonctionnalités rapidement, sans avoir à passer par une phase d'étude initiale.

 

Un autre avantage à la réalisation de ce type de document, est que cela permet de prendre conscience du travail à accomplir, et ainsi de jalonner le projet en différentes phases. Il a été alors possible de créer un planning initial, simple, mais donnant les grandes étapes de mon stage.

Conception

Il existe une méthode de conception logicielle qui a semblé appropriée dans notre cas: la méthode MVC, qui peut offrir de nouveaux degrés de robustesse, de réutilisation du code et d'organisation. (voir la page concernée).

 

Dans la réalisation d'un programme simple, fait par une personne, il est possible distinguer 3 phases:

  • La phase d'analyse du problème.
  • La phase de codage et de mise au point.
  • La phase d'opération.

Cette approche n'est pas appropriée pour un projet important. Dans un tel cas il est nécessaire de distinguer plus de phases, ce qui permet notamment au responsable du projet de mieux suivre son évolution (la fin d'une phase représente en effet une étape objective dans l'avancement du projet):

  • la phase de pré analyse, ou étude d'opportunité.
  • la phase de spécification (software requirements).
  • la phase de conception (software design).
  • la phase d'implémentation (programmation).
  • la phase de test.
  • la phase de maintenance.

Dans mon cas, ce schéma aura été quelque peu simplifié, puisque certaines phases, comme les phases d'implémentation et de test, auront été réalisées de concert, tandis que d'autres n'auront finalement pas été à ma charge. En effet, la pré analyse avait été effectuée avant mon arrivée: c'est après cette pré analyse que l'entreprise a décidé de prendre un stagiaire pour la réalisation de ce projet.

 

Conception

 

Ainsi, il est possible dans cette optique de revenir à une phase précédente si le besoin s'en fait sentir. Par exemple, si lors de la phase d'implémentation, les ingénieurs s'aperçoivent de la non faisabilité d'une partie du projet, ils peuvent faire revenir tout ou partie du projet au stade de la conception, pour qu'il subisse les modifications nécessaires.

Il est très important que les phases de pré analyse et de spécification soient réalisées avec le plus grand sérieux, car elles permettent d'éviter des erreurs qui, si elles étaient découvertes plus tard dans le cycle de vie du logiciel, seraient très coûteuses à corriger.

 

Info Dans son livre "A Discipline for Software Engineering", Watts Humphrey montre qu'un défaut découvert lors de l'implémentation d'un logiciel coûte cent fois plus cher qu'un même défaut découvert en phase de spécification.

On comprend alors toute l'importance que doit prendre l'analyse avant le lancement de tout projet. C'est pourquoi avant toute programmation, nous avons réfléchi sur ce que nous devions réaliser, et comment nous allions le réaliser.

 

Une fois mon travail sur l'application réalisé, il me restait encore à produire plusieurs documents de référence, pour la maintenance et l'évolution de cette application notamment. J'ai donc eu trois documents à écrire: un pour les programmeurs et administrateurs du code de l'application, un autre pour les utilisateurs finaux, et le dernier décrivant des étapes à suivre pour passer l'application en production dans les standards de la banque.

Conclusion

Ce stage, clôturant ma formation, m'a permis d'appréhender de nombreux pans du travail et de la vie dans une grande entreprise. J'ai ainsi pu créer un système, à partir de son design préliminaire, et jusqu'à sa finalisation et la création des documentations. J'aurai donc couvert toutes les étapes de création d'un logiciel, ce qui était très formateur et intéressant.

 

Sur le plan technique, il m'a permis de compléter les connaissances acquises à l'ESIEA et à l'IIT, mais également d'acquérir un oeil critique sur chacune des techniques et technologies abordées. Il apparaît en effet que certaines technologies présentent des limites, et qu'il faut parfois se restreindre dans les choix que l'on fait, se plier à certaines contraintes liées à ces technologies. Pour ne rien enlever aux bénéfices de ce stage, l'aspect humain a plus que jamais été mis en avant, et ce grâce au dialogue, aux conseils et au professionnalisme de toute l'équipe.

Le simple fait que le système que j'ai créé et mis en place soit maintenant utilisé quotidiennement par les équipes du service dont j'ai fait partie me semble la plus belle des récompenses.

 

L'avenir de CAINet Data est donc assuré...