looking to the future.jpg

Actualités de la société One2Team

One2Team, une solution conçue pour être agile

Méthode agile One2team

L'agilité d’une solution SaaS (et un outil de pilotage de projet en l’occurence) pour David Blavier, Directeur Technique de One2Team, c'est qu'elle sache évoluer en continu, rapidement et efficacement sans arrêts de service.

Ainsi, les demandes d'évolution des utilisateurs, si elles sont validées, doivent être réalisées rapidement. Pour cela, un certain nombre de choix ont été faits depuis la création de One2Team il y a 15 ans en France. Continuous Delivery, Architecture en micro-services, infrastructure permettant la scalabilité, bases de données schemaless, etc. Découvrez en détails les choix qui ont conduit à faire de One2Team une solution incontournable du pilotage de projets stratégiques :

Le Continuous Delivery

Chez One2Team, une montée de version est effectuée toutes les semaines grâce à l'automatisation des systèmes de livraison du code. Les lignes de code développées sont automatiquement transformées en fichiers binaires (construction automatique des binaires installables). Ceux-ci sont alors déployés sur les environnements de production (l’infrastructure). La chaîne est complétement automatisée intégrant des tests de code (unitaires, d’intégration et d’acceptance) dans une optique de non régression et de conformité. Ces tests simulent l’utilisation de la nouvelle version du logiciel de manière robotisée. De nombreux scénarii d'utilisation sont testés plusieurs fois à chaque nouvelle version du code.

Aujourd’hui les montées de version du logiciel se font toutes les semaines, mais bientôt l’équipe de développeurs de One2Team sera capable de déployer chaque jour ces nouvelles versions sans arrêts de service. Dès que la moindre amélioration de la solution sera prête, elle sera tout de suite mise en testée, mise en production et rendue immédiatement disponible pour l’utilisateur final sans le pénaliser par les arrêts de service communément retrouvés chez les éditeurs. Pour y arriver, One2Team fait appel à des technologies de dernière génération telles que GIT, Docker, Maven, Jenkins, Cucumber, Selenium… Ces technologies servent à collecter le code, fabriquer les versions, rejouer automatiquement les tests unitaires et les tests d’intégration et les déployer en production. On appelle cela le Continuous Delivery, pilier de l’agilité et du Lean Software Development (retrouvez plus d'infos sur comment le lean management est appliqué au développement de la solution de One2Team ici).

Architecture en micro-services

Deuxième pilier fondamental de l’agilité appliqué au développement de logiciels : la capacité d'intégrer facilement un nouveau développeur ou sous-traitant, et la capacité à faire évoluer continûment les services rendus par les couches métier de l’infrastructure. Pour ce faire, il faut que l’environnement technique soit simple et facile à comprendre. Le nouveau développeur est plus rapidement capable de réaliser sa première ligne de code. Pour cela, il faut concevoir l’architecture non pas comme un bloc pour lequel on a besoin de fournir un effort considérable pour le comprendre avant de commencer à coder, mais plutôt comme un assemblage de briques dont les fonctionnalités sont claires, indépendantes les unes des autres et pouvant évoluer à des rythmes différents au fil des versions, et qui sont remplaçables pour plus de performance. Cela permet également de faire intervenir plusieurs développeurs en même temps sans que ceux-ci se gênent, ce qui permet de gagner en rapidité. C’est ce qu’on appelle une architecture en micro-services.

Dans une architecture micro-service, les services sont petits, simple et indépendants les uns de autres autant que possible. Ces trois caractéristique rendent plus aisée la gestion leur cycle de vie.

Agilité de l’infrastructure

Dernier pilier cité par David Blavier : l’agilité de l’infrastructure. Il faut qu'elle puisse supporter une augmentation du nombre d’utilisateurs ou des données sans rupture de service. Pour cela, One2Team s’appuie sur des technologies extensibles (dites scalables) telles qu'Elastic Search et Cassandra, conçues pour accompagner l'évolution d’une toute petite base d’utilisateurs vers une base illimitée d’utilisateurs. Pour cela il suffit d'ajouter de la mémoire au serveur sans avoir à effectuer de migration qui entraînerait une rupture de service. 

L'agilité de l'infrastructure de One2Team se traduit aussi par la simplicité voulue du modèle de données. Il faut s’assurer que les moteurs de recherche seront facilement mis à jour quand le modèle de données du logiciel évolue avec une montée en charge. Dans une architecture traditionnelle de base de données, de nombreuses tables sont liées entre elles, ce qui pose des problèmes de maintenance des schémas, ainsi que des problèmes de performance dans le temps. Il est donc primordial de conserver un modèle de données très simple. « Notre parti pris chez One2Team est que notre modèle de données est flat. Dans les bases de données, il n’y a pas de liens, pour rester simple dans le temps » explique David Blavier. Les liens sont ajoutés entre les objets avant de les indexer dans le moteur de recherche. Le fait de développer une application adressée à des métiers aux besoins précis tels que le retail, ajoute un important challenge technique. « On fait en sorte que l'utilisateur puisse chercher ces liens dans l’index. Ils sont formalisés sous forme de règles métier paramétrées au fur et à mesure par les consultants. Cependant, ces liens n’existent pas réellement dans le modèle de données. Ils ne sont présents que dans l’index, ce qui permet à l'utilisateur de faire toutes les recherches et croisement de données nécessaires tout en préservant la simplicité des modèles de données. » précise David Blavier.

Troisième et dernière dimension de l’agilité de l’infrastructure chez One2Team est l’expérience utilisateurs (UX). Comme le secteur métier adressé est très spécialisé, la solution est présentée comme « une offre sur étagère », qui est une application générique. Elle permet d’outiller les fondamentaux de la gestion de projets en retail par exemple. Mais souvent le client voudra aller plus loin et outiller les spécificités de ses projets. On ajoutera alors des modules applicatifs adaptés et spécifiques à sa demande. La difficulté est d’offrir à l’utilisateur une interface graphique simple pour répondre à la complexité de ses spécificités métiers. Le choix d’un outil comme Elastic Search est fondamental car il permet de créer des facettes tout en naviguant simplement dans des volumes de données importants.

Pour résumer, l’agilité chez One2Team permet de mettre en production des versions stables, avec des équipes organisées en micro-services aux capacités décuplées limitant ainsi les impacts des développements. Tout ceci avec une infrastructure extensible, des modèles de données simples et pérennes, tout en favorisant l’expérience utilisateur.

Vous êtes à la recherche d'un poste ou d'un stage en développement de logiciels ou vous connaissez quelqu'un qui l'est : découvrez nos offres  

 

 

 

PARTAGER CET ARTICLE | |

Recevez les dernières infos sur One2Team ainsi que des contenus exclusifs en vous abonnant à notre newsletter.

Search

Recent Posts