The FIP Journal #14: 87.8% de couverture & zéro abonnement

Marc & Patrik
6 min read

Patrik

Mots de sagesse de la semaine

Dans le désordre, trouve la simplicité. — Albert Einstein

Le feedback, c’est le petit-déjeuner des champions. — Ken Blanchard

Journal

De retour après la pause d’été. C’était bien de passer quelques semaines en montagne là où les températures étaient plus basses. J’ai alterné travail et randonnée, au gré des prévisions météo et de mon humeur.

J’ai bien avancé sur le produit. On s’est fixé deux objectifs pour le lancement public. Le premier, c’est l’automatisation des processus pour réduire notre travail manuel. Le deuxième, c’est un ensemble de fonctionnalités qu’on considère comme “must have” pour le lancement public. Du coup, j’ai fait une release mardi pour ajouter 4 nouveaux cantons et amener notre couverture de population à 87.8%. Ces cantons ont été ajoutés rapidement, l’essentiel du code était déjà en place. C’était surtout du travail de configuration pour sélectionner différents paramètres, comme l’arrondi des résultats intermédiaires et la gestion du statut célibataire vs. marié (c’est-à-dire utiliser des barèmes fiscaux différents ou diviser le revenu pour la recherche dans les tables).

Je suis assez content d’avoir réussi à généraliser le calcul pour la plupart des cantons, en ne gardant que GE, VD et VS avec du code spécifique. Ils faisaient partie des premiers cantons que j’ai implémentés, donc mon impression initiale était qu’ils avaient beaucoup de règles spéciales et que chaque implémentation me prenait deux semaines. Les cantons suivants étaient plus simples, en prenant plutôt 2 jours.

Il reste que le système est incroyablement fragmenté. Par exemple, les règles de déduction pour enfants diffèrent. La Confédération et la moitié des cantons ont un montant unique par enfant. L’autre moitié des cantons a des taux qui dépendent de l’âge. Neuchâtel a des taux pour les 0-3 ans, 4-13 ans et 14-25 ans, tandis que le Valais utilise 0-6 ans, 7-16 ans, 17 ans et 18-25 ans. Certains cantons distinguent aussi si l’enfant vit à la maison ou à l’extérieur, surtout les cantons de montagne où l’école professionnelle ou le gymnase le plus proche peut être si loin que faire la navette tous les jours n’est pas raisonnable.

Règles de déduction pour enfants par canton suisse dans le code
26 cantons, 26 façons de déduire un enfant. Bienvenue en Suisse!

Bref. J’ai encore une release à faire pour automatiser notre intégration avec Stripe et Kit, et c’est déjà code complete, il me reste à tester.

Après ça, on commencera à préparer le lancement public. D’abord, on fera un dark launch: le produit sera ouvert au public mais on ne le communiquera pas pour éviter un rush. On surveillera l’utilisation des ressources au fur et à mesure que le nombre d’utilisateurs augmente pour éviter un “success disaster” et empêcher des pics de demande de support pendant une de nos prochaines vacances. Une fois à l’aise, on commencera à en parler publiquement. En pratique, je mettrai à jour mon profil LinkedIn pour mentionner FI Planner.

Comment j’ai utilisé l’IA cette semaine?

J’ai déjà mentionné que j’étais passé du mode agent au mode plan pour le développement au quotidien. Une autre pratique qui a émergé ces derniers mois, c’est de demander à l’IA de revoir un fichier une fois qu’il est code complete. Le prompt habituel, c’est “review @XYZ.go for correctness, readability, code duplication, dead code, and ensure adherence to idiomatic Go style.”

En général, je reçois 3-4 pages de commentaires sur toutes les horreurs que j’ai codées. Ça inclut des race conditions, des erreurs sérieuses, des fautes de frappe, et plein de bonnes suggestions pour rendre le code propre et prêt pour la production. Ça repère aussi tout le code de développement laissé dans le fichier, surtout les TODOs pour des fonctionnalités que j’ai oublié de terminer et des panic statements qui doivent vraiment être remplacés par des erreurs. La partie idiomatique est aussi utile pour assurer un nommage cohérent des variables ou apprendre des idiomes spécifiques que je ne connaissais pas.

Je fais un point d’honneur à implémenter les changements moi-même pour bien les assimiler.

J’aime tellement ce processus que j’ai commencé à relire rétroactivement tous les fichiers du projet chaque fois que j’y touche.

Et avant que j’oublie

Ce travail sur FI Planner commence à porter ses fruits.

Comme je vais être nomade ces prochaines semaines, c’était le moment de changer de laptop.

Au revoir le MS Surface recyclé de mon fils (frugal!), bienvenue au MacBook Air M5 payé avec les premiers revenus de FI Planner.

La machine est si rapide que mes tests tournent maintenant cinq fois plus vite, c’est impressionnant.

Je m’attendais aussi à un voyage dans le temps: ouvrir la boîte du laptop le vendredi et soudain on est déjà lundi. Mais installer la plupart des logiciels n’a pris que 2 heures.

J’utilise des Macs depuis 1996. Après 16 mois de pause, ça fait du bien d’être de retour!


Marc

Côté produit

Je suis impressionné par la façon dont Patrik arrive à ajouter un nouveau canton, avec toute la complexité fiscale que ça implique. Tellement vite.

Je veux dire, il vient de sortir pas un, pas deux, pas trois, mais quatre (!) cantons en une seule release. Tous les détails sont ici d’ailleurs.

Je suis tellement reconnaissant d’avoir un cofondateur aussi compétent.

À part ça, c’était mode AFK cette dernière semaine. J’ai bien aimé, on a eu plein de temps en famille. Et j’aime encore plus revenir au clavier, motivé comme jamais pour continuer à développer FI Planner.

Ce qui tiraille

Le truc inconfortable cette semaine: 23 invitations envoyées, et zéro abonnement.

Mon hypothèse: les gens sont en mode “rentrée” ou partent en vacances (la vie sans enfants, ça te parle?!), et pas le temps de penser au FI à cette période de l’année.

Mais, comme tout bon entrepreneur le sait, aucune hypothèse ne vaut la réalité. Du coup, vivement ce weekend pour voir si des gens s’abonnent, et sinon, j’ai hâte d’être à la semaine prochaine pour demander aux non-abonnés s’il y a un souci. Parce que seuls eux savent, pas mes suppositions ;)

Note à un ami

Parle à tes clients. Les non-convertis et les convertis. C’est dur. C’est chronophage, mais punaise tu apprends tellement à chaque fois.

Je vais sûrement copier-coller cette section pour moi-même plusieurs fois cette année, tellement c’est inconfortable de faire face à la réalité. Mais bon, c’est comme ça qu’on devient “chanceux” avec sa startup!

Outil de la semaine

Linear MCP!

Je l’utilise maintenant avec Walter comme nouvelle capacité quand je trie les échanges d’emails avec les clients. Si mon Chief of Staff repère une demande de fonctionnalité ou un truc du genre, il vérifie si un ticket existe déjà dans Linear. Si le ticket existe, il ajoute un commentaire avec un lien vers l’email (et la date) de la personne qui a donné le feedback.

S’il n’existe pas, il me demande si je veux créer le ticket automatiquement.

On vit dans le futur. J’adore! 🧑‍🚀

Voir en grand