Journal Debian ? Ça vaut 14 milliards d'euros.

Posté par (page perso) . Licence CC by-sa
40
13
fév.
2012

James Bromberger est un développeur Debian depuis plusieurs années qui travaille notamment sur des modules Perl.
Il vient de poster un article fort intéressant sur son blog ou il tente d'estimer le prix global de tous les logiciels inclus dans la distribution Debian Wheezy (c'est à dire la prochaine version encore en cours de développement).

Pour obtenir son estimation James Bromberger a écrit un script qui prend en entrée les 17 141 paquets source de Wheezy et qui donne tout ça a manger au logiciel sloccount. Ce dernier compte chacune des lignes de code, reconnait le langage dans lequel elles sont écrites et produit une estimation du coût de développement.
Bien entendu il faut paramétrer un peu sloccount au sujet de cette estimation de coût. James a choisi un salaire annuel de développeur égal à 72 533$ (en se basant sur le salaire médian des sites Salary.com et PayScale.com).

En sortie on obtient donc les chiffres suivants:

Nombre de lignes de code de tous les logiciels de Debian Wheezy : 419 776 604
Estimation du coût de production des ces 419 millions de lignes : 14,4 milliards d'euros

A noter que ces lignes de code sont uniquement les paquets amonts incorporés dans Debian. Il n'y a pas les patchs spécifiques ajoutés par les développeurs du projet, ni les scripts de gestion des paquets. Et puis il faut bien entendu relativiser quelque peu ces estimations de coût et garder un esprit critique à leur sujet.

Un autre truc amusant est de regarder la répartition en terme de langage de ces 17 141 paquets sources. Le C représente environ 40% des sources tandis que le C++ est à 20% et Java représente 8%. On trouve même quelques lignes de COBOL et de Modula3 !
Je vous invite vivement à aller lire le post de James qui contient beaucoup de détails supplémentaires (zoom sur le noyau Linux, estimation de prix de paquets connus comme Apache ou Samba, etc).

Je laisse la conclusion à James Bromberger:

C'est intéressant de savoir que plus de 14 milliards d'euros de logiciels sont disponibles pour utilisation, passage en revue, amélioration et partage. Tout ça pour un prix de 0 euro.
Si seulement plus d'entreprises réalisaient le potentiel de ce qu'elles ont sous leur nez.

  • # Bof

    Posté par . Évalué à 10.

    J'ai jamais vu une estimation à la ligne de code sortir un truc s'approchant même lointainement de quelque chose de rationnel...

    Un peu comme les estimations d'ohloh.

    • [^] # Re: Bof

      Posté par (page perso) . Évalué à 10.

      D'un autre côté, ça me paraît pas vraiment surestimé.

      Imagine que tu partes de rien, on te donne une enveloppe de 14 milliards d'euros, et tu as cinq ans pour refaire tout ce qu'on trouve dans Debian.

      Le résultat serait peut-être un peu mieux intégré que ce qui existe actuellement, mais je doute vraiment que ce soit aussi exhaustif ni même d'aussi bonne qualité.

      • [^] # Re: Bof

        Posté par . Évalué à 3.

        Ça te paraitrait sous ou sur estimé à partir de quels chiffres ? Par ce que si la marge d'erreur c'est 1000% c'est très utile comme information...

        De même baser une estimation sur un snapshot à un instant T ca n'a pas grand sens. Le cycle de vie d'une appli peut faire varier son cout final de plusieurs ordres de grandeurs.

        Bref quelle est la valeur de ce chiffre hormis dire "Ca coute cher" ce qui est un peu évident à la base.

        • [^] # Re: Bof

          Posté par . Évalué à 6.

          Ça te paraitrait sous ou sur estimé à partir de quels chiffres ?

          On a un chiffre, c'est le budget de la fondation mozilla. (on avait aussi le prix d'achat de star office).
          Ca donne une idée du genre de financement que les desktop ou les distros ou open office devraient avoir pour être compétitif.

          De même baser une estimation sur un snapshot à un instant T ca n'a pas grand sens.

          Notamment vu le nombre de projets redondants. 2 desktop, combien de suites office, de logiciels qui font la même chose?
          Financés par une seule boite, il y aurait moins d'alternatives.

          Il faudrait prendre les briques nécessaires et suffisantes du système et évaluer la complexité de chacune par rapport à firefox, additioner l'ensemble et compter en MoFos. (En ancien MoFo, qui vaut de 60 à 80 millions €. Le nouveau MoFo vaut beaucoup plus, mais on ne sait pas encore ce qu'il produit.)

      • [^] # Re: Bof

        Posté par (page perso) . Évalué à 10.

        Imagine que tu partes de rien, on te donne une enveloppe de 14 milliards d'euros, et tu as cinq ans pour refaire tout ce qu'on trouve dans Debian.

        Tu parles du coût.
        Pas de la valeur.
        Creuser des trous et les reboucher, ça peut coûter 14 Milliard, et valoir 0.

        Absolument rien ne prouve ou n'indique que ça vaut quelque chose, juste ce que ça coûte (et encore...).

        • [^] # Re: Bof

          Posté par (page perso) . Évalué à 5.

          Oui, tu as tout à fait raison. D'ailleurs, je vois mal comment on pourrait chiffrer la valeur de quelque chose.

          • [^] # Re: Bof

            Posté par . Évalué à 2.

            Tout ce qu'on peut raisonnablement savoir, c'est que ça n'attend pas le nombre des avalés.

          • [^] # Re: Bof

            Posté par (page perso) . Évalué à 2.

            La notion de valeur correspond généralement au prix qu'un acheteur potentiel accepterait de mettre pour acheter.

            Dans le cas de Debian, je pense qu'on est loin des 14 MM€.

      • [^] # Re: Bof

        Posté par (page perso) . Évalué à 8.

        on te donne une enveloppe de 14 milliards d'euros, et tu as cinq ans pour refaire tout ce qu'on trouve dans Debian.

        Si on te donne 14 milliards, tu vas vraiment les utiliser pour refaire Debian?

        http://devnewton.bci.im

    • [^] # Re: Bof

      Posté par . Évalué à 4.

      Moi si.

  • # heu ...

    Posté par . Évalué à -3.

    Dans le joli graphe des langages utilisés: XML ... hein ?

    sinon, le C rulez ! \o/

    • [^] # Re: heu ...

      Posté par . Évalué à 8.

      Il faut aussi voir qu'une ligne de C n'équivaut pas une ligne de Python ou de Java.

      • [^] # Re: heu ...

        Posté par . Évalué à 2.

        oui mais il fallait bien faire monter le trollomètre ;-)

    • [^] # Re: heu ...

      Posté par . Évalué à 2.

      Le souci c'est le titre, qui dit "Programming language", alors que le reste évite soigneusement ce terme. Sinon, devine ce que veut dire le "L" de XML ? Allez, je t'aide : XML.

      • [^] # Re: heu ...

        Posté par . Évalué à 2.

        Devine ce que veut dire le "M" de XML? (indice, il ne veut pas dire "P"rogramming)

        • [^] # Re: heu ...

          Posté par (page perso) . Évalué à 3.

          et ?
          Le XML est un méta-langage qui peut décrire des langages de programmation, généralement de manière déclarative, mais pas uniquement. Exemple : XSLT.

          • [^] # Re: heu ...

            Posté par . Évalué à 3. Dernière modification le 13/02/12 à 18:21.

            Comme le plain text. Exemple : C.

      • [^] # Re: heu ...

        Posté par . Évalué à 2.

        oui, voilà, c'est bien le titre "Programing language" qui me faisait tiquer.

  • # s/vaut/a un coût de développement estimé de/

    Posté par . Évalué à 10.

    Ce n'est pas parce que ça a coûté 14 milliards d'€ à développer (en supposant que ce soit vaguement précis) que ça vaut 14 milliards d'euros.

    • [^] # Re: s/vaut/a un coût de développement estimé de/

      Posté par . Évalué à 7.

      Exemple du monde réel: skype. Valeur d'échange actuelle: autour de 7 milliards $. Mouarf...

      • [^] # Re: s/vaut/a un coût de développement estimé de/

        Posté par . Évalué à 3.

        Je ne pense pas que Microsoft à laché 7 milliards $ juste pour la partie logiciel de Skype, le fait d'avoir des utilisateurs donne une très grande plus-value au produit.

        Et je ne pense pas qu'il y a plus d'utilisateur sous Debian que de personne qui utilisent Skype.

        • [^] # Re: s/vaut/a un coût de développement estimé de/

          Posté par . Évalué à 5.

          Je ne pense pas que Microsoft à laché 7 milliards $ juste pour la partie logiciel de Skype, le fait d'avoir des utilisateurs donne une très grande plus-value au produit.

          C'est ce qu'on m'avait répondu ici quand j'avais dit mouarf pour skype acheté par ebay à 2 milliards. "Il y a des utilisateurs, ils vont en faire quelque chose ...".

          Ils vont l'intégrer à leurs produit, mais ils auraient pu développer exactement pareil ou mieux pour beaucoup moins, à moins que microsoft ne soit plus capable de développer un produit? J'en doute. Donc ça reste 7 milliards de foutus aux chiottes. A rajouter à nokia, à vista, aux 2 xbox, etc etc
          C'est pas grave, c'est du papier, il suffit d'une bonne crise de temps en temps pour absorber les finances d'une tranche de la population ou d'un pays ou d'un continent. C'est comme ça que wall street organise les choses de nos jours.
          Mais ça n'a rien à voir avec l'utilité, la rentabilité ou la compétitivité d'un produit.

          • [^] # Re: s/vaut/a un coût de développement estimé de/

            Posté par . Évalué à 3.

            Ben tu tombes en plein dedans, la.
            La question est pas de savoir combien coute le code, MS pourrait effectivement faire vachement mieux niveau code avec 1% de ces 7 milliards, mais il leur manquerait les utilisateurs, c'est ca que ms a achete. Tres cher, certes, mais c'est pas la question.

            Alors ils auraient un super code super cool, mais personne pour l'utiliser, et ils repartiraient de 0 niveau connaissances metier specifique a la voip, si c'est pas gacher 50 millions de dollars.

            If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

        • [^] # Re: s/vaut/a un coût de développement estimé de/

          Posté par . Évalué à 3.

          les gens utilisent skype comme un service, ils n'ont pas non plus de serveur skype chez eux. On peut donc considérer qu'il y a autant d'utilisateurs (si ce n'est plus) des nombreux serveurs sous Debian dans le monde que d'utilisateur du service skype.

          Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

    • [^] # Re: s/vaut/a un coût de développement estimé de/

      Posté par . Évalué à 4.

      De toute façon vu que Debian n'a pas vocation à se vendre et faire du bénéfice, ça va être difficile d'évaluer à combien elle se vendrait.

      Difficile aussi d'évaluer la valeur qu'elle rend à ceux qui s'en servent à des fins différentes, voir ce que ça rapporte à ceux qui sont payés pour travailler dessus (ou qui travaillent dessus sur le temps ou ils sont payés)

  • # À l'envers?

    Posté par . Évalué à 10.

    A noter que ces lignes de code sont uniquement les paquets amonts incorporés dans Debian. Il n'y a pas les patchs spécifiques ajoutés par les développeurs du projet, ni les scripts de gestion des paquets. Et puis il faut bien entendu relativiser quelque peu ces estimations de coût et garder un esprit critique à leur sujet.

    C'est vrai que c'est très intéressant, mais ça représente quoi alors?
    Une estimation de la valeur du travail de la communauté repris par Debian! Il y a des logiciels non empaquetés par Debian, et ils peuvent avoir de la valeur aussi. Alors qu'est-ce qui justifie ce choix de faire "sans les patchs".

    Moi je verrais bien un comptage des deux:
    -combien coûte ce que Debian utilise qui vient de ce qu'on appelera la "Communauté" (y compris des dévs Debian, donc, chaque fois qu'un patch est remonté upstream!)
    -quelle est la valeur ajoutée de Debian: on ne compte QUE les patches Debian et les outils spécifiques

    On se gardera évidemment de sommer les 2 pour obtenir "ce que vaut Debian". Adapter à ses besoins n'augmente pas forcément la valeur de quelquechose. Mais j'aurais été curieux de voir le chiffre.

    Ah, et j'espère que d'ici vendredi on aura les chiffres des autres distros. (Popcorn...)

  • # sloccount donne des résultats étranges

    Posté par (page perso) . Évalué à 2.

    J'ai fait hier en une après-midi un petit module supplémentaire pour mon boulot. Ça sort dans sloccount à 512 lignes de java, 140 lignes de PHP, 109 lignes de JSP. Dans le tas tout n'est pas neuf j'ai réutilisé environ une centaine de lignes de PHP, une bonne moitié du JSP provenait aussi d'un autre module ; de plus, environ 200 lignes de java sont du code généré à partir d'une description XML d'accès base de données. Donc en théorie il pourrait me sortir un certain overhead, disons maximum une journée. Mais il me sort :

    Development Effort Estimate, Person-Years (Person-Months) = 0.15 (1.80)

    Si je lis bien, il estime qu'il faut un peu moins de deux mois à un développeur seul pour réaliser cela ? C'est totalement délirant puisque ça m'a pris une après-midi.

    Si j'applique le même ratio de de 36 (un mois = 20 jours de travail) sur le résultat dans Debian ça ne fait plus que 400 millions d'euros. Tout de suite moins impressionnant ?

    • [^] # Re: sloccount donne des résultats étranges

      Posté par . Évalué à 4.

      C'est exactement pour ca que les coûts calculés sur un snapshot des sources sont aberrant. Écrire la v1 d'un soft c'est pas cher. La rendre performante, efficace, accessible, compatible, internationalisée, portable, répondre aux uses cases de utilisateurs, suivre les évolutions technologiques c'est très cher. Faire une moyenne de tout ces critères pour arriver sur le coût moyen d'une ligne de code, ca me semble tenir au minimum de la fumisterie.

      C'est d'ailleurs pour ca que l'informatique souffre du syndrome de la réécriture. On préfère prendre le pari que cette fois on l'écrira correctement plutôt que de fixer ce qui existe. En fait ce qu'on gagne c'est qu'en repartant de 0 en re-commence avec les critères d'une V1 ce qui permet de repousser certains objectifs. C'est donc plus facile d'arriver au but qu'on s'est fixé. Par contre objectivement est ce que le nouveau produit est à équivalence fonctionnel et est ce qu'il répond mieux aux besoins des clients ? C'est pas dit...

      • [^] # Re: sloccount donne des résultats étranges

        Posté par (page perso) . Évalué à 4.

        C'est d'ailleurs pour ca que l'informatique souffre du syndrome de la réécriture. On préfère prendre le pari que cette fois on l'écrira correctement plutôt que de fixer ce qui existe.

        Au contraire il me semble qu'on souffre de l'exact opposé. Les managers voient un truc en magasin (= dans les projets internes) qui fait vaguement la même chose, ils préfèrent l'utiliser plutôt que de partir d'un truc propre. Résultat on obtient une usine à gaz que personne ne maîtrise et qui ne fait même pas correctement ce qu'on demande.

        Par contre, dans les projets libres, il n'y a pas de managers pour prendre ces décisions contre-productives, résultat des projets comme le noyau Linux ou Apache ont pu bénéficier de réécritures de pans entiers de leur source, pour solutionner les problèmes du moments car cela n'avait pas été prévu à l'origine et il n'était plus possible de faire évoluer le code existant.

    • [^] # Re: sloccount donne des résultats étranges

      Posté par . Évalué à 2.

      Ce genre de modèle ne marche évidemment pas sur des programmes courts (sinon à combien revient le Hello, World !). Son domaine de validité est, comme tu le remarques, pour de plus gros logiciels.

      • [^] # Re: sloccount donne des résultats étranges

        Posté par (page perso) . Évalué à 1.

        Le problème c'est que c'est uniquement sur des petits projets qu'on peut déterminer la pertinence du résultat. Sur un gros projet c'est plus difficile, car il y a souvent eu des réécritures qui font que le temps total qui a été passé est largement plus important que le temps pour le refaire from scratch.

        Si je prends un projet de taille moyenne, http://code.google.com/p/androidnetworktester/ il me donne 2 mois et demi, pour un millier de lignes de code Java qui m'a pris quelques jours. C'est assez bizarre aussi, on est encore dans un facteur x35 environ. Je veux bien qu'il y ait des marges d'erreur, une notion de qualité etc, mais là...

        • [^] # Re: sloccount donne des résultats étranges

          Posté par (page perso) . Évalué à 1.

          Q? Si tu fais réécrire ce projet par des gens moins intéressés que toi par le développement, moins expérimentés, tu estimes le temps passé à combien de jours ?

          Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

          • [^] # Re: sloccount donne des résultats étranges

            Posté par (page perso) . Évalué à 1.

            C'est une bonne question, mais je ne pense pas que le but de sloccount soit d'estimer le temps de dév pour des débutants ou des programmeurs incompétents, quand même ?

            En fait, je parle d'un facteur 35, donc même si on part du principe que je suis particulièrement expérimenté (mais le plus drôle c'est que c'était ma première app android), on n'arrive pas à des choses aussi extrêmes.

      • [^] # Re: sloccount donne des résultats étranges

        Posté par (page perso) . Évalué à 2.

        Son domaine de validité est, comme tu le remarques, pour de plus gros logiciels.

        Conneries.
        J'écris depuis des années un logiciel, quasi-seul mais quand mêmes des années, et la dernière fois que j'ai mis mon logiciel dans le bousin, il m'a sorti quelques millions de $. Je sais que je suis doué ;-), mais quand même. Et heureusement qu'il ne voit pas les lignes que j'ai supprimées entre temps, les lignes qui m'ont "coûtées" des jours de travail ou celles qui m'ont rien coûté.

        Je n'ai jamais compris pourquoi certains s'imaginent qu'il peuvent "chiffrer" un projet en comptant des lignes de code...

        • [^] # Re: sloccount donne des résultats étranges

          Posté par (page perso) . Évalué à 2.

          Je n'ai jamais compris pourquoi certains s'imaginent qu'il peuvent "chiffrer" un projet en comptant des lignes de code...

          C'est simplement que comme ça ils ont une base "solide" pour établir des devis pour les clients. J'ai vu ces trucs en génie logiciel... je n'ai jamais considéré que ça soit pertinent.

          Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

        • [^] # Re: sloccount donne des résultats étranges

          Posté par . Évalué à 2.

          il m'a sorti quelques millions de $
          Et tu gagnes combien par an avec ? Si c'est quelques dizaines de milliers de dollars, l'ordre de grandeur est bon : ça te fait un rendement de quelques pourcents, comme n'importe quelle industrie (elle a un capital (machines, etc.), y ajoute du travail, produit avec le tout et dégage quelques pourcents de bénéfices).
          Enfin je m'explique mal mais l'idée y est (j'espère).

          • [^] # Re: sloccount donne des résultats étranges

            Posté par (page perso) . Évalué à 1.

            ça te fait un rendement de quelques pourcents, comme n'importe quelle industrie

            Je ne sais pas dans quelle entreprise tu travailles, mais si le rendement est inférieur à 15%, c'est jugé bof (surtout en informatique), faut compenser les investissements en négatif pour les investisseur qui ont pris le risque.
            (et si on part sur la valeur de revente genre Youtube ou Skype, bon ben la on peut être dans le rouge certes...)

            Et sinon, ça calcule surtout le coût, et à moins que je vaille plusieurs centaines de milliers d'Euros par an, il manque un truc.

            • [^] # Re: sloccount donne des résultats étranges

              Posté par . Évalué à 2.

              je voulais dire que l'ordre de grandeur semble y être, que ce soit 5, 10 ou 30% de rendement sur capital.

              Après il y a moyen de tuner finement l'outil, suivant si c'est du code facile à développer ou non (très optimisé ou codé au kilomètre, avec des contraintes embarquées ou non). Là la seule variable d'ajustement qu'il connaisse est le type de langage utilisé.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.