L’objet de ce billet n’est pas de vous présenter l’évolution de notre logiciel Cleemy de gestion des notes de frais, il s’agit d’un retour d’expérience sur son développement que je vous livre en tant que chef de produit – product owner pour les initiés.
Si vous voulez en savoir plus sur la fonctionnalité de gestion des avances sur note de frais elle-même, consultez sa documentation. Pour les braves, j’ai même rédigé un article à propos de la comptabilité des notes de frais dans Cleemy.
Cette évolution sur les avances est sans conteste celle dont la réalisation a été le plus longtemps reportée de toute l’histoire de Cleemy. Mon premier jet de spécifications date de mars 2013 !
Comment en sommes-nous venus à décaler autant ce chantier ? Ceux qui sont dans le métier le savent, la conception logicielle est une suite ininterrompue d’arbitrages.
Les fonctionnalités pertinentes évoluent avec le parc client
Cleemy avait une vingtaine d’entreprises clientes à l’orée de 2013, plus de 200 en 2016. La typologie de nos clients a fortement évolué sur cette période. Initialement, la quasi-totalité de nos clients étaient de petites PME ; les sociétés de plus de 100 salariés représentent désormais la majorité de nos utilisateurs, suivies par les start-ups.
Les attentes remontées par notre parc client ne sont pas du tout les mêmes qu’en 2013, nous avons donc développé en priorité les fonctionnalités qui leur importaient le plus : application mobile, synchronisation automatique des cartes bancaires, fonctionnalités poussées d’export comptable, etc.
Les secteurs d’activité les plus représentés ont également changé. Nous avons par exemple acquis de nombreux clients dans le secteur de la santé, soumis à des réglementations particulières sur leurs notes de frais. Nous avions à l’époque estimé que le développement d’une réponse à ce besoin primait sur l’ajout de la gestion des avances.
Le SaaS, c’est la démocratie… Ce serait même la tyrannie de la majorité, si nous ne biaisions pas en partie nos arbitrages en faveur des clients historiques ou de ceux qui nous ont le plus appris.
L’ajout d’une fonctionnalité doit être particulièrement mûrie dans les logiciels en SaaS
Etant donné que tous les clients ont exactement la même version du logiciel, un éditeur SaaS tel que Lucca est confronté à des enjeux différents de ceux des éditeurs distribuant leurs produits en licence.
En SaaS, tous les modules doivent rester interopérables à chaque évolution. L’enjeu d’un ajout de fonctionnalité est donc très important. On ne peut pas laisser un client sur une ancienne version du logiciel si l’un des modules n’a pas encore été mis à jour.
La gestion des avances fait partie des fonctionnalités qui ont un impact très lourd sur le cœur du logiciel. Nous avons dû étoffer considérablement les aptitudes comptables de Cleemy afin de gérer cette problématique de manière totalement robuste et extensible fonctionnellement. Il aurait été absurde de faire l’évolution si nous n’étions pas sûrs de la conserver ad vitam sous une forme proche de celle que l’on avait conçue au départ.
Ce risque et les délais nous ont également incités à nous pencher en profondeur sur la problématique métier et à faire la part entre des desiderata spécifiques de clients et les fonctionnalités qui seront les plus utiles. Plus de la moitié des fonctionnalités secondaires que j’avais envisagées à l’origine ont été écartées. Par exemple, les avances en devises : les coffres-forts remplis de billets de monnaies exotiques sont en voie de disparition rapide dans les entreprises !
Une évolution s’insère dans une roadmap globale et un environnement technologique dynamique
Le développement d’une évolution peut être plus pertinent si on le reporte, notamment dans les cas où :
- Certains de ses prérequis fonctionnels seront développés au cours d’autres évolutions importantes.
- Son coût de développement peut chuter radicalement suite à des changements de technologie plus globaux dans le logiciel.
- Elle peut elle-même simplifier des évolutions ultérieures.
Illustrons ces trois problématiques pour la gestion des avances sur les notes de frais.
Pour gérer les avances, il faut notamment gérer les montants à payer au salarié d’une manière orthodoxe d’un point de vue comptable (pour les initiés, ce sont des enjeux de suivi du compte de tiers et de lettrage). Les avances s’inscrivaient donc dans la continuité de notre refonte du module de paiement… Qui suivait elle-même logiquement la refonte des exports comptables.
Lucca a décidé de revoir ses préceptes architecturaux en passant au Domain Driven Design. Cette philosophie de développement est en effet très adaptée à notre gamme de produits, tous spécialisés dans un domaine métier précis et s’appuyant sur une infrastructure et des concepts fondamentaux mutualisés.
La migration vers le Domain Driven Design impliquait de revoir des parties conséquentes de Cleemy. Ce chantier technique de longue haleine a été réalisé avant les exports et les paiements ; il a monopolisé près de 180 jours-homme, soit presque autant que les évolutions d’export comptable, de paiement et des avances réunies !
Nous estimons toutefois que nous avons déjà remboursé une bonne partie de ce surcoût grâce au temps que nous gagnons chaque jour grâce à ces travaux, tout en nous permettant d’accroître la qualité avec l’ajout de nombreux tests automatisés.
Cerise sur le gâteau, la gestion des avances va nous permettre de renforcer l’intérêt de notre module d’import des cartes bancaires. Il sera ainsi possible de gérer simplement les retraits d’espèces ou les dépenses personnelles réglées avec des cartes de société : ces transactions seront tout simplement converties en avance au salarié.
A-t-on bien fait de reporter ce projet de 3 ans ?
À la suite des analyses ci-dessus, je dirais avec le recul que mettre en place les avances il y a trois ans aurait été une erreur de stratégie produit.
L’agilité dans le développement logiciel ne consiste pas simplement à sortir rapidement des évolutions et à itérer sur ces versions préliminaires. Je suis convaincu que c’est également une démarche d’articulation continuelle entre des projets précis impulsés par le marché et une vision sur le long terme à la dynamique plus lente.