IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Actualités Discussion :

La ligne de code est-elle la meilleure unité de mesure d'un projet informatique ?

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 359
    Points : 195 969
    Points
    195 969
    Par défaut La ligne de code est-elle la meilleure unité de mesure d'un projet informatique ?
    La ligne de code est-elle la meilleure unité de mesure d'un projet informatique ?
    Un diagramme les classe suivant l'importance de leur code source

    L'infographiste David McCandless a publié un diagramme classant les logiciels informatiques et les sites web suivant l'importance de leur code source, du plus petit nombre de lignes de code (un simple jeu pour iPhone) au plus important (le site web healthcare.gov).

    Pour réaliser ce travail, il s'est inspiré de diverses sources parmi lesquelles la NASA, Quora, Ohloh ou encore des rapports de presse. Cinq catégories sont représentées par des couleurs différentes pour différencier les systèmes d'exploitation, les jeux vidéo, les applications, les navigateurs web et les machines. Des arcs ont également été apposés pour montrer l'évolution du code à travers le temps (comme le noyau Linux, Windows ou encore Microsoft Office).

    Le diagramme révèle par exemple que le nombre moyen de lignes pour réaliser une application iPhone se compte en centaines de milliers. Avec plus de 50 millions de lignes de code pour sa plateforme, le réseau social Facebook est classé devant des systèmes d'exploitation comme Windows 7 ou Windows XP, qui requièrent chacun un peu moins de 40 millions de lignes de code.


    La ligne de code est un indicateur. C'est un élément, parmi d'autres, qui est souvent employé pour quantifier l'effort qui sera exigé pour développer un programme informatique, ainsi que pour estimer la valeur d'un logiciel produit.

    A comparer les codes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var result = methodOne(methodTwo(a, methodThree(b)), c, d);
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var result3 = methodThree(b);
    var result2 = methodTwo(a, result3);
    var result = methodOne(result2, c, d);
    Lequel vous semble le plus efficace ? Un exemple encore plus simple pour établir une comparaison.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for (i=0; i<100; ++i) printf("hello"); /* Ici 1 ligne de code */
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (i=0; i<100; ++i)
    {
        printf("hello");
    } /* Ici 4 lignes de code */
    Sources : Information Is Beautiful(Diagramme complet), [URL="http://programmers.stackexchange.com/questions/203684/is-fewer-lines-of-code-always-better"]Stackexchange[/URL.

    Et vous ?

    La ligne de code est-elle la meilleure unité de mesure d'un projet informatique ?

    Quelle est, selon vous, la meilleure unité de mesure possible ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    Toute seule elle ne sert à rien et n'est représentative de rien.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Savoir résoudre un problème en exprimant la solution sous sa forme la plus simple est une marque d'intelligence, une qualité indéniable pour tout codeur.

    Mais la ligne de code en soi n'est pas un indice suffisant. Il faudrait fixer des règles précises pour l'indentation, le nommage, les sauts de ligne et la factorisation des fonctions. Puis s'assurer que le code suit parfaitement toutes ces règles. Enfin, on pourrait comparer ce qui est comparable. Mais la comparaison ne devrait pas se faire sur le nombre de lignes de code, plutôt sur le temps d'assimilation par un tiers.

    Enfin, survoler en diagonale un code et regarder le nombre de lignes à la fin reste un moyen assez efficace pour se faire une première idée de la qualité du code.
    One Web to rule them all

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 498
    Points : 1 148
    Points
    1 148
    Par défaut
    Moi je dis la meilleur unité de mesure doit-être les ticket de bugs sur la même année de production ().

  5. #5
    Expert confirmé Avatar de Zefling
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    1 167
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 167
    Points : 4 647
    Points
    4 647
    Par défaut
    Ça peut rien dire, quand passes 2 jours pour réduire de 3000 lignes ton codes, en l'améliorant. Le nombre de ligne peut donner une idée de la quantité de travaille, mais je mettrais le temps hommes avant le nombre de lignes comme indice.

    Quand tu bosses sur un algo, ça peut te prendre un temps bien plus long pour écrire 15 lignes, que les 1000 qui vont te servir à faire un rendu dans une interface.

    Bref, pour moi, seul, ça ne veut pas dire grand-chose.

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    310
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 310
    Points : 745
    Points
    745
    Billets dans le blog
    1
    Par défaut


    1/ Ce qui est intéressant, c'est de pouvoir estimer le coût d'un projet informatique AVANT qu'il soit développé. Ici on ne parles donc pas de ça.

    2/ Sauf stratégie perverse, plus le code est décomposé, plus il est lisible. Plus il est lisible, plus 'il y a d'effort derrière. Plus il est lisible, plus la maintenance sera facile. Complexifier le code en réduisant le nombre de ligne n'a de sens que pour la temps d'exécution.

    3/ Il ne faut pas confondre "quantité d'effort" et "qualité du résultat". On peut très bien voir mille personnes creusé un trou au milieu du désert - et ça s'arrête là.

    4/ Quand on est un prestataire informatique et que l'on souhaite justifier ses coûts à son client. Il peut être intéressant de le justifier par le nombre de ligne de code ; et pourquoi pas même : le nombre de ligne de code par fonctionnalité <fonctionnelle>

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 004
    Points : 5 423
    Points
    5 423
    Par défaut
    Si les données sont exactes, alors pour facebook il faut plus de ligne que pour un OS.
    En considérant que la ligne de code est la meilleur unité de mesure alors facebook est un projet plus ambitieux qu'un OS moderne...
    Ca cloche quelque part

  8. #8
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Faridsarl Voir le message
    Non.
    La meilleure unité de mesure selon moi, cest l'espace mémoire necessaire pour l'execution des codes et le temps d'execution.
    Donc si j'optimise mon code pour qu'il soit plus rapide et prenne moins de mémoire, il est plus simple et a moins de valeur ?
    Ou alors au contraire faut-il comprendre que notepad.exe vaut davantage que tout windows puisqu'il requiert moins de mémoire ?
    Ou encore faut-il comprendre que la comparaison doit se faire pour un même résultat, auquel cas un code 10% plus rapide mais trois fois plus complexe est préférable ?

    Comme quoi on peut faire pire indicateur que la ligne de code.

  9. #9
    Expert éminent sénior

    Avatar de Francis Walter
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2012
    Messages
    2 315
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2012
    Messages : 2 315
    Points : 26 889
    Points
    26 889
    Par défaut
    Citation Envoyé par DonQuiche Voir le message
    Ou encore faut-il comprendre que la comparaison doit se faire pour un même résultat, auquel cas un code 10% plus rapide mais trois fois plus complexe est préférable ?
    Oui la comparaison doit se faire pour un même résultat mais dans ce cas, seule la rapidité ne compte pas mais aussi l'optimisation des resultats obtenus.

    Ou alors au contraire faut-il comprendre que
    notepad.exe vaut davantage que tout windows
    puisqu'il requiert moins de mémoire ?
    Les ambitions de notepad ne sont pas les mèmes que celles d'un OS. Faut pas vouloir comparer l'incomparable

    Comme quoi on peut faire pire indicateur que la ligne de code.
    Bah ça va de soi.
    Vous avez envie de contribuer au sein du Club Developpez.com ?

    Vous êtes passionné, vous souhaitez partager vos connaissances en informatique, vous souhaitez faire partie de la rédaction.
    Il suffit de vous porter volontaire et de nous faire part de vos envies de contributions :
    Rédaction d'articles/cours/tutoriels, Traduction, Contribution dans la FAQ, Rédaction de news, interviews et témoignages, Organisation de défis, de débats et de sondages, Relecture technique, Modération, Correction orthographique, ...etc.
    Vous avez d'autres propositions de contributions à nous faire ? Vous souhaitez en savoir davantage ? N'hésitez pas à nous approcher.

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    C'est un ensemble de détails :
    la complexité
    Le temps passé à son étude et développement.
    Les fonctionnalités.
    Temps conception / corrections de bugs !!
    Sa lisibilité !
    les ressources mémoire..

  11. #11
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Citation Envoyé par Stéphane le calme Voir le message

    Et vous ?

    La ligne de code est elle la meilleure unité de mesure d'un projet informatique ?
    Non certainement pas. Ca peut donner une idée sur l'ampleur, mais c'est tout. D'ailleurs comparer le nombre de lignes de code C/C++ avec du php, faut être téméraire.

    Pour moi, que Facebook ait plus de ligne de code qu'un OS comme Windows, me conforte dans l'idée que le développement Web, c'est encore plus de la bidouille que le développement d'application classique. Je dirai même qu'aujourd'hui le développement Web a atteint des sommets de bidouillages extrêmes... ( C'est peut-être pour cela qu'ils sont tous à fond sur le html5...).

    Avec le designer Visual Studio (en windowsForm) , je te ponds 1000 lignes de code en 1 minute... Juste quelques clicks de souris.

    Citation Envoyé par Stéphane le calme Voir le message

    Quelle est, selon vous, la meilleure unité de mesure possible ?
    Il n'y en a a pas. Le développement, ça tient plus de l'art que du travail à la chaîne. C'est inquantifiable. Mais bon il y en a qui cherche à quantifier, peut-être qu'un jour ils y arriveront... Ce jour là, je leur dirai bravo.

  12. #12
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    498
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 498
    Points : 1 148
    Points
    1 148
    Par défaut
    J'ai envie de dire aussi qu'un projet informatique c'est l'infrastructure aussi.
    Parce que Facebook, c'est aussi de l'optimisation à l’extrême. Je sais même pas si on peut parler de projets.

    Parce que les boites pub qui viennent me demander de faire concurrence à facebook car dans leur lit ils ont rêvé d'un produit. J'ai juste envie d'éclater de rire.

    Premièrement Facebook a son propre compilateur et interpréteur PHP. Je parle même pas des optimisations faites avec Cassandra et autre serveur web. Ensuite il participe dans l'énergie renouvelable pour payer moins de d'énergies.

    Je pense qu'un projet est mesurable mais qu'on cache souvent la vérité car on n'arrive pas à faire comprendre aux gens le coût. D'ailleurs c'est dans leur métier de ne pas comprendre.

    En plus j'ai envie dire pourquoi on compare la complexité d'un système d'exploitation et d'une plateforme web. C'est comme si on comparait ma mère et ma soeur.

    En plus, mon métier est limité par ma culture générale. Je ne suis pas spécialiste de chaque métier. Les clients s'attendent toujours à ce qu'on comprennent immédiatement leur compléxité (l'ironie c'est qu'ils en ont parfois rien f***** du notre complexité à nous) donc cela demande des échanges. Il faut le mesurer aussi.

    Il y a l'analyse, les test l'IHM, la ressource humaine, la communication de celle-ci. Mais surtout ce qu'on oublie dans projet web par exemple est aussi le SEO. Il y a aussi la sécurité.

    Mais comme dis au dessus, on bidouille plus qu'on développe. Depuis mon insertion professionnel, je n'ai jamais entendu parler d'UML ou encore de Merise, vous allez être surpris mais aussi de tests unitaires (j'ai pas eu de chance).

    Allons plus loin aussi, allons voir ce que font les grands groupes. Alors eux c'est du sport international, ils ont un truc qui s'appelle le patent troll, les actionnaires (alors quand on me détruit des projets car cela plait pas aux actionnaires, on y juste mis 1 an dessus), les utilisateurs aussi (je crois que l'exemple même est windows 8.1 et xbox one).

    Il y a aussi l'impact économique ( je suis désolé, je n'ai pas 60 millions de dollars à donner comme google ).

    Alors je crois que celui qui dit que c'est du code, il faut allez le pendre à un arbre.

  13. #13
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Points : 1 241
    Points
    1 241
    Par défaut
    Un article assez intéressant, sur le sujet (ou presque) : http://martinfowler.com/bliki/Cannot...ductivity.html

    Citation Envoyé par Stéphane le calme Voir le message
    A comparer les codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var result = methodOne(methodTwo(a, methodThree(b)), c, d);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var result3 = methodThree(b);
    var result2 = methodTwo(a, result3);
    var result = methodOne(result2, c, d);
    Lequel vous semble le plus efficace ? Un exemple encore plus simple pour établir une comparaison.
    A noter que si le langage est compilé, le binaire sera équivalent dans les 2 exemple.
    Citation Envoyé par Stéphane le calme Voir le message
    La ligne de code est elle la meilleure unité de mesure d'un projet informatique ?
    Quelle est, selon vous, la meilleure unité de mesure possible ?
    Il est évident qu'on ne peut pas comparer des lignes de python et des lignes de C. Tout comme on ne peut passe comparer des lignes de formulaire à des lignes d'une IA.
    Une méthode (approximative) de mesure de la complexité d'un projet, est de faire la somme des poids affectés (cf planning poker) à chaque fonctionnalité du projet. Il me semble que COCOMO se base sur ce principe.

  14. #14
    Membre expert Avatar de Kearz
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2012
    Messages
    856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2012
    Messages : 856
    Points : 3 659
    Points
    3 659
    Par défaut
    Moi par exemple je préfère un bon: if(..) else(..) plutôt qu'un (..)?'':''.
    Je trouve que c'est plus rapide à comprendre quand on lit le code en diagonale pourtant ça n'a rien de mieux d'un point de vu technique. Et il y a une différence de ligne de code non négligeable.

    Donc en quoi la ligne de code serait bien pour mesurer?

  15. #15
    Expert éminent
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Points : 7 291
    Points
    7 291
    Par défaut
    Citation Envoyé par Kearz Voir le message
    Moi par exemple je préfère un bon: if(..) else(..) plutôt qu'un (..)?'':''.
    Je trouve que c'est plus rapide à comprendre quand on lit le code en diagonale pourtant ça n'a rien de mieux d'un point de vu technique. Et il y a une différence de ligne de code non négligeable.

    Donc en quoi la ligne de code serait bien pour mesurer?
    C'est clair. Le code est aussi là pour être lu et maintenu facilement. Si le jeu est de faire une ligne qui fait 10 choses en même temps bonjour la maintenabilité.

    En plus les compilos font leur affaire entre les if else et les ( test? si vrai : si faux ).

  16. #16
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 222
    Points : 766
    Points
    766
    Par défaut
    Citation Envoyé par Stéphane le calme Voir le message
    La ligne de code est elle la meilleure unité de mesure d'un projet informatique ?

    Quelle est, selon vous, la meilleure unité de mesure possible ?
    Eh bien tout dépend de ce qu'on veut mesurer! Si on veut mesurer le nombre de ligne de codes, c'est très bien. Sérieusement, c'est censé mesurer quoi? Surtout si c'est pour s'en servir pour comparer des logiciels qui ont des fonctionnalités complètement différentes.

    Pourquoi pas mesurer l'évolution du code d'un même logiciel dans le temps. Et encore, à part s'extasier devant des jolies courbes, je ne suis pas certain de ce que ça pourrait apporter très concrètement. D'ailleurs compter la taille en octets me paraîtrait plus réaliste que le nombre de lignes (histoire de ne pas trop donner d'importance aux lignes blanches ou presque, et inversement ne pas sous-estimer les lignes qui comportent beaucoup de code).

    D'un point de vue des développeurs, mesurer la "complexité du code" (dans le sens du nombre de variables, de fonctions, d'appels, etc.) peut servir à décider de couper des modules en deux ou revoir l'architecture pour que ça reste gérable. Mais ça se fait plutôt "à l’œil".

    En ce qui me concerne, je fais parti de ceux qui n'ont pas le moindre début d'idée de combien de lignes de code comporte au total les projets sur lesquels je travaille, et encore moins le nombre de lignes de code qui sont de mon fait.

    En tout cas j'ai une assez bonne idée du nombre de lignes de commentaires ou de documentations associée au code: beaucoup trop peu. En ce moment, je fais surtout de la vérification du code écrit par d'autres, et parfois je tombe sur des choses complètement incompréhensibles et qui partent dans tous les sens.

    Il me semble que le plus efficace pour avoir du "bon code" est de faire relire le code à quelqu'un d'autre et lui demander s'il comprend quelque chose et voir combien de temps ça lui prend. Le coût principal du code étant sa maintenance, je verrai plutôt une unité de mesure basée sur le temps nécessaire à lire et comprendre le code.

  17. #17
    Expert confirmé
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Points : 4 239
    Points
    4 239
    Par défaut
    Perso, ça fait 2 ans que je me bats avec ma hiérarchie pour leur faire comprendre que prendre le nombre de lignes de code écrites par an comme KPI n'est vraiment pas une bonne idée.

    C'est le meilleur moyen pour finir par arrêter d'écrire la moindre fonction/procédure et faire des copier/coller dans tous les sens. Bonjour la maintenabilité quand il faudra on se tromper dans un petit calcul de merde qui aurait pu faire l'objet d'une fonction et qui se trouve à 36000 endroit dans l'application.

    Bref, le comptage du nombre de ligne de code est à proscrire pour moi !
    Kropernic

  18. #18
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 044
    Points
    32 044
    Par défaut
    Citation Envoyé par Kropernic Voir le message
    Perso, ça fait 2 ans que je me bats avec ma hiérarchie pour leur faire comprendre que prendre le nombre de lignes de code écrites par an comme KPI n'est vraiment pas une bonne idée.

    C'est le meilleur moyen pour finir par arrêter d'écrire la moindre fonction/procédure et faire des copier/coller dans tous les sens. Bonjour la maintenabilité quand il faudra on se tromper dans un petit calcul de merde qui aurait pu faire l'objet d'une fonction et qui se trouve à 36000 endroit dans l'application.

    Bref, le comptage du nombre de ligne de code est à proscrire pour moi !
    J'ai la chance de ne jamais avoir été confronté à ça. Clairement, c'est foireux. Parfois il vaut mieux rajouter des lignes de code. Parfois, non. et encore, la décision dépendra aussi de la priorité : lisibilité, performance, respect des normes.....

    Le nombre de lignes de code est une mesure approximative de la quantité de bazar à gérer en maintenance, c'est tout. Et encore, pas d'une grande précision.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  19. #19
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 89
    Points : 111
    Points
    111
    Par défaut
    c'est sur que le nombre de ligne de code est foireux comme unité de mesure
    par exemple ceci est court:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    val votes = Seq(("scala", 1), ("java", 4), ("scala", 10), ("scala", 1), ("python", 10))
    val orderedVotes = votes
      .groupBy(_._1)
      .map { case (which, counts) => 
        (which, counts.foldLeft(0)(_ + _._2))
      }.toSeq
      .sortBy(_._2)
      .reverse
    ceci est plus long, mais grace aux variables intermédiaire, c'est plus compréhensible
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    val votes = Seq(("scala", 1), ("java", 4), ("scala", 10), ("scala", 1), ("python", 10))
    val votesByLang = votes groupBy { case (lang, _) => lang }
    val sumByLang = votesByLang map { case (lang, counts) =>
      val countsOnly = counts map { case (_, count) => count }
      (lang, countsOnly.sum)
    }
    val orderedVotes = sumByLang.toSeq
      .sortBy { case (_, count) => count }
      .reverse

  20. #20
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Je sais que je m'étais posé pas mal de question pour l'utilisation ou non d'indicateurs basés sur les lignes de code.

    Nb de ligne de cote / développeur dans l'équipe... de façon a voir si on reste a peu près constant dans le volume a faire / maintenir par développeur.
    Nb de ligne de code modifiées(ajoutées ou retirées) par l’équipe par mois... qu'on factorise ou que l'on ajoute, je pense que l'on travaille... C'est malheureusement assez complexe a automatiser et aucun outil ne le propose.

    Au final, j'ai abandonné l'affaire, en estimant que ca concernait 5-10% de l'activité et que le principal se mesurait sur d'autres critères subjectifs.

Discussions similaires

  1. La structure de mon code est elle bonne ?
    Par arklane dans le forum ActionScript 3
    Réponses: 3
    Dernier message: 17/08/2014, 14h47
  2. Réponses: 9
    Dernier message: 22/04/2014, 23h15
  3. Réponses: 6
    Dernier message: 26/08/2009, 22h31
  4. Afficher la ligne de code qui est tombée en erreur
    Par CAML dans le forum Framework .NET
    Réponses: 8
    Dernier message: 21/04/2007, 20h42
  5. [W3C] Quelle est l'utilité réelle de cette ligne de code ?
    Par unreal2me dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 20/12/2006, 16h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo