Ici archive

Pour une entreprise du CAC40 présente dans 68 pays comptant 170 000 collaborateur·rice·s, nous avons créé et développé une app centralisant l’ensemble des métiers de la finance au sein de cette entreprise multinationale : pour chacun d’entre eux sont listées les offres d’emploi, compétences et formations correspondantes. Elle présente également le parcours professionnel et les évolutions de carrière au sein du groupe.

Toutefois, cette app était figée et non-administrable par les collaborateur·rice·s IT en interne. Il a donc été rapidement nécessaire de créer une seconde app – un back-office – afin qu’ils·elles puissent gérer la base de données et modifier le contenu de la première (ajouter de nouveaux métiers, compléter les compétences et formations…).

Comment avons-nous abordé et travaillé sur ce projet ? Quels en ont été les enseignements ? Éric Bauman, développeur à la Factory chez Saegus, vous raconte.

Un défi technique

Le back-office a été pensé comme une app à part entière. La base de données est commune entre les deux applications. La première application étant internationale, le back-office devait donc être pensé en plusieurs langues – nous l’avons pour l’instant développé en français et anglais, l’objectif étant d’ajouter de nouvelles langues dans le futur. Cela entraîne un défi technique : penser différemment la base de données. Pour chaque langue, nous avons créé une table distincte pour les métiers, compétences et formations.

La maquette du back-office, designée par l’équipe de la Factory, était assez complexe à développer : il y avait beaucoup d’éléments très customisés, rendant leur intégration complexe. Par exemple, les listes déroulantes ont un style par défaut qui n’est pas modifiable ; il nous a donc fallu recréer une liste déroulante à la main, ce qui prend forcément plus de temps. Ce type de problème s’est posé sur plusieurs fonctionnalités de l’application.

Dans cette application, le menu permet de naviguer parmi tous les types de données que les administrateur·rice·s peuvent ajouter, modifier ou supprimer :

  • Les univers (“universes”), qui sont des sous-domaines de la finance ;
  • Les métiers (“jobs”) ;
  • Les compétences (“skills”) ;
  • Les formations (“trainings”) ;
  • Les évolutions de carrière (“career paths”).

Par exemple, pour modifier un univers, l’utilisateur·rice arrive à partir du menu sur un écran permettant de sélectionner un univers existant ou d’en ajouter un nouveau. Dans les deux cas, un formulaire contenant tous les attributs d’un univers s’affiche, permettant de le personnaliser en modifiant chaque champ. Cette fonctionnalité est la même pour tous les types de données.

Les métiers ont pour particularité d’être reliés aux formations, compétences et profils inspirants : des onglets permettent de naviguer parmi ces attributs et de les lier au métier sélectionné.

Nous avons utilisé Angular pour le front, en framework JavaScript ; Node.js et NestJS pour le backend ; et PostgreSQL pour la base de données. L’app est hébergée sur Azure.

Une app née de la collaboration

Au sein d’un projet de cette envergure, la relation avec le client est essentielle. Nous avons organisé plusieurs ateliers pour bien comprendre les besoins (parcours utilisateur, interactions) et avoir une image d’ensemble de l’interface à créer. Dans ce cadre, le client est un véritable collaborateur du projet ; les daily meetings et méthodes agiles, permettant d’avancer par itérations, sont clés pour pouvoir échanger. C’est aussi un moment au cours duquel le client peut tester les features une à une, permettant d’ajuster l’app au fur et à mesure. Sinon, le test unitaire est une bonne pratique : les lignes de test sont enregistrées et rejouées à l’ajout de chaque nouvelle fonctionnalité, automatisant les tests. Il convient de noter que cela demande du développement supplémentaire, mais fait gagner du temps à terme.

Il est essentiel que les designers et développeur·se·s travaillent en collaboration. Pour ce projet, pendant la création de la maquette, nous avons beaucoup échangé sur la faisabilité technique du front imaginé.

Après une livraison de la première version, nous avons fait des changements mineurs sur la base du retour client. Comme nous l’avons vu, l’app est pensée pour que l’on puisse y ajouter des langues supplémentaires à l’avenir, ce qui devra être fait par un·e développeur·se.

Conclusion

La gestion de projet et celle d’équipe se sont rencontrées au cours de ce projet. Une mission de cette envergure demande de la rigueur et du cadrage, ainsi qu’une collaboration régulière entre toutes les parties prenantes (client, métiers, designers). Nous sommes fier·ère·s de ce projet qui est une belle réussite.

Vous souhaitez vous aussi être accompagné·e·s par nos équipes de la Factory ? Contactez-nous !

Rédigé par Éric Bauman, Développeur à la Factory

TypeScript est un langage de programmation fortement typé qui s’appuie sur JavaScript, qu’il enrichit de nouvelles fonctionnalités.

Développé par Microsoft en 2012, TypeScript connaît une grande popularité dès 2017. À l’époque, Microsoft souhaite créer un langage de programmation pouvant assurer une meilleure gestion des projets à grande échelle. Jusqu’ici, JavaScript est utilisé seul car il l’est l’un des seuls langages acceptés par les navigateurs – mais il est mal adapté aux grands projets (trop complexe, pas de typage, pas d’interface…).

Comment TypeScript intervient-il dans le processus de codage ? Comment fonctionne-t-il ? Quels sont ses avantages ?

Qu’est-ce que TypeScript ?

TypeScript est transcompilé en JavaScript, c’est-à-dire qu’il traduit le code TypeScript vers du code JavaScript afin qu’il soit interprété par tous les navigateurs.

Le grand avantage de TypeScript, comme son nom l’indique, est qu’il permet de typer son code, soit d’attribuer un type aux éléments du code source (variables, fonctions…). En conséquence, chaque élément joue un rôle identifié.

Par exemple :

  • En TypeScript : sur la ligne de code “let count : number = 2”, il est indiqué que count est obligatoirement un nombre ;
  • En JavaScript : sur la ligne de code “let count = 2”, count peut être un autre type par la suite, puisqu’il n’est pas référencé comme nombre ;
  • Si l’on considère la ligne de code “count = “hello world”” : en TypeScript, cette ligne sera erronée (puisqu’elle ne correspond pas au typage précédemment effectué), ce qui ne sera pas le cas en JavaScript.

Ses points forts

Parmi ses autres avantages, nous pouvons citer :

  • L’autocomplétion : par exemple, si l’on souhaite créer un array, TypeScript suggère automatiquement les fonctions liées au type référencé en amont (filter, map, find…) ;
  • La documentation : même s’il est essentiel de documenter son code, pour soi-même comme un·e futur·e développeur·se qui reprendrait un projet, TypeScript permet d’éviter les commentaires à l’intérieur du code, comme “//version doit être nombre” ;
  • La propreté : JavaScript est souvent jugé permissif voire incohérent ; TypeScript pallie ce problème grâce aux détails qu’il est possible d’y ajouter, le rendant plus facile à lire et comprendre ;
  • La gestion d’erreurs : les erreurs commises en TypeScript, qui empêcheraient la compilation du code, sont signalées par un liseré rouge – ce qui n’est pas le cas en JavaScript. Jusqu’alors, ce travail était fait par des bibliothèques ou éditeurs de texte ;
  • La maintenabilité : puisque le code est typé, il est plus facilement maintenable. Les futures mises à jour seront plus simples et rapides, entraînant un gain de temps et d’argent.

TypeScript condense donc de multiples fonctionnalités en un seul outil.  À l’inverse, certain·e·s développeur·se·s estiment qu’il alourdit le code, puisqu’il l’alimente avec de nouvelles fonctionnalités – ce qui est compréhensible à l’échelle de petits projets.

Toutefois, nous pouvons considérer que TypeScript est adapté à tous les types et échelles de projets ; nombreux sont les petits projets qui prennent par la suite de l’ampleur !

Cas pratique

Conclusion

TypeScript a définitivement révolutionné la manière de coder. Il est de plus en plus adopté, pour les nouveaux comme les anciens projets – de nombreux sites ont mis à jour leur code avec TypeScript. Le choix revient bien sûr aux développeur·se·s d’utiliser ce langage, selon leurs habitudes et sensibilités personnelles, mais il ne fait aucun doute que TypeScript continuera son ascension : il est déjà aujourd’hui parmi les 10 langages de programmation les plus utilisés (source).

Vous souhaitez en savoir plus ?

Rédigé par Diesen Nwoumga, Consultant Factory