Scroll

De la restructuration au scaling : point de vue technique

Théo Bocquelet |

Dans un précédent article, Benoit Praly, le fondateur de Domoscio, revenait sur la restructuration globale de Domoscio un an auparavant. Cet article a pour but d’aborder les différentes étapes qui ont jalonné non seulement la restructuration de l’équipe technique, mais aussi la direction prise et les moyens mis en œuvre pour atteindre nos objectifs.

État des lieux

Lors des ateliers de réflexion entrepris à l’été 2019, nous avions décidé de mettre à plat les éléments liés aux produits, à l’architecture technique et aux process qui allaient nous permettre de scaler. Ces ateliers ont été riches d’enseignements et nous ont permis d’y voir plus clair sur notre positionnement et la vision à long terme de Domoscio sur la partie technique et la partie produit. À l’issue des ateliers, nous étions plus motivés que jamais à l’idée d’adresser ces transformations organisationnelles et stratégiques. La philosophie de ce “Domoscio 2.0” se recentrait ainsi sur l’essentiel : des produits clairement packagés et standardisés, répondant aux principaux enjeux de nos clients.

Optimisation entre le produit et la technique

La consolidation du pôle produit a permis de renforcer le lien entre les trois pôles suivants : marketing, projet et technique. Les pôles technique et produit travaillant main dans la main, la première étape consistait donc à définir des méthodes de travail pour coordonner les développements avec la vision portée par le pôle produit.

A cet effet, nous avons mis en place la méthode agile SCRUM1, qui nous a permis de fonctionner en itérations de deux ou trois semaines. Ce format s’est révélé particulièrement adapté au contexte de l’entreprise puisqu’à la fin de chaque itération, une réunion où les pôles technique et produit se retrouvent permet de faire un bilan et de définir les prochains points d’amélioration. De plus, cette méthode a permis un gain de visibilité sur les différentes demandes de nos clients ; en effet nous pouvons désormais dans le cadre de demandes spécifiques les étudier et éventuellement les retravailler avant qu’elles n’entrent dans le cycle de développement afin de correspondre à nos produits.

L’équipe technique était ainsi fédérée autour de la refonte des produits Domoscio Hub et Domoscio Lock via trois axes : fonctionnel, technique et graphique.

Refonte du produit et automatisation des méthodes

L’équipe technique et le pôle produit ont ainsi transformé les produits Domoscio et amélioré l’APIi intégrant nos algorithmes intelligents. Avec la mise en application de notre nouveau fonctionnement, un nouvel enjeu est apparu :  l’organisation de nos développements. Afin de l’adresser, il nous a fallu établir de nouveaux processus, concernant notamment Git2 (un outil de versioning de code), mettant l’accent sur la qualité, la visibilité et la productivité. Cela a demandé à chaque membre de l’équipe technique d’adapter ses méthodes de travail, de s’organiser et de communiquer d’autant plus. Dans l’objectif d’optimiser les développements, le mot d’ordre était d’automatiser au maximum nos pratiques : avec la mise en place d’un pipeline de déploiement continu3 (un outil permettant de déployer sur toutes les plateformes de productions en même temps), ou encore d’un framework front-end interneii qui rend la partie graphique des développements plus intuitive. Ces éléments nous ont permis de mieux structurer notre travail et de gagner un temps considérable sur les cycles de développements.

i En informatique, une interface de programmation d’application (de l’anglais “Application Programming Interface”) est un ensemble normalisé de classes, de méthodes, de fonctions et de constantes qui sert de façade par laquelle un logiciel offre des services à d’autres logiciels. 

ii Un ensemble de fichiers et de dossiers utilisé en développement afin de fournir un lot de comportements et d’éléments couramment utilisés dans un site web, notamment sur le plan graphique.

Préparer le scaling

Cette année nous a également demandé davantage de flexibilité. L’arrivée de nouveaux collaborateurs dans l’équipe technique exigeait de redéfinir précisément les périmètres d’actions respectifs afin de couvrir plus précisément tous les aspects techniques nécessaires à l’élaboration de nos produits : l’environnement graphique, les algorithmes intelligents, le maintien des serveurs hébergeant nos applications, etc.

La refonte des produits et l’automatisation des méthodes nous ont offert beaucoup de visibilité sur les travaux qui restaient à entreprendre. Parmi les travaux réalisés :

  • la mise en place de tests automatisés permettant d’assurer la qualité des développements passant en production et de raccourcir le temps des tests
  • la mise à jour de la technologie de notre application mobile vers React Native4 pour augmenter ses performances et permettre une intégration native sur chacune des plateformes mobiles
  • la refonte de l’architecture de notre API sur le cloud pour améliorer le temps de réponse et la charge d’utilisateur tenue (autrement dit l’augmentation du nombre d’utilisateurs accédant simultanément à l’API)
  • la mise à jour de nos algorithmes intelligents pour assurer l’amélioration continue des expériences proposées aux apprenants

Forte de cette expérience, l’équipe technique s’est davantage structurée et chacun a su apporter sa pierre à l’édifice. A ce jour, elle se compose de six personnes, un chiffre qui a doublé en quelques mois. Avec ces bases solides, nous abordons sereinement le passage à l’échelle de nos solutions afin d’accompagner l’accélération de notre internationalisation.


Source1 : La méthodologie SCRUM expliquée.

Source2 : l’outil de code versioning Git.

Source3 : le déploiement continu ou Continuous Deployment (CD en anglais) est une approche d’ingénierie logicielle dans laquelle les fonctionnalités sont livrées fréquemment par le biais de déploiements automatisés.

Source4 : le langage de programmation React Native décrypté.