Commençons par la divulgation, parce qu'elle change la façon de lire tout le reste : Durpro appartient à Marc et Denis Durepos, et Pascale Lohéac en est la directrice financière. Ce n'est donc pas un témoignage de client. C'est l'histoire de l'entreprise pour laquelle Bemade a été fondée — et c'est précisément pour ça qu'elle vaut la peine d'être racontée.
Durpro, c'est une PME québécoise d'une vingtaine de personnes qui exploite quatre activités sous un même toit : la distribution, le service terrain, les systèmes sur mesure et la régénération de résine. Quatre façons différentes de gagner de l'argent, dans un seul système. Elle roule sur Odoo depuis janvier 2013, à l'époque où le logiciel s'appelait encore OpenERP.
En treize ans, nous avons essayé à peu près toutes les façons de faire fonctionner un ERP. Voici ce que chacune nous a appris.
On l'installe nous-mêmes (OpenERP 6.1)
C'est Denis qui a mis le système en place, seul : du développement et des essais sur la version 5.0, puis un changement de cap vers la 6.1 pour le lancement, le 1er janvier 2013. Les données ont été importées en modifiant des fichiers SQL à la main et en attribuant les identifiants un par un. Et il l'a fait dans ses temps libres, parce que le reste de la semaine, il concevait des systèmes et faisait du service pour les clients de Durpro.
Aucun test automatisé, évidemment. Pour savoir si quelque chose fonctionnait, on s'en servait, et on attendait de voir ce qui cassait.
La leçon de cette période : une PME motivée peut démarrer seule. Ce qu'elle ne peut pas faire seule, c'est suivre.
Deux partenaires, deux limites (versions 7 et 11)
Pour la version 7, nous sommes passés à Odoo Enterprise. La migration a été faite pour nous, avec un grand intégrateur à la gestion de projet. Elle devait régler trois problèmes. Elle n'en a réglé aucun.
Chaque bogue que nous signalions revenait classé « problème de configuration », sans aide pour le résoudre, pendant que les frais de gestion de projet continuaient de courir. Le modèle n'aidait pas : nous payions à l'heure, y compris, semblait-il, les heures passées à faire fonctionner les propres outils de déploiement de l'intégrateur. Et quand nous écrivions nous-mêmes un correctif, il devait passer par lui : facturé, pour peu ou pas de valeur ajoutée. Bilan : entre 15 000 et 20 000 $ US plus tard, nous n'étions pas plus avancés. Nous avions de nouveaux bogues, et des fonctions dont nous nous servions avaient disparu.
Nous sommes ensuite passés directement de la 7 à la 11, en version Community, avec un partenaire dont l'équipe Odoo était plus petite. Cette fois, le problème était la disponibilité : il n'arrivait pas à libérer un développeur d'expérience pour notre projet. Les développeurs moins expérimentés livraient du code qui répondait aux mauvaises exigences, ou qui ne faisait pas ce qu'il annonçait. Les personnalisations avançaient au compte-gouttes.
Et d'un partenaire à l'autre, les modules livrés n'avaient ni tests automatisés ni documentation des besoins. Chaque migration devenait de l'archéologie : découvrir d'abord à quoi servait un module, décider s'il servait encore, puis chercher ce qui cassait dans la nouvelle version. Résultat prévisible : les mises à niveau devenaient des projets qu'on repoussait.
2022 : on devient notre propre partenaire
En 2022, il fallait quitter la version 11. Plutôt que de chercher un troisième partenaire, nous avons fait entrer la compétence à l'interne, et nous avons fondé Bemade pour faire la migration vers Odoo 15 Enterprise. L'essentiel du travail s'est fait à l'été 2022; Durpro est passée en production en janvier 2023, après les tests.
Le choix d'Enterprise s'est fait sur le fond : la comptabilité, le centre d'assistance et le service terrain d'Enterprise couvraient ce dont Durpro avait besoin, et valaient plus que la licence. Ce n'était pas une question de commission — nous n'en vivons pas, et nous recommandons la version Community quand c'est elle qui convient.
Ce qui a changé : la mise à niveau est devenue une routine
Depuis 2022, Durpro suit Odoo de près :
| Version | En production |
|---|---|
| Odoo 15 Enterprise | janvier 2023 |
| Odoo 17 (on a sauté la 16) | automne 2024 |
| Odoo 18 | automne 2025 |
| Odoo 19 | septembre 2026 |
Quatre mises à niveau en quatre ans, sur un système très personnalisé, alors que la décennie précédente nous avait appris à les repousser. Ce n'est pas de la chance; c'est la façon dont le code est écrit :
Les modules sur mesure sont écrits pour être migrés. Ils ont des tests automatisés, et quand leurs données doivent changer de forme, un script de migration qui le fait proprement. Aujourd'hui, 56 des 62 modules propres à Durpro ont leurs tests, qui couvrent 89 % de leurs lignes de code (sans compter le code des tests eux-mêmes). Plus de 1 300 tests roulent à chaque modification, avant que quoi que ce soit n'arrive en production. Pour Odoo 11, il n'y en avait aucun.
Le code partageable est partagé. Durpro roule sur 48 modules génériques que nous publions en code source ouvert (licence LGPL), en plus de ses 78 modules propres. Les modules génériques sont maintenus pour plusieurs clients à la fois, donc ils suivent les versions.
- On répète avant de basculer. Chaque migration roule d'abord sur une copie de la base de production, plusieurs fois, jusqu'à ce que la bascule soit un non-événement.
Pas toujours un non-événement, d'ailleurs. Lors de la bascule vers la 19, quatre tâches planifiées créées à la main dans l'interface sont restées désactivées, et personne ne s'en est aperçu avant qu'un utilisateur demande, des semaines plus tard, pourquoi les soumissions expirées ne s'annulaient plus. Rien de perdu, et la leçon ne restera pas une note dans une liste de choses à vérifier : elle devient un contrôle automatique. Nos migrations s'appuient déjà sur des scripts de vérification post-migration qui vont au-delà de ceux d'Odoo, et nos autres projets de migration en font un usage intensif. Ce qu'une bascule nous apprend, la suivante le vérifie toute seule.
Ce que Durpro fait aujourd'hui, dans un seul système
- La régénération de résine, tracée de bout en bout. Fabrication des réservoirs (déionisation et charbon), expédition, retour des réservoirs des clients, vidange, régénération de la résine épuisée, remplissage — avec numéros de lot et de série là où il le faut, et le contrôle de la qualité intégré au processus.
- Des interventions de service complexes, documentées. Planifier, coordonner et documenter un appel de service qui touche plusieurs systèmes sur plusieurs sites, avec l'historique de chaque équipement chez le client et la rentabilité de chaque intervention.
- Un seul point d'entrée pour toutes les demandes. Le centre d'assistance trie les demandes et les courriels entrants de tous types. Un billet se rattache ou se convertit en soumission, en piste, en commande, en facture ou en facture fournisseur, sans ressaisie.
- Les indicateurs que la direction a choisis. Durpro est gérée selon EOS (Entrepreneurial Operating System); les tableaux de bord de ses indicateurs clés sont construits par Pascale, directement dans Odoo.
- Des coûts qui incluent tout. Frais d'importation intégrés au coût de revient, suivi des prix fournisseurs, commandes ouvertes avec leurs escomptes, limites de crédit appliquées aux clients.
Durpro va plus loin : son équipe développe son propre matériel pour automatiser à distance les courbes de saumure chez ses clients, branché sur le module d'objets connectés (IoT) de Durpro dans Odoo — ce qui rendra chaque visite de service plus efficace.
C'est ce que permet un système unique et structuré : on peut y brancher des capteurs, des automatismes, et maintenant de l'IA. On ne branche rien de tout ça sur un chiffrier.
« Nos indicateurs EOS vivent dans Odoo, sans que personne ait à les reconstruire dans Excel. Mon temps ne sert plus à compiler les chiffres : il sert à les expliquer, et à décider avec la direction. Et comme la comptabilité est tenue en temps réel, je n'ai plus besoin d'attendre la fin du mois pour savoir où on s'en va. »
— Pascale Lohéac, directrice financière, Durpro
Le code appartient à Durpro, et Durpro y travaille
C'est le point que nous tenons à souligner, parce qu'il vaut pour tous nos clients : Durpro possède son code. Les modules génériques sont publics, les modules propres à Durpro sont dans son propre dépôt, et tout tourne sur une version standard d'Odoo. Mais Durpro ne fait pas que posséder ce dépôt; elle s'en sert :
- Son directeur des opérations gère lui-même le carnet de demandes. Les demandes sont clarifiées avec l'aide de l'IA, puis c'est lui qui approuve les exigences et les tâches qui en découlent. Une fois le travail fait et testé, c'est aussi lui qui décide quand il part en production, et le déploiement se fait tout seul.
- Quiconque a accès au dépôt peut y proposer du code, par une demande de fusion standard. Aucune ne passe sans réussir la suite de tests du pipeline d'intégration continue, ce qui protège le système, autant que possible, des régressions qu'introduirait du code sur mesure, le nôtre compris.
À la version 7, chacun de nos correctifs devait passer par l'intégrateur, et nous était facturé. Aujourd'hui, Durpro propose ses propres modifications, et ce sont les tests, pas une facture, qui décident si elles passent.
Si Durpro voulait changer de partenaire demain, elle le pourrait. Elle dépend de Bemade par choix, pas par verrou. C'est exactement ce qui nous manquait avec nos partenaires précédents, et c'est ce que nous offrons maintenant aux autres.
Ce que ça veut dire pour vous
Vous n'avez pas besoin de fonder une entreprise pour obtenir ce que Durpro a obtenu. Mais treize ans d'essais nous ont appris quoi exiger d'un partenaire ERP, quel qu'il soit :
- Qu'il comprenne votre entreprise, pas seulement le logiciel. S'il ne vous pose pas de questions sur vos marges, il ne pourra pas vous aider à les voir.
- Que chaque personnalisation soit documentée et testée — ce qu'elle doit faire, et la preuve qu'elle le fait — pour qu'elle survive à la prochaine version.
- Que le code vous appartienne, et que vous puissiez partir.
- Que la mise à niveau soit une routine, pas un projet qu'on repousse.
Si votre système actuel ne coche pas ces cases — que vous soyez sur Odoo ou sur autre chose — parlons-en. La première conversation dure trente minutes, et vous repartirez au moins avec une idée claire de ce que votre situation vous coûte.