Zouhair Loucif
Client
Hsabati
Rôle
Développeur full-stack
Période
2019-12 → 2020-10
Lieu
Casablanca · Maroc
Lecture
2 min

CRM et ERP pour deux cents petites entreprises

Mon premier vrai SaaS en production — la construction du CRM/ERP qui a fini par servir plus de deux cents petites entreprises marocaines, et l'architecture modulaire qui a rendu l'ajout du prochain module bon marché.

  • 200+
    clients professionnels
  • CRM · ERP · SaaS
    gamme produit
  • API modulaire
    architecture

Hsabati était — et reste — un SaaS pour les petites entreprises marocaines. Facturation, ERP de base, suivi client, le sous-ensemble fonctionnel dont une boîte de 5 à 50 personnes a besoin pour tenir ses comptes droits. J’y suis arrivé en décembre 2019, frais sorti de mon Master, et dix mois plus tard la plateforme servait plus de deux cents entreprises à travers le pays. Ma première vraie rencontre avec ce que « production » veut dire à l’échelle.

Ce dont deux cents entreprises avaient besoin

La partie difficile, ce n’était pas les fonctionnalités voulues par une seule entreprise. C’était la diversité. Une pharmacie à Rabat avait besoin de choses qu’un atelier textile à Fès n’avait pas, et les deux différaient d’un petit cabinet comptable à Casablanca. On ne pouvait pas livrer un workflow et appeler ça fini — le produit devait fléchir.

La réponse : un produit modulaire serré — un petit ensemble de primitives bien dessinées (clients, articles, factures, stocks, taxes) et des workflows configurables au-dessus. La plupart des nouveaux types de clients pouvaient être intégrés par configuration seule ; une minorité significative avait besoin d’un petit module sur mesure greffé. L’astuce, c’était de garder cette minorité petite.

Une architecture modulaire qui ne combat pas l’expansion

L’architecture sur laquelle j’ai travaillé codifiait une séparation claire : une couche API stable avec des contrats bien définis, et des modules de fonctionnalités qui vivaient derrière sans fuir les uns dans les autres. Les nouvelles fonctionnalités ajoutaient de nouveaux endpoints ; elles n’exigeaient presque jamais de changements aux endpoints existants. Les équipes qui livraient en parallèle ne se marchaient pas dessus.

Ça paraît évident. Dans un SaaS en croissance rapide où le chemin facile, c’est de tout câbler ensemble « pour l’instant », ça ne l’est pas. On a tenu cette ligne en écrivant les contrats d’API avant le code, et en étant prêts à refactoriser le substrat à chaque fois qu’une fonctionnalité voulait le briser. C’était le bon genre de lent — quelques heures de travail amont qui économisaient des semaines en aval.

Ce que c’était

Moins glamour que les programmes plus tard chez Kongsberg ou Digitalent, mais la fondation. Hsabati, c’est là que j’ai appris que la bonne architecture est la discipline de choisir ce qu’on ne couple pas, et que les bonnes petites primitives permettent à deux cents entreprises différentes de mener leur journée sur le même code.

Stack
  • React
  • Node.js
  • PHP
  • MySQL
  • REST