Je suis actuellement étudiant (Applied Information Technology) et nous faisons la plupart de notre programmation en C # et Java. Je me demandais comment, en tant que développeur, je peux gagner de l'argent avec l'open source. Je sais qu'il y a une histoire de soutien ou de prestation de services, mais je ne suis pas un administrateur système et je n'aime pas le travail d'administrateur système. En fait, j'aimerais mettre la main sur du C et du C++ à l'avenir et faire du développement de bas niveau.
Ma véritable question est donc la suivante: y a-t-il de l'argent à faire avec le développement de logiciels Open Source, et comment?
Edit: Je souligne simplement que le démarrage de mon propre projet Open Source n'est pas une exigence.
Cette réponse résume bon nombre des réponses aux questions suivantes, ainsi que des recherches et des opinions supplémentaires.
Open source peut être un modèle commercial principal ou auxiliaire viable, à la fois directement par le biais de projets spécifiques et indirectement par l'acquisition de compétences, d'expérience et de réputation. Il peut également y avoir des motivations supplémentaires; la satisfaction de produire des logiciels utiles aux autres, le "grattage de ses démangeaisons personnelles" (la première étape vers tout bon logiciel open source, selon Eric S. Raymond ), ou raisons philosophiques , normalement basé sur la notion de logiciel libre , soit l'approche copyleft préconisée par Richard Stallman , ou l'approche plus permissive des licences BSD .
Cela peut se produire de plusieurs manières.
Un individu ou une entreprise peut se positionner comme un fournisseur principal qui ajoute de la valeur à un ou plusieurs projets open source existants. Il existe de nombreux exemples d'entreprises qui fournissent un service en emballant, en superposant, en combinant ou en étendant des projets existants. Ils se répartissent globalement en deux catégories.
Une approche puissante consiste à proposer des logiciels sous deux licences alternatives , une licence copyleft nécessitant des modifications à rendre à la communauté si le logiciel est distribué, et une licence commerciale permettant l'utilisation du logiciel sans restrictions open-source. Cette approche a été appliquée avec succès par de grands projets tels que Qt et Open Office , ainsi que petits projets ponctuels .
Le travail open source peut fournir un moyen d'obtenir une visibilité communautaire précieuse.
Enfin, les revenus peuvent être obtenus via des canaux auxiliaires tels que publicité (comme Stackoverflow le fait), dons , ou via le utilisation de techniques nagware dans le logiciel lui-même qui visent à inciter un utilisateur à fournir des contributions financières à l'auteur. Ces techniques ne sont pas spécifiques aux modèles de développement Open Source. Par exemple, ils sont souvent utilisés par des produits non-libres shareware .
Parce que vous êtes le créateur de ce système, vous êtes "l'expert ultime". Les entreprises à but lucratif qui utilisent ou souhaitent utiliser votre logiciel peuvent vous inviter à des travaux de conseil. De plus, vous seriez qualifié pour prendre la parole lors de congrès qui, selon moi, sont bien payés.
La contribution de code à un projet existant est également un bon moyen de faire connaître votre nom. Plus vous contribuez, plus vous avez de crédibilité lorsque vous recherchez un emploi contractuel.
Voici un exemple.
Si vous traînez dans la communauté Qmail, vous constaterez qu'il y a quelques personnes qui connaissent Qmail à fond. Juste quelques-uns d'entre eux deviennent les go-to guys si vous voulez une extension des fonctionnalités de Qmail. Ils obtiennent des emplois contractuels qui les impliquent assis à la maison, écrivant une extension Qmail et étant payé pour cela.
Si cela ressemble à un style de vie que vous pourriez choisir, essayez-le - trouvez un créneau et prenez des emplois contractuels. Vous pouvez proposer des conditions différentes à vos clients, selon qu'ils souhaitent posséder le code que vous produisez en code source fermé ou que vous publiez le code en tant qu'open source, mais ils peuvent l'utiliser.
Pensez-y de cette façon - il y a beaucoup de situations où le client veut simplement que ce code existe. Ils se moquent alors de savoir s'ils y ont ou non un accès exclusif.
D'après mon expérience, écrire OSS ne vous donne pas d'argent; mais cela vous rend beaucoup plus précieux et donc employable. À la fois en raison des capacités hautement optimisées que vous obtenez de la pratique et parce que lorsque vous êtes en mesure d'utiliser les logiciels libres existants, votre connaissance de l'écosystème vous permet de perdre beaucoup moins de temps à évaluer ce qui existe déjà pour éviter de réécrire la roue.
La plupart du temps, les entreprises gagnent de l'argent en utilisant le modèle apiculteur . Essentiellement, vos contributeurs open source peuvent utiliser gratuitement vos produits les plus récents et les meilleurs tandis que vos clients obtiennent un produit fiable et mature. Red Hat, Novell et Sun utilisent tous des variantes de ce modèle.
Une autre option est le conseil et la formation. Si vous avez beaucoup d'expérience en utilisant un certain produit (ou mieux encore, vous l'avez inventé), alors les gens peuvent être prêts à vous payer de l'argent pour leur apprendre à l'utiliser. C'est le modèle que Canonical utilise. Cela ne signifie pas nécessairement que vous devez effectuer un travail de type administrateur système, sauf si c'est votre truc. Après tout, les programmeurs, les utilisateurs finaux et les cadres ont également besoin de formation.
Troisièmement, en tant qu'étudiant, vous devriez sérieusement envisager Google Summer of Code l'été prochain.
Dans l'ensemble, je dirais que les contributions open source en valent la peine, que vous en tiriez directement ou non de l'argent. Cependant, je crains que vous ne réalisiez probablement pas les avantages à court terme.
Ça dépend vraiment. Beaucoup ne font que du développement open source comme passe-temps et ont un travail de jour (ce qui est souvent, mais pas toujours, le développement de logiciels).
Certains sont payés par des entreprises intéressées par le projet open source. LWN.net a publié un article sur qui paie les développeurs du noyau Linux, par exemple:
http://lwn.net/Articles/222773/
Il s'avère que de nombreuses entreprises financent le développement du noyau Linux, et pas seulement les distributeurs Linux.
Certains développeurs gèrent également une entreprise de conseil et utilisent le développement de logiciels pour soutenir leur travail principal ou comme vitrine.
il y a plusieurs façons différentes
et puis les plus grands je pense étendent leurs connaissances et obtiennent l'amour des utilisateurs de leurs produits.
Créez un site Web sur un produit open source (votre application, un forum, un site de support, etc.) et placez-y des publicités.
Cela ferait l'affaire.
J'ai gagné de l'argent par inadvertance grâce à des logiciels open source, tout comme un ami. Nous avons eu des cas similaires, mais je ne parlerai que des miens: j'ai écrit un décodeur VCDiff open source, essentiellement parce que la spécification avait l'air sympa. (Longue histoire, mais j'allais à l'origine l'écrire à l'heure de l'entreprise, mais j'ai fini par le faire un vendredi soir à la place.)
Quelques années plus tard, j'ai été approché par une entreprise qui souhaitait l'utiliser dans un package commercial, mais sans l'attribution requise. Ils étaient heureux de payer une redevance pour cela et m'ont présenté une licence non exclusive extrêmement raisonnable. Nous avons fait l'affaire et les deux parties étaient heureuses.
Le but n'était jamais de gagner de l'argent - cela s'est simplement produit comme effet secondaire de produire quelque chose qu'un autre parti voulait, essentiellement.
Je pense qu'un scénario courant est qu'ils ont également des emplois rémunérés. Une grande partie du travail open source dérive du temps libre des développeurs et des éléments de leur travail rémunéré.
Un exemple pourrait être la création d'une solution pour résoudre un problème spécifique au travail et l'ouverture de la solution pour aider d'autres développeurs confrontés à un scénario similaire.
Le simple développement d'un projet de logiciel open source ne vous rapportera probablement pas beaucoup d'argent. Fournir un support premium, des personnalisations, etc. peut. Je fais une bonne partie du changement en développant des extensions et des builds personnalisés de Firefox, Thunderbird, Red5 et quelques autres projets open source. Une grande partie de ce que je crée est également fournie à la communauté open source.
Il existe également la possibilité d'un système de double licence. Par exemple, vous pouvez publier le logiciel sous une licence de type GPL, et également sous une licence commerciale où quelqu'un qui achète une licence commerciale est autorisé à conserver toutes les modifications propriétaires et à le vendre sans publier le code source.
Si vous voulez vraiment gagner de l'argent en créant votre propre projet open source, je pense que c'est un assez long plan. D'autre part, il existe de nombreux emplois bien rémunérés qui nécessitent de travailler avec des technologies open source ou de développer des logiciels open source dans des entreprises comme Red Hat, Sun, IBM, voire Microsoft.
La réponse à votre réelle question
y a-t-il de l'argent à faire avec le développement de logiciels Open Source, et comment?
Oui, et il existe différentes manières. Si vous voulez simplement être développeur, c'est-à-dire ne pas démarrer votre propre entreprise, la meilleure chose à faire est de participer au (x) projet (s) que vous aimez. Ensuite, vous pourriez trouver des opportunités comme celle-ci: http://webapps.ubuntu.com/employment/canonical_GDOS/ (il y en a beaucoup dans différents domaines, MySQL, pour ne citer qu'un autre "grand" nom ).
Ensuite, créez votre profil sur LinkedIn et rejoignez les groupes OSS correspondant à vos compétences et/ou intérêts.
Enfin et surtout, rejoignez un groupe local (par exemple LUG, JUG) et lisez la liste de diffusion. Souvent, dans ces listes, de nombreuses offres d'emploi apparaissent (malheureusement, je n'ai découvert qu'après j'ai obtenu le poste).
De par sa nature, vous ne pouvez généralement pas gagner d'argent directement avec le code - car il est ouvert. Vous pouvez obtenir une double licence, mais cela peut également décourager la communauté OSS.
La façon la plus simple est peut-être de travailler pour une entreprise qui produit des logiciels open source. Vous êtes payé pour écrire du code, et l'entreprise gagne de l'argent grâce au support ou autre, mais vous n'avez pas à vous impliquer directement dans cet aspect des choses.
Ou vous pouvez écrire OSS pour créer un représentant et, espérons-le, obtenir un travail contractuel/à temps plein à l'arrière.
Certaines sociétés de logiciels open source fournissent des services et gagnent de l'argent. (Comme l'hébergement d'applications, etc.) Dans la plupart des cas, ils fournissent certaines personnalisations en fonction des besoins du client et fournissent un support et une maintenance au fil du temps.
Je ne pense pas que les "dons" puissent faire un grand changement, mais ils ont également un impact.
C'est un bon exemple pour une entreprise sri-lankaise basée sur des produits open source.
Il existe deux sociétés open source prospères et rentables que je connais assez bien:
SleepyCat Software, jusqu'à ce qu'ils soient achetés par Oracle, a fait de l'argent en soutenant et en améliorant Berkeley DB. Bien que l'un des fondateurs ait eu un travail de jour, l'autre non, et ils avaient une douzaine d'employés.
Chez Scheme fait de l'argent en ajoutant des améliorations à leur compilateur et en vendant des versions en code natif de leur compilateur. Les améliorations typiques peuvent inclure un nouveau back-end; une amélioration récente plus ambitieuse était un package de threads natifs. Le fondateur (Kent Dybvig) a un travail de jour; Je ne sais pas combien d'employés il a. Chez est inhabituel dans la mesure où l'interprète est open source mais pas le compilateur.
Cygnus et Red Hat vendent tous deux du "support" ainsi que des versions spécialisées de leur logiciel, mais le logiciel est également distribué. Je ne comprends pas vraiment ce modèle commercial.
Ce que je retiens de ces exemples, c'est que si votre logiciel est exceptionnel dans sa classe, les gens vous paieront pour les aider à utiliser vos trucs pour résoudre les problèmes . C'est donc presque comme du conseil.
Vous pouvez le faire de plusieurs façons. En ce moment, le modèle freemium est populaire.
Alternativement, car d'autres ont publié des travaux open source, ils sont exclus. Le modèle que j'utilise consiste à utiliser l'open source sur mon lieu de travail et à reverser mes contributions au réseau principal. Vous devez avoir l'adhésion de la direction, mais cela fonctionne. Rappelez-vous également dans les mots de Stallman Libre comme en liberté
Je vois deux questions ici:
1) Comment les développeurs gagnent-ils de l'argent
La plupart des développeurs ne le font pas pour l'argent.Les raisons peuvent être nombreuses, mais si nous les restreignons, cela revient à 1) gratter une démangeaison 2) pour gagner en crédibilité 3) pour améliorer les connaissances dans cette langue/ce domaine particulier.
2) Comment les entreprises gagnent-elles de l'argent
Généralement du support, de la formation, de la certification et de l'amélioration. Mais alors la question se pose: si votre produit est vraiment bon, il n'aura pas besoin de beaucoup de support. Donc, ce doit être ce que Joel appelle Consultingware .
Je pense que c'est un fait désormais admis que les logiciels, une fois installés, valent plus que leur prix car ils sont désormais "déjà là". Je parle plus d'applications de style entreprise.
De nombreuses entreprises vous facturent lorsque vous achetez le logiciel, puis gardez le pied dans la porte avec les contrats de maintenance, ce qui vous rapporte plus de revenus que si vous l'aviez acheté 7 fois. Je sais que c'est certainement le cas lorsque je travaille avec des logiciels propriétaires qui ont plus de 30 ans!
Il se trouve que ce logiciel est gratuit à installer (voyez-le comme le modèle commercial "médicaments gratuits au premier abord"). Le défi est bien sûr de choisir un projet bien entretenu et disposant d'une bonne communauté de support en ligne. Mais là encore, c'est la même chose avec les logiciels non libres.
La migration vers et hors de l'Open source a tendance à être beaucoup plus facile que les applications propriétaires, car elles ont tendance à prendre en charge les formats ouverts plus souvent. Les applications propriétaires "abandonnent" généralement le service de migration vers elles et d'autres services pour vous permettre de rester plus facilement avec elles.
Les applications O/S ont tendance à avoir une courbe d'apprentissage plus élevée au début, ce qui nécessite à peu près des contrats de maintenance, il y a donc de nombreuses opportunités de faire des $$
À mon avis, aucun modèle d'entreprise n'est meilleur, juste différent. Le modèle propriétaire se trouve être plus répandu.
De nos jours, certaines (beaucoup?) Des entreprises paient un développeur pour contribuer à un logiciel open source car leur entreprise est basée sur un logiciel open source ou dérivée d'un logiciel open source.