J'ai un client qui souhaite que je fournisse le code source avec un binaire d'application développé. À l'origine, ils ne disaient rien sur le code source, mais ils ont récemment déclaré en avoir besoin. Le contrat n'est pas finalisé. Ils ont accepté le travail, n'ont pas signé, puis sont revenus avec cette clause.
Le problème est le suivant: j'ai créé une base de code au fil des ans et je l'ai utilisée comme modèle pour la plupart des applications que j'écris. C'est beaucoup plus large que la portée du projet.
J'ai également l'intention de l'utiliser pour un produit, donc je ne souhaite vraiment pas le fournir pour un projet relativement petit.
J'imagine que ce n'est pas la première fois que cela se produit dans cette industrie. Quel est le meilleur moyen de contourner ce problème? Je suppose que des choses comme des bibliothèques partagées pourraient aider.
la source
Réponses:
La première chose à garder à l'esprit est que le code source a une valeur distincte des fichiers binaires. Il est parfaitement raisonnable de refuser de signer un contrat exigeant la livraison du code source ou de demander des paiements supplémentaires pour la livraison du code source. Les contrats sont des documents à double sens. Ne laissez pas l’autre partie dicter ce qui est requis simplement parce qu’elles sont des "grandes entreprises" et "le font tout le temps". Tout d'abord, décidez ce que vous êtes prêt à fournir et comment vous souhaitez être rémunéré. Ensuite, confiez leur contrat à un avocat et déterminez ce qui doit changer. Ensuite, vous négociez.
Ne faites pas ce que font beaucoup de jeunes quand ils commencent à sous-traiter. Ne vous contentez pas de signer car il semble qu’ils aient beaucoup d’expérience et pas vous. C'est un bon moyen de se faire arnaquer.
Cherchez pourquoi ils veulent la source. Ils peuvent le vouloir pour pouvoir utiliser ultérieurement un autre développeur. Ou ils peuvent le vouloir simplement parce qu'ils craignent que vous ne soyez heurté par un bus et qu'ils se retrouvent soudain avec des fichiers binaires qu'ils ne peuvent améliorer. Si c'est ce deuxième cas, examinez un service de dépôt de code logiciel . Ces services contiennent le code source en cas de faillite ou d’impossibilité de maintenir le logiciel. Cela peut satisfaire à la fois votre désir de garder votre code propriétaire pour servir d'autres clients et leur désir de ne pas être obligés de garder le sac avec un ensemble incalculable de fichiers binaires en cas de problème.
la source
"Non" est une réponse parfaite, en fait c'est une réponse extrêmement utile qui, pour une raison quelconque, que je ne comprends pas, est très sous-estimée.
"Bonjour, nous avons soudainement décidé de ne vouloir que du code source, gratuitement."
"Salut non."
Ce n'est pas si difficile, vraiment.
Ensuite, s’ils souhaitent payer des sommes énormes par rapport à ce qu’ils vous doivent déjà , vous pouvez leur donner une version simplifiée de votre demande, qui ne comprend que les sources dont ils ont réellement besoin, et en veillant à ce qu’ils obtiennent des droits absolument non exclusifs.
Ne compliquez pas les choses simples.
la source
Votre question est "quel est le meilleur moyen de contourner ce problème?" Mais quel est selon vous le problème? D'autres ont fait remarquer à juste titre qu'il s'agissait d'une question de négociation: tout a une valeur et c'est à vous de donner au client un prix pour fournir ce que vous demandez.
Mais vous devez également examiner avec soin - et inscrire dans le contrat - les implications de la fourniture du code. Est-ce juste pour que le client puisse le voir? Le client peut-il le modifier? Et en particulier, envisageriez-vous d'accorder à votre client des droits exclusifs sur la base de code que vous avez créée au fil des ans et qui sert de modèle pour la plupart des applications afin que vous ne puissiez plus jamais l'utiliser vous-même?
Vous devez vous assurer que le contrat indique explicitement qui a le droit d'utiliser le code et de quelle manière.
la source
N'oubliez pas que tout code source nécessite une licence. Si vous remettez le code source, l'entreprise peut utiliser le code source pour faire tout ce que la licence permet, et tout ce qui va au-delà constitue une violation du droit d'auteur. Donc, si vous remettez du code source, vous obtiendrez un contrat qui indique clairement que vous conservez les droits d'auteur exclusifs du code source et précise quelles utilisations du code source sont autorisées. Et bien sûr, le code source + licence ne serait pas gratuit.
Il est peu probable qu'une grande entreprise enfreigne votre droit d'auteur, car sa capture causerait un préjudice majeur à sa réputation, outre les dommages financiers. D'autre part, payer pour un logiciel sans garantie que tous les problèmes puissent être résolus à l'avenir peut être inacceptable pour le client.
la source
Auparavant, j'avais l'habitude de fournir le code source (bibliothèques et tous) sous une licence MIT au client. Si vos bibliothèques sont bien organisées, vous ne fournissez que les fichiers / ressources nécessaires pour ce client particulier, mais rien de plus. Je pense que c'est juste pour moi et pour le client. Cependant, il y avait toujours la question du nouveau code écrit pour ce client particulier sous contrat qui ne faisait pas partie de la bibliothèque auparavant. J'ai donc commencé à discuter du problème avec le client avant de commencer le projet. Certains clients voulaient être propriétaires de ce code, d'autres non (j'ai toujours donné des incitations négatives, comme des prix plus élevés pour ceux qui le font). Mais, pour certains clients, cette discussion était très déroutante et parfois, je me retrouvais à parler à 3 ou 5 personnes différentes (y compris leur avocat) juste pour faire approuver le projet.
Alors maintenant, toutes mes bibliothèques font partie d’un cadre personnalisé que j’utilise toujours pour développer et j’explique au client que je vais utiliser ce cadre, mais que ce cadre est un produit différent avec une licence différente. (Parfois, j'utilise des "composants logiciels" pour expliquer, parce que "framework" peut leur être inconnu). Je fournis toujours le code des fichiers utilisés sous une licence MIT et (parce que tout le code est bien organisé) le code de bas niveau (même le nouveau) reste dans le cadre (pour pouvoir être réutilisé par moi et par eux) mais le code relatif leur application consiste uniquement à conserver leurs propres conditions (ce code ne me servirait probablement pas à le réutiliser dans un autre projet). Bien sûr, tout cela est écrit correctement dans le contrat. Je pense que c'est juste aussi.
La clé est: "ces composants sont un produit différent" et tout est écrit dans un contrat avant de commencer.
Alors oui, votre idée d'utiliser des bibliothèques partagées est peut-être juste. Cependant, je vous demande, pourquoi ne leur fournissez-vous pas le code source que vous avez utilisé, sous une licence qui leur permettra de réduire leurs risques? Je pense que ce serait juste.
la source
La façon de régler ce problème est de négocier.
S'ils veulent du code source, ils doivent être prêts à payer pour cela, et c'est à vous de décider combien cela devrait être.
D'autre part ... s'ils ne sont pas disposés à payer ce que vous voulez, ils peuvent décider de "prendre leurs affaires ailleurs".
Bienvenue dans le monde des affaires :-)
Et lorsque vous parlez à de futurs clients, assurez-vous de mentionner ce problème au tout début ... pour éviter de perdre tout le temps de chacun.
Il convient également de noter que ce que vous faites est un anathème pour les développeurs open source et pour les clients (instruits) à la recherche de solutions open source.
la source
C'est peut-être trop tard pour vous, dans la mesure où vous avez peut-être déjà convenu contractuellement de le faire et que vous auriez pu accepter des conditions mutuellement incompatibles avec différents clients.
Vous pouvez fournir votre code source à vos clients de deux manières. Propriété du droit d'auteur et sous licence.
Certains clients voudront posséder le code source. Cela signifie qu’à la fin du processus, ils vous paieront de l’argent et vous leur accorderez en échange le droit d’auteur du code que vous avez créé pour eux. Cela s’explique notamment par le fait qu’ils voient un potentiel important de propriété intellectuelle dans le code source et souhaitent peut-être l’évaluer dans le bilan de leur société. Dans ce scénario, vous ne pourrez plus utiliser ce code source pour d'autres projets, sauf si vous obtenez également une licence de votre client vous donnant ce droit.
Si votre client achète un produit «standard», il s’attend à recevoir une licence lui permettant d’utiliser le logiciel et non à la propriété du code source. Ils devraient s’attendre à ce que vous vendiez le même logiciel (ou un logiciel similaire) à de nombreuses autres organisations et qu’ils bénéficient, espérons-le, d’un coût d’achat moins élevé en raison de la clientèle plus large.
Cependant, la situation dans cette question est un méli-mélo des deux.
Voici ce que je voudrais pouvoir faire. J'accorderais à votre client une licence pour utiliser (et modifier) votre code partagé. Si le client m'interroge, je vous ferai remarquer qu'il s'agit d'un code partagé que vous avez déjà utilisé dans plusieurs projets et que des offres actuelles ont été mis en place pour les travaux futurs et basé sur votre utilisation continue de ce travail. Faites remarquer que cela a eu pour effet de réduire le temps consacré à ce projet par votre client, ce qui lui a coûté moins cher. Comme d'autres bibliothèques de code partagées utilisées par le projet, elles disposent d'une licence pour utiliser ce code et permettre à d'autres équipes de développement de le développer, ainsi que d'autres projets basés sur cette bibliothèque. Cependant, s'ils préfèrent être propriétaires de tout le code, vous êtes prêt à en créer un autre, mais cela entraînerait des frais supplémentaires.
Selon ce à quoi vous vous êtes déjà engagé, vous pourriez avoir à écrire une fonctionnalité de remplacement gratuitement ou à donner votre code source.
Rappelez-vous, il existe différents types de bibliothèques. La bibliothèque de modèles standard en C ++ est un bon exemple de bibliothèque incluse au niveau du code source et compilée dans un exécutable de projet qui peut être assez similaire à la façon dont vous avez utilisé votre code commun.
la source
Si vous utilisez un tiers avec le logiciel que vous livrez, il est probable que vous ne possédiez pas le code source de ce tiers. Vous livrerez toujours le logiciel à l'entreprise avec les fichiers binaires du tiers. Le code que vous avez développé en tant que cadre partagé dans tous vos projets est identique à celui d'un tiers, même s'il vous appartient. Dans ce cas, la société a exactement le même risque avec les fichiers binaires de votre framework que avec le tiers. Pourquoi, dans ce cas, donneriez-vous à l'entreprise le code source de votre framework? Vous pouvez lui fournir une bonne documentation sur l'API avec un contrat de licence et le reste. Si votre code contient la prochaine grande chose qui révolutionnera l'industrie, c'est une autre histoire, mais ce n'est généralement pas le cas.
la source