Ne pas se tromper lors de la mise en place d’un système comptable dans une startup
- Dans une entreprise fintech, ne pas perdre la trace des flux d’argent est la base. Pourtant, dans certaines startups, il arrive que quelques centimes se perdent à chaque transaction.
- Dans les startups, on suit souvent la philosophie « le faire fonctionner, le faire correctement, puis le faire rapidement », sans mettre en place de système de comptabilité en partie double.
- Ces erreurs entraînent des plaintes des utilisateurs et freinent la croissance de l’entreprise.
- L’équipe de support client a tenté de résoudre le problème en compensant manuellement les transactions erronées.
Importance du système comptable
- L’argent est créé lorsqu’il se déplace, et le suivre est complexe.
- Un système de comptabilité en partie simple donne une vision des flux de fonds, mais ne permet pas d’en expliquer la raison.
- Un système de comptabilité en partie double peut résoudre ce problème en suivant à la fois l’origine et la destination de l’argent.
Modèle de données d’un système en partie double
- Un système de comptabilité en partie double se compose de trois entités : comptes, écritures et transactions.
- Les comptes représentent les variations de valeur, et les écritures représentent les flux de fonds entre les comptes.
- Les transactions garantissent que les écritures sont correctement appariées.
Deux systèmes comptables
- Le système comptable est l’interface du ledger vue de l’extérieur, tandis que le système d’ingénierie en est l’implémentation.
- Le système comptable exige une haute disponibilité et une faible latence, tandis que le système d’ingénierie exige une forte cohérence et l’exactitude des données.
Fonctionnement des écritures
- Une écriture peut être dans l’un de trois états : en attente, annulée ou comptabilisée.
- Une écriture est toujours créée à l’état en attente, et une écriture annulée peut être remplacée par une écriture comptabilisée.
Fonctionnement des transactions
- Une transaction n’est comptabilisée que lorsque les écritures sont comptabilisées ou annulées.
- Si une transaction échoue partiellement, elle peut être annulée sémantiquement à l’aide d’écritures de compensation.
Fonctionnement des comptes
- Un compte est lié à plusieurs écritures, et le solde total doit correspondre à la somme des soldes individuels de toutes les écritures.
- La méthode de calcul du solde total varie selon le solde normal du compte.
Conclusion
- Un ledger est un exemple clair d’un problème difficile d’informatique déguisé en domaine non technique.
- Construire un système en partie double est difficile sans le contexte approprié, mais cela permet de prendre de meilleures décisions.
1 commentaires
Avis sur Hacker News
Dans le cas des clients de Synapse, beaucoup d’argent a disparu. Les banques doivent gérer strictement les flux de fonds, mais les fintech regroupent tous les fonds dans des comptes FBO et construisent un grand livre pour les suivre. Dans le cas de Synapse, les soldes clients inscrits dans le grand livre étaient supérieurs aux fonds réellement présents sur les comptes FBO. Il est plus probable qu’il s’agisse d’un grand livre défectueux que d’une fraude. Il est recommandé de ne pas déposer son argent sur un compte de dépôt fintech et d’utiliser une vraie banque. Les fintech affirment souvent que les dépôts sont couverts par l’assurance FDIC, mais cela ne protège que si la banque sous-jacente fait faillite.
En travaillant chez Google, certains ont appris qu’on obtenait de la scalabilité au prix de la fiabilité ou de la précision. Quand on traite des millions de requêtes, certaines peuvent échouer, ce qui montre une différence d’état d’esprit en ingénierie. Il arrive souvent que Gmail affiche une erreur à l’ouverture, mais les utilisateurs résolvent le problème en actualisant la page. Si la durabilité du stockage est de 99,99999 %, alors sur 2 milliards de clients, 200 personnes peuvent subir un désagrément.
L’importance de la connaissance du domaine est soulignée dans le leadership d’ingénierie. Si l’on travaille dans une entreprise financière, il faut comprendre la finance, et c’est aussi vrai dans le journalisme ou le commerce. Les organisations qui réussissent incluent, lors des entretiens des équipes techniques, des questions non techniques liées au domaine.
Il est important de recruter les bonnes personnes. Plutôt que d’embaucher quelqu’un qui maîtrise bien les structures de données et les algorithmes, il faut recruter quelqu’un capable de construire ce dont on a réellement besoin. Il peut être utile que les ingénieurs soient formés dans d’autres disciplines. La résolution de problèmes et l’ingénierie passent par une compréhension approfondie du secteur et par la collaboration avec des experts.
Une personne partage son expérience de construction d’un système de facturation dans une startup internet/télécoms. La logique de facturation avait été implémentée à deux endroits, ce qui rendait difficile leur synchronisation. Les factures étaient examinées manuellement pour éviter les erreurs, et cette double logique servait aussi à les prévenir. Cette expérience a permis de comprendre l’importance de la comptabilité en partie double.
Beaucoup se prononcent en faveur d’un système comptable à entrée unique. La comptabilité à entrée unique peut être plus simple, mais il vaut mieux utiliser la comptabilité en partie double. Des ressources sur la comptabilité à destination des programmeurs sont recherchées.
Il existe une mauvaise compréhension du principe « make it work, make it right, make it fast ». « make it right » est la deuxième étape, et le travail s’arrête tant que le système ne fonctionne pas correctement. L’optimisation ne commence qu’une fois tous les problèmes résolus.
En l’absence de tests, on peut se retrouver à perdre de l’argent dans les transactions. Considérer ce type de problème comme normal lorsqu’on construit un système financier est une erreur.
Si l’on essaie de réinventer une partie d’une banque, il vaut mieux s’inspirer de systèmes déjà éprouvés. Par exemple, on peut se référer aux schémas de transactions de dépôts du core banking utilisés par les petites et moyennes institutions financières aux États-Unis.
Les logiciels qui manipulent de l’argent doivent être traités avec une extrême prudence, et il faut reconnaître les erreurs du passé. Le scandale de la poste britannique montre les conséquences bien réelles de ce type de problèmes.