Le client ne veut pas payer un projet parce que j'ai utilisé un générateur de code

Aug 16 2020

Toute la situation me semble des conneries, mais je veux un deuxième avis parce que ça va trop loin.

Un peu de contexte... Je suis pigiste, j'écris en VBA ou en c#. 75% des projets sont des microprojets sous Excel.

Au fil des ans, j'ai construit ma propre bibliothèque et un générateur de code. Le générateur de code écrit des classes et des méthodes semi-standard. Des choses qui ont une structure mais qui nécessitent souvent un ajustement manuel pour la version finale. Afin d'avoir un code modulaire où je peux modifier manuellement certaines parties et toujours régénérer d'autres parties sans perdre les modifications, le générateur utilise des balises pour envelopper chaque "partie" et lorsque je livre le travail, je ne les supprime pas.

Le client était vraiment content après que j'aie livré le projet (toutes les phrases définies, "maintenant nous allons faire ceci autre ..." etc.). Quelques jours plus tard, je reçois un e-mail où il demande quelles <Sometag>étaient ces lignes. J'ai répondu avec la vérité. Balises utilisées par un générateur de code pour trouver des parties spécifiques du code. Il était intéressé par VBA donc j'ai pensé qu'une explication perspicace était appréciée.

Une semaine plus tard, je lui ai envoyé la facture et le lendemain, il m'a répondu que, puisque je n'avais pas réellement écrit le travail, le prix convenu n'était plus valable . Maintenant, il veut payer moins de la moitié du prix convenu. (???)

Mais la feuille de calcul fait toujours ce qu'elle est censée faire. Le générateur de code est à moi. J'ai écrit chaque ligne et il y a des centaines d'heures de travail dedans.

Que devrais-je faire? Est-ce injuste d'utiliser un tel outil ? Le client a-t-il raison ? Sur ce projet, il y a environ 9,5k lignes de code. 3k de ma bibliothèque, env. 4k du générateur et le reste manuscrit. Je suis d'accord que ce n'est pas un code très descriptif, mais ce n'est pas un si mauvais code IMO. Dans le contrat (mais aussi par e-mail et appel vocal), nous n'avons jamais convenu ni même parlé de quoi que ce soit concernant la forme du code. Il m'a dit que lui et ses employés avaient essayé de faire quelque chose comme ça et que le résultat ne fonctionnait pas.

Ma plus grande préoccupation en repoussant trop fort est qu'il pourrait écrire une critique négative sur Google MyBusiness. Je n'ai jamais été dans une telle situation et je ne veux pas que ma réputation soit compromise pour un projet relativement petit. L'indemnisation en cause n'est pas non plus suffisamment élevée pour justifier une action en justice.

Réponses

141 TomTom Aug 16 2020 at 00:50

Agence de recouvrement. Ce n'est pas un client mais un problème, et ces "clients" ne valent pas vos efforts. Facture, procédez à une agence de recouvrement dès que possible pour vous en débarrasser mentalement. Il n'a aucun intérêt. Comment vous faites quelque chose est VOTRE décision, pas la sienne.

58 JoeStrazzere Aug 16 2020 at 01:14

Que devrais-je faire? Pensez-vous qu'il est injuste d'utiliser un tel outil ?

Si j'étais vous, j'expliquerais au client comment l'utilisation du générateur de code que vous avez conçu vous permet de fournir des solutions intéressantes, mais peu coûteuses, qui répondent aux besoins des clients. Et je précise que la solution apportée répond clairement aux besoins de ce client, compte tenu de sa satisfaction initiale.

Je pourrais proposer de déchirer la facture si le client ne veut pas la solution au prix actuel, et promet par écrit de la jeter et de perdre sa licence d'utilisation. C'est un remède particulièrement efficace si vous vous attendez à ce que le client ait besoin d'entretien de votre part à un moment donné. Vous ne voulez pas continuer à servir un client mécontent.

Le client a-t-il raison ?

Non, le client n'a pas de point valide. Étant donné que le client a obtenu ce pour quoi il s'est engagé, il doit payer le prix convenu. Peu importe comment le code a été construit.

Cela dit, vous pourriez éviter de futurs problèmes si vous discutez de votre processus avec de futurs clients avant de signer le contrat.

le générateur utilise des balises pour envelopper chaque "partie" et lorsque je livre le travail, je ne les supprime pas.

Vous voudrez peut-être reconsidérer la partie "ne les supprimez pas".

Ma plus grande préoccupation pour une solution "dure" est qu'il écrit une critique négative. Je n'ai jamais été dans une telle situation et je ne veux pas que ma réputation soit compromise pour un projet relativement petit.

Vous décidez de la valeur d'un avis négatif potentiel pour vous.

32 PeteCon Aug 16 2020 at 05:27

Dites au client que si le projet avait été écrit à partir de zéro, cela aurait pris beaucoup plus de temps, aurait eu plus de bogues et n'aurait jamais été livré à temps. Maintenant, comment aimerait-il payer ? Carte de crédit ou Chèque ?

Et c'est votre dernière communication avec lui. Le contrat était de produire une solution à un problème qu'il avait, dans un budget et un délai. Vous l'avez fait - votre erreur a été d'être assez courtois pour expliquer votre processus.

Vous n'avez pas besoin de clients comme celui-ci. Si vous avez un contrat, adressez-vous à la Cour des petites créances et soyez payé. Si vous ne le faites pas, vous devrez peut-être l'annuler - la prochaine fois, obtenez un contrat (remarque : si vous l'annulez, assurez-vous que votre avocat dit au client qu'il n'a aucune licence pour utiliser le logiciel que vous avez écrit pour eux)

25 MatthewGaiser Aug 16 2020 at 01:18

Pour une raison quelconque, les gens pensent que seuls les coûts marginaux sont réels, et non les coûts en capital. Vous voyez cette attitude partout, des produits pharmaceutiques à la rétention et au recrutement. C'est une attitude étrange, mais courante.

Et c'est systématiquement faux.

Vous avez un ami avocat ? Une action en justice pourrait simplement être une mise en demeure.

22 Kilisi Aug 16 2020 at 06:40

En tant que Freelancer, vous ne laissez aucune marge de manœuvre à ce genre de choses. Soyez bref et professionnel et exigez un paiement. Ne vous lancez pas dans un discours là-dessus. Renvoyez simplement la facture avec une courte note indiquant qu'elle a déjà été négociée, que vous avez rempli votre part et que vous attendez un paiement, et s'ils refusent catégoriquement de vous payer pour le travail effectué, veuillez vous en informer.

Ensuite, donnez-lui un peu de temps, si aucun paiement n'est effectué dans un délai raisonnable, vous pouvez alors examiner les mesures à prendre.

Ne soyez pas frustré et ne sautez pas dans des fusils flamboyants, faites-le d'abord avant toute autre chose. Beaucoup de gens essaient d'éviter de payer, on s'y habitue en tant que pigiste.

18 Steve Aug 16 2020 at 02:42

S'il pense que vous avez "triché", peut-être plutôt qu'un "générateur de code", une meilleure description serait que vous avez "compilé à partir d'un langage de description personnalisé" ou "compilé à partir d'un outil graphique". Lorsque vous utilisez un rabot électrique ou une machine à commande numérique, vous l'appelez à peine un "générateur de menuiserie".

Est-ce que son vrai grief est peut-être que vous n'avez pas remis le vrai code source pour une maintenance future ? Il est possible que le client soit simplement déraisonnable, mais une préoccupation commerciale beaucoup plus crédible (et raisonnable) pourrait être que vous ayez lié le travail à votre outil propriétaire, sans laisser le client disposer de l'outil pour la maintenance.

Une bonne analogie serait si le client vous demandait de concevoir un moteur à combustion, mais plutôt que d'utiliser des boulons et des filetages standard métriques, vous utilisiez un système obscur entièrement de votre propre conception, ce qui rend prohibitif l'entretien du moteur à l'avenir sans le client se référant à vous.

Vous n'avez peut-être pas eu l'intention sournoise d'utiliser votre outil personnalisé et il s'agissait simplement d'un appareil pour améliorer votre productivité, mais il n'est pas rare que le code généré par l'outil soit plus complexe ou moins idiomatique que le code fabriqué à la main.

Le client peut très bien considérer qu'à moins que vous ne lui mettiez l'outil de génération à sa disposition, quel que soit le temps que vous gagnerez à créer le code avec cet outil, cela lui coûtera à l'avenir des coûts de blocage pour la maintenance ou des coûts de réécriture l'application à partir de zéro lorsqu'il veut que quelqu'un d'autre la modifie. Est-il possible que ce soit la vraie nature du grief?

11 DaveG Aug 16 2020 at 03:03

Non, le client n'a pas raison, et non, vous n'avez rien fait de mal. Vous avez livré le produit demandé par le client au prix qu'il jugeait raisonnable. La façon dont vous avez créé le produit est totalement hors de propos.

Ce que vous pourriez faire pour lisser le client, c'est expliquer que tous les logiciels sont développés à l'aide d'outils... des compilateurs, des bibliothèques, des générateurs de code, etc. Tous les outils pour rendre la création de logiciels plus efficace, tout comme un menuisier qui rénove sa maison rend son travail plus efficace. Le fait que vous utilisiez des outils a déjà été pris en compte dans le prix que vous avez proposé au client. Si vous n'utilisiez pas de générateur de code, vous devrez facturer davantage pour couvrir l'augmentation des coûts.

8 BeKindToNewUsers Aug 16 2020 at 13:41

Soyez bref et honnête....

Le prix que j'ai cité comprenait l'utilisation du générateur de code. Si je n'avais pas utilisé le générateur de code, j'aurais dû facturer plus pour le projet. S'il y a quelque chose qui n'est pas satisfaisant avec le résultat, faites-le moi savoir et nous pourrons discuter d'une résolution.

Considérez également la possibilité qu'il ait un boeuf légitime avec le code généré. Par exemple, le code n'est peut-être pas facile à modifier.

5 gnasher729 Aug 16 2020 at 06:08

En tant que client (et sachant comment fonctionne le développement de logiciels), je voudrais pouvoir confier votre livraison à une autre entreprise l'année prochaine, et laisser cette entreprise apporter des modifications ou des ajouts, à un prix normal.

Donc, si ce que vous livrez rend cela inhabituellement difficile, alors le client a raison. Si ce n'est pas beaucoup plus difficile à cause de vos outils, alors non. Et que vous ayez utilisé des outils pour développer plus efficacement n'est pas une raison pour ne pas payer.

Mais ce qui compte vraiment, c'est ce que dit le contrat. Si vous avez livré ce que dit le contrat, le client doit payer.

5 aliential Aug 16 2020 at 11:46

Il semble y avoir un manque de communication au départ. Si le client voulait un code de base facilement modifiable à modifier selon son choix et apprendre un peu de VB par lui-même, alors lui et vous ignoriez tous les deux les intentions de l'autre.

Certains générateurs de code donnent du code très verbeux et illisible, donc je ne sais pas pourquoi les gens commentent sans même voir le code, ou la demande de travail... s'il dit "parce que je conçois mon propre code/projet intégré à votre travail" par exemple... Nous ne connaissons pas la somme convenue et le volume de travail. Il peut avoir signé l'accord et le prix basé sur le codage manuel de son propre travail, c'est-à-dire qu'il s'attendait à plus de travail et à un résultat manuel. Personnellement, je préviendrais un client des détails d'un générateur de code s'il est un programmeur junior sans beaucoup d'argent qui a besoin de code éditable.

Il y a trop de variables et d'inconnues dans cette question pour considérer le client comme une entité espiègle sans visage, nous n'avons même pas de transcription du motif de la plainte ou de la demande de code. Quel était le nombre de lignes et le prix ? 100 ou 10000 ? J'ai été surpris que personne ne considère si le client a un côté humain à dire ou s'il a des émotions ou s'il s'agit d'un individu junior ou d'un groupe, sinon c'est un jugement unilatéral.

TheonethatlovesFP Aug 18 2020 at 14:10

Je ne tenterai pas de répondre directement à la question puisque vous avez déjà beaucoup de bons conseils ici (personnellement, je vois un client saisir n'importe quelle raison à laquelle il peut penser pour ne pas payer. Si ce n'était pas le générateur de code, il en trouverait autre prétexte ).

Mon conseil pour l'avenir, cependant, est d'utiliser un schéma "Essai gratuit pendant 30 jours, puis vous devez entrer une clé de licence pour continuer à utiliser" dans vos produits de code.
Par 30 jours, j'entends bien sûr "le temps qu'il faut pour être payé", pas exactement 30 jours.

Maintenant, si le client se plaint... ça ne sert à rien !
Vous bénéficiez d'un essai complet pour effectuer des tests d'acceptation par les utilisateurs et vérifier l'aptitude au travail.
Quand, si , vous payez, le contrat m'oblige à vous donner une clé de licence... ce que je ferai, bien sûr.
Vous ne payez pas et essayez de me draguer ? ! J'espère que vous avez apprécié de voir à quel point mon application vous est utile, à quel point vous pourriez en bénéficier... si vous aviez seulement payé.

Si vous le pouvez, techniquement, je dirais aller plus loin et, lorsque l'essai est terminé et qu'aucune licence n'a été fournie, attendez, disons 3 jours, puis déclenchez une désinstallation/suppression complète du code de votre produit de la machine cible.
Vous ne voulez pas que le client fasse de l'ingénierie inverse pour obtenir une licence valide et ne vous paie pas ce qui vous est dû.

Assurez-vous simplement que votre avocat rend tout cela légal dans le contrat.
Vous savez, "légaliser" en "Le produit codé est la propriété exclusive de ToninCorp, jusqu'au moment où la compensation convenue a été remise par le client à ToninCorp, auquel cas la propriété du produit est automatiquement transférée au client.
Cela ne ne pas donner droit au client aux services de maintenance par ToninCorp sans autre compensation".

Je suis désolé que vous vous soyez fait escroquer. C'est de la merde et ça arrive à chacun de nous, même les plus gardés.
Obtenez ce qui vous est dû à tout prix.
Une mauvaise critique est mauvaise, c'est vrai. Obtenir un nom pour être un push-over est une fin de carrière !
Il y a une raison pour laquelle la foule ne laisse personne s'en tirer, même s'il a volé un chewing-gum ! Si vous obtenez le nom de quelqu'un qui peut être intimidé et dont on peut profiter... ce seront les seuls clients qui se présenteront à vous.
C'est une spirale de fin de carrière.
Ne le faites pas!