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 :

Les 6 vérités de la programmation, se vérifient-elles autour de vous ?

  1. #1
    Expert éminent sénior
    Avatar de Katleen Erna
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    1 547
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 1 547
    Points : 76 188
    Points
    76 188
    Par défaut Les 6 vérités de la programmation, se vérifient-elles autour de vous ?
    Les 6 vérités de la programmation, se vérifient-elles autour de vous ?

    Un développeur américain explique sur son blog que son expérience professionnelle dans le domaine de la programmation lui a permis de faire quelques constatations à propos des professionnels de l'IT et de leur manière d'écrire du code.

    Les voici :

    - Un programmeur passe entre 10 et 20% de son temps à coder, et écrit en moyenne 10 à 12 lignes de code par jour qui seront incluses dans le produit final (peut importe leur niveau). Les bons programmeurs utilisent le temps qu'il leur reste à penser, rechercher et faire des tests pour parvenir au meilleur design possible. Les mauvais quant à eux passent ces 80 à 90% de temps à debugger leur code en faisant des essais au hasard puis en regardant si cela fonctionne.

    - Un bon programmeur est dix fois plus productif qu'un programmeur lambda. Un excellent programmeur, lui, est de 20 à 100 fois plus productif que ce dernier. Des études l'ont montré, et ce, depuis les années 60. Un mauvais programmeur quant à lui, n'est pas seulement non productif, en plus de ne rien créer d'utile, il génère des heures de travail et de maux de tête pour ses collègues (qui devront réparer ses erreurs).

    - Les programmeurs très compétents passent très peu de leur temps à écrire du code (du moins du code qui se retrouvera à la fin dans le produit fini). Ceux qui passent la majeure partie de leur temps à coder sont trop fainéant, trop ignorants ou encore trop arrogants pour trouver des solutions existantes à d'anciens problèmes. Les programmeurs très compétents sont maîtres dans l'art de reconnaître et de réutiliser des schémas communs. Les bons programmeurs n'ont pas peur de réécrire leur code constamment pour atteindre le design idéal. Les mauvais, eux, écrivent du code qui manque d'intégrité conceptuelle, de hiérarchie et de schémas, et dans lequel se trouvent trop de répétitions. Du coup, c'est dur à réécrire, et il est plus rapide de se débarrasser d'un mauvais code pour repartir de zéro, que de le modifier.

    - Une étude de 2004 a démontré que 51% des projets de logiciels connaîtront des échecs sur quelque chose de critique, et 15% connaîtront un échec tout court.
    C'est mieux que 1994, où on notait 31% d'échecs.
    Cependant, la plupart des programmes sont faits par des équipes dans une ambiance non démocratique. Une seule personne est responsable du design, tandis que les autres peaufinent les détails.

    - Programmer, c'est du boulot. C'est une activité mentale intense. Les bons programmeurs pensent à leur travail tous les jours, 24 heures sur 24. Ils écrivent leurs codes les plus importants sous la douche ou dans leurs rêves. Parce que le travail le plus important est réalisé loin d'un clavier. Donc, la finalisation d'un projet ne peut pas être accélérée en passant plus de temps au bureau, ou en ajoutant plus de monde au projet.

    - Les programmes obéissent aux lois de l'entropie, comme beaucoup d'autres choses. De ce fait, des changements perpétuels causent des erreurs, ce qui érode l'intégrité conceptuelle du design original.
    C'est inévitable d'en arriver là, mais les programmeurs qui oublient de prendre l'intégrité conceptuelle en considération créent des programmes qui se dégradent si vite qu'ils deviennent inutiles avant même d'être achevés. Les problèmes d'entropie de ce type sont certainement la plus grande cause d'échec dans ce domaine.

    Source : Le blog de David Veksler

    Ces vérités se vérifient-elles autour de vous ? Les approuvez-vous ? Les reconnaissez-vous dans votre expérience ?

    Avez-vous quelques anecdotes à raconter qui illustrent ou au contraire contredisent les affirmations de David Veksler ?

  2. #2
    Membre éclairé Avatar de AuraHxC
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2006
    Messages : 652
    Points : 683
    Points
    683
    Par défaut
    - Programmer, c'est du boulot. C'est une activité mentale intense. Les bons programmeurs pensent à leur travail tous les jours, 24 heures sur 24. Ils écrivent leurs codes les plus importants sous la douche ou dans leurs rêves. Parce que le travail le plus important est réalisé loin d'un clavier. Donc, la finalisation d'un projet ne peut pas être accélérée en passant plus de temps au bureau, ou en ajoutant plus de monde au projet.
    Ceci m'a rappelé tellement de moment où je n'arrivais pas a dormir parce que dès que je fermais les yeux, je réfléchissais sur un algo... par contre la douche moins souvent.

  3. #3
    Membre éclairé
    Avatar de ArKam
    Inscrit en
    Mars 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Mars 2007
    Messages : 528
    Points : 680
    Points
    680
    Par défaut
    Bon si je puis me permettre, ce monsieur enfonce quand même pas mal de portes ouvertes

    Par contre, je suis tout à fait d'accord avec le fait qu'une équipe qui s'écarte trop du pattern original est vouée à l'échec ou au minimum a ce trimbaler des casseroles pendant longtemps.

    Je sais pas pourquoi mais cet article me laisse un peu sur ma faim, j'ai l'impression de ne pas saisir tout le sens de la démarche, quel est le but de cette publication à l'origine?

  4. #4
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 450
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 450
    Points : 4 600
    Points
    4 600
    Par défaut
    Cependant, la plupart des programmes sont faits par des équipes dans une ambiance non démocratique. Une seule personne est responsable du design, tandis que les autres peaufinent les détails
    haha, c'est trop mon cas en ce moment... sinon je me suis bien reconnu (je sais pas si c'est une si bonne chose que ca )
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  5. #5
    Rédacteur
    Avatar de Arnaud F.
    Homme Profil pro
    Développeur COBOL
    Inscrit en
    Août 2005
    Messages
    5 183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur COBOL
    Secteur : Finance

    Informations forums :
    Inscription : Août 2005
    Messages : 5 183
    Points : 8 873
    Points
    8 873
    Par défaut
    Au boulot je suis dans une équipe ou le niveau est assez hétérogène et je dois dire que cette étude ne me semble absolument pas absurde, loin de là et relate plus ou moins ce que je peux constater au quotidien...

    Il m'est aussi arrivé de penser à des algos ou des choses une fois chez moi, en mangeant, ou avant de m'endormir, de manière totalement inconsciente, ça m'a fait sourire de lire cette étude
    C'est par l'adresse que vaut le bûcheron, bien plus que par la force. Homère

    Installation de Code::Blocks sous Debian à partir de Nightly Builds

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 13
    Points : 27
    Points
    27
    Par défaut
    Je trouve son approche vaniteuse et hors contexte.

    Quels sont les moyens donnés aux "mauvais développeurs" selon lui ?

    Je manque surement d'expérience en équipe, mais celles qui me sont relatés, ou celles que je lis, me laissent clairement penser qu'il y a du progrès à faire lorsqu'on localise une "bête noire" qui nuit à la productivité du troupeau.

    Je pencherai plus pour dire que du potentiel est souvent inexploité par faute de confiance/moyen/innovation.

    Mais bon c'est son blog, son opinion, quoique assez tranché "blanc ou noir".

    Sujet à Troll, certainement

  7. #7
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    ça me rassure, il n'y a pas que moi qui tourne en rond dans mon lit en pensant au futur ligne de code à écrire
    ça me rassure aussi de savoir que je ne fais pas du mauvais boulot si je réfléchis pendant 2 heures avant d'attaquer le code
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 73
    Points : 179
    Points
    179
    Par défaut
    C'est intéressant globalement, mais ça manque beaucoup de nuance... Un bon programmeur sait aussi évaluer le rapport cout/retours sur investissements, et ne va pas concevoir un design générique, modulable, une machine de guerre qui accouchera ensuite d'une souris...
    J'ai souvent vu des types (moi y compris) s'embarquer dans des trucs très complexes qui n'avaient pas lieu d'être, du genre développer le proto jetable d'une IHM en utilisant MVC Visitor et toute la clique...

    Si l'on n'utilise pas le dernier framework JEE qui tue pour développer le site web de madame michou, c'est pas par fainéantise "arrogance" ou parcqu'on est un mauvais programmeur, c'est juste parcqu'on arrive à décoller 2 secondes de la bulle "d'autiste architecte qui rêve de code et conçoit son appli aux chiottes", et qu'on a conscience qu'une appli si on la code c'est pas pour faire avancer la recherche ou transcender les frontières des design pattern, c'est avant tout pour qu'elle soit utilisée. Et si madame Michou a juste besoin d'un lien vers son site de cuisine préféré et d'une image de son chat, je vais pas lui coder une architecture 3 tiers.

  9. #9
    Membre confirmé
    Profil pro
    DIRLO
    Inscrit en
    Juillet 2009
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : DIRLO

    Informations forums :
    Inscription : Juillet 2009
    Messages : 197
    Points : 517
    Points
    517
    Par défaut
    Une étude de 2004 a démontré que 51% des projets de logiciels connaîtront des échecs sur quelque chose de critique, et 15% connaîtront un échec tout court. C'est mieux que 1994, où on notait 31% d'échecs.
    j'imagine s'il s'agissait de construction automobile , batiment , aéronautique , production d'énergie nucléaire , médecine ...

    à part les prévisions météorologiques , existe-t-il un autre secteur où on puisse se permettre de tels chiffres ?

    on est dans une industrie du luxe tout de même

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 585
    Points : 1 138
    Points
    1 138
    Par défaut Euh...
    Les programmeurs très compétents sont maîtres dans l'art de reconnaître et de réutiliser des schémas communs.
    Bon, ok, beaucoup de choses sont déjà écrites, mais pour les retrouver, ce n'est pas d'un programmeur dont on a besoin, mais d'un documentaliste !
    Les bons programmeurs n'ont pas peur de réécrire leur code constamment pour atteindre le design idéal.
    Le "bon" ne deviendra alors jamais "compétent", parce qu'entre ces 2 idées, c'est un revirement non ? A quoi bon passer 80% de son temps à trouver ce qui existe déjà pour gaspiller "constamment" son temps à le réécrire ?
    L'avis publié ci-dessus est mien et ne reflète pas obligatoirement celui de mon entreprise.

  11. #11
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 50
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par Mens Pervincet Voir le message
    C'est intéressant globalement, mais ça manque beaucoup de nuance... Un bon programmeur sait aussi évaluer le rapport cout/retours sur investissements, et ne va pas concevoir un design générique, modulable, une machine de guerre qui accouchera ensuite d'une souris...
    J'ai souvent vu des types (moi y compris) s'embarquer dans des trucs très complexes qui n'avaient pas lieu d'être, du genre développer le proto jetable d'une IHM en utilisant MVC Visitor et toute la clique...

    Si l'on n'utilise pas le dernier framework JEE qui tue pour développer le site web de madame michou, c'est pas par fainéantise "arrogance" ou parcqu'on est un mauvais programmeur, c'est juste parcqu'on arrive à décoller 2 secondes de la bulle "d'autiste architecte qui rêve de code et conçoit son appli aux chiottes", et qu'on a conscience qu'une appli si on la code c'est pas pour faire avancer la recherche ou transcender les frontières des design pattern, c'est avant tout pour qu'elle soit utilisée. Et si madame Michou a juste besoin d'un lien vers son site de cuisine préféré et d'une image de son chat, je vais pas lui coder une architecture 3 tiers.
    +1

    J'ai travaillé avec une personne que je considère comme un bon développeur mais il avait tendance à mettre des patterns partout, même pour des trucs qui ne le méritaient pas. Du coup, tu passes 10x plus de temps à essayer de comprendre comment ça marche et à voir comment le corriger sans que ça foute le bordel partout que si une solution plus simple avait été privilégiée. La montagne qui accouche de la souris, c'est très bien résumé.
    Du coup on avait appelé ça le syndrome de la patternite.

    Pour le mauvais programmeur, je suis assez d'accord. Il a toujours tendance à soit refiler son taf aux autres (dans ce cas, il ne s'améliore pas) soit à venir poser tout le temps des questions (être interrompu lors de l'écriture de code est assez désagréable) ou carrément refaire son code car c'est franchement bancale comme truc... (le plus fort que j'ai vu, c'est un gars qui a refilé son boulot en sous main et, une fois que c'était fait, à surjouer son rôle dans l'affaire) Cela m'est arrivé aussi sur du code trop compliqué à corriger de tout supprimer et de le refaire entièrement, heureusement c'est pas souvent que cela arrive.

    Sinon pour rassurer, ceux qui pensent à leur programme 24/24 ne fait pas de vous de bon développeur. MOUHAHAHAHAHA !

  12. #12
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 690
    Points : 20 211
    Points
    20 211
    Par défaut
    Les bons programmeurs pensent à leur travail tous les jours, 24 heures sur 24
    Ça me chagrinerai presque de savoir que je ne serais toujours qu'un sous programmeur parce que je sais "deconnecter" du taf quand je suis en vacances , voire même chez moi
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 50
    Points : 70
    Points
    70
    Par défaut
    Citation Envoyé par grunk Voir le message
    Ça me chagrinerai presque de savoir que je ne serais toujours qu'un sous programmeur parce que je sais "deconnecter" du taf quand je suis en vacances , voire même chez moi
    Il faut surtout le prendre comme une justification pour "Un manager qui voit un bon développeur ne rien faire ne doit pas en conclure qu'il ne fait rien, d'ailleurs un bon développeur amène souvent du boulot chez lui alors arrêtez de l'embêter quand il va prendre un café"

  14. #14
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Il y a les mêmes différences entre un bon programmeur et un mauvais programmeur que entre un bon chasseur et un mauvais chasseur
    It's not a bug, it's a feature

  15. #15
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    Ce qui est dommage, c'est qu'on a pas vraiement le définition de mauvais dévéloppeur.
    Parce que maintenant, quand je regarde en arrière, je trouve que j'ai été un mauvais développeur et c'est normal, je débutais.

    Effectivement, par contre, un développeur qui fonce dans le tas est un développeur pressé et qui manque de recul (mauvais développeur non, car qui chez lui n'a pas foncé pour faire un code vite fait pour se dépanner, sans réfléchir).

    Plus un code et réfléchi, plus il a des chances d'être bien. Mais, bon, il y a un moment ou il faut y aller, car 15 jours de réflexion pour 3 lignes de code ça coûte cher.

    Sinon, je m'y retrouve dans ce qu'il dit et de ce que je vois autour de moi.

    Citation Envoyé par Katleen Erna Voir le message
    - Une étude de 2004 a démontré que 51% des projets de logiciels connaîtront des échecs sur quelque chose de critique, et 15% connaîtront un échec tout court.
    C'est mieux que 1994, où on notait 31% d'échecs.
    Si peu ? La chance

  16. #16
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    "Le bon chasseur, il voit un truc qui bouge y tiiiiire..."

  17. #17
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    250
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 250
    Points : 420
    Points
    420
    Par défaut
    J'ai remarqué qu'un bon programmeur fait des IHM très laides aussi

  18. #18
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 13
    Points : 31
    Points
    31
    Par défaut
    J'imagine qu'il se trouve excellent programmeur.
    Il aurait pu écrire que le bon programmeur est vaniteux et arrogant.

    Franchement c'est bien joli de passer 88 à 90 % de son temps au design mais parfois c'est pas vraiment ce qui va faire avancer le schmilblick.

    Enfin moi je dis ca...je suis mauvais programmeur^^ (m'enfin je commence à peine)

  19. #19
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Les mauvais quant à eux passent ces 80 à 90% de temps à debugger leur code en faisant des essais au hasard puis en regardant si cela fonctionne.
    lol, c'est particulièrement vrai en phase de maintenance, quand le programme est arrivé à un certain stade d'évolution et que le code devient "spaguetti".

  20. #20
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Points : 90
    Points
    90
    Par défaut
    Totalement !

    Je ne suis pas aussi fou que je le pensais.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/04/2006, 16h10
  2. [VBA]Utiliser les objet disponible d'un programme en VB
    Par seblefebvre dans le forum Général VBA
    Réponses: 13
    Dernier message: 01/02/2006, 11h34
  3. Comment récupérer les éléments d'un autre programme ?
    Par Henri_13 dans le forum API, COM et SDKs
    Réponses: 22
    Dernier message: 29/11/2005, 01h16
  4. Trouver les dll dont depend un programme
    Par baert dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 17/10/2005, 15h41
  5. Lister les classes utilisées par un programme
    Par seawolfm dans le forum Général Java
    Réponses: 3
    Dernier message: 11/10/2005, 14h18

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