Developpez.com

Le Club des Développeurs et IT Pro

Avez-vous rencontré des développeurs que vous considérez comme "exceptionnels" ?

Qui sont-ils ? Et que vous ont-ils apporté ?

Le 2011-08-03 13:22:16, par Hinault Romaric, Responsable .NET
Pour Marc Andreessen, co-fondateur de Netscape, «cinq programmeurs exceptionnels peuvent surpasser 1.000 programmeurs médiocres».

«Quelqu'un qui est exceptionnel dans un travail n'est pas seulement meilleur que celui qui est bon, il est 100 fois meilleur» explique pour sa part Mark Zuckerberg, le créateur de Facebook, pour justifier le rachat de FriendFreed pour 47 millions de dollars. Soit environ 4 millions de dollars par employé.

Un avis également partagé par Bill Gates qui souligne le gain de temps infini que permettent ces « génies ».

Mais un avis qui peut être aussi qualifié de partiel.

Bill Taylor, écrivain et fondateur du magazine Fast Company, estime par exemple qu'il y a beaucoup plus de performances à espérer sur le long terme d'une équipe de développeurs dits « ordinaires » que dans l'excellence d'un seul individu.

Pour lui, à choisir entre une équipe de 100 personnes qui peut produire un résultat acceptable et un développeur exceptionnel, il prendrait la première option.

Reprenant cette notion centrale d'équipe, un des responsables IT du journal britannique The Guardian, Nick Silver, estime que «cinq grands ingénieurs [ou] 1.000 ingénieurs moyens» est une fausse dichotomie. Les deux étant complémentaires, surtout sur des projets d'envergure.

En résumé, un individu hautement productif aura toujours besoin d'être entouré par un groupe pour pouvoir se concentrer sur ce qu'il sait faire de mieux.

Au final, le but ne serait pas d'être ou d'avoir un développeur exceptionnel, mais bel et bien une équipe exceptionnelle.

Reste cette question de savoir ce qu'est, au fond, un programmeur d'exception. Une question qui n'a certainement pas une seule réponse. Mais dont on peut dire que lorsqu'on en croise un, on sait le reconnaître et qu'il nous marque.

Et que l'on n'en croise pas non plus tous les jours.

Sources : Article de Bill Taylor, Billet de blog de Nick Silver

Et vous ?

Avez-vous rencontré des développeurs que vous considérez comme "exceptionnels" ? Qui sont-ils ?

Comment vous ont-ils marqué(e) et que vous ont-ils apporté ?
  Discussion forum
76 commentaires
  • zaventem
    Membre expérimenté
    Envoyé par souviron34
    Et à mon avis Bill Taylor a totalement tort...
    Ton type exceptionnel traverse la route; une voiture arrive et paf t'as plus d'équipe. En plus comme les types vraiment exceptionnel ne courent pas les rues (ou alors pas longtemps à causes des voitures), c'est pas possible de le remplacer avant un bon bout de temps.

    Si à la place d'un type génial tu en as quelques uns tout simplement bon, tu perds pas tout

    Envoyé par souviron34

    D'autant plus que aucun de ces gens "excellents" ne rechigne en général à faire plus que le nombre d'heures "légales", car pour lui c'est un défi... Et une fierté professionnelle et personelle..
    Si mon patron souhaite que je ne comptes pas mes heures, qu'il arrête de compter mon salaire...
  • YannPeniguel
    Membre éprouvé
    Les profs nous paraissent souvent très doués car on est encore des étudiants peu compétents et pas encore professionnels, au moment ou l'on a cette impression.

    On peu faire un parallèle avec un nouveau dans un cours de Judo, qui se fera généralement maîtriser par de simples ceintures orange ou vertes. Ledit nouveau ne ressentira pas spécialement la différence avec les gens de haut niveau CN depuis plusieurs années présent au cours, car il se fera maîtriser presque aussi vite dans chacun des deux cas... Pourtant la différence est très grande.

    En ce qui me concerne, j'ai connu quelques gens plutôt doués, mais je pense que le problème vient des gens qui se considèrent comme des génies. 90% de ces gens n'en sont pas, selon une étude réalisée par moi même selon une méthode arbitraire, subjective et pifométrique. Lesdits pseudos génies posent les problèmes suivants:
    - Utilisation de moyens techniques d'une complexité non-nécessaire et non maitrisée: "Ce nouveau Framework permettra de faire une appli plus performante... (2 semaines plus tard) On va utiliser l'ancien en fait, c'est pourri!"
    - Refus d'admettre les erreurs: "Tu ne comprends simplement pas ce que j'ai fait"/"Tu te sers mal de ce que j'ai fait"
    - Inaptitude au consensus avec les autres: "Ce que je dis est toujours juste donc n'est pas discutable"
    - Intrusion sauvage dans les développements des autres développeurs: "Je vais améliorer ton code... Voilà, y a plus rien qui marche, maintenant débrouille toi, mais en tout cas c'est mieux fait maintenant"
    - Refus de transmettre les taches, même quand le "génie" n'arrive pourtant pas à les réaliser: "Il n'y a que moi qui suit capable de le faire"
    - Incapacité a accepter le code écrit par d'autres, qui est forcément mauvais aux yeux du "génie". Il s'avère qu'il est en fait simplement dans l'incapacité de le comprendre: "C'est de la merde!"
    - Noie les gens non-techniques avec des explications pseudo-techniques mélangeant les 20 termes les plus à la mode du moment: "il faut faire un widget web 2.0 ajax conforme W3C, en utilisant node.js et Ruby On Rails architecturé en Design Pattern Factory tu vois!"

    Bref, scions donc le piédestal sur lequel on met les gens! Cela leur donne des vertiges!
  • Virgil Scipion
    Membre habitué
    Encore faut-il définir "exceptionnel"... et le remarquer !

    Parce qu'on peut être doué, mais être un glandeur fini. C'est justement le bonheur que d'être capable de faire en bossant à mi-temps et glandant sur le Net le reste du temps ce que d'autre accomplissent en bossant chaque minute de leur journée de travail.

    Et puis être balèze, c'est assez flou.
    J'en connais qui sont super doués, mais doué pour faire des conceptions ultra carrées avec plein de concepts chiant à comprendre qui font jolis sur le papier.
    Et d'autres qui sont incapables d'être organisés et de faire les choses sérieusement mais qui trouvent un bug en fermant les yeux.
    Ou d'autres encore qui envoient de la ligne de code avec le débit du Nil en cru, mais qui sont en panique dès qu'on les embrouille un peu.
    Ou encore des gens capables de comprendre et de se faire comprendre sans difficulté des commerciaux et des clients mais qui savent pas faire de code propre.
    Ou des gens qui pondent une interface ultra jolie mais qui sont incapables de faire le code qui va avec.

    Tout ça à la fois, c'est impossible. Parce que c'est incompatible, on ne marche pas à l'instinct en faisant les choses bien normalisées.
    Mais c'est complémentaire : plutôt que chercher la vache à deux têtes, mieux vaut se trouver un cheptel de bêtes de concours.
  • willard
    Membre à l'essai
    J'ai longtemps cherché le dev exceptionnel jusqu’à ce qu'un jour, je découvre un miroir.

    Désolé, il fallait la faire celle là
  • Barsy
    Expert confirmé
    Il m'est arrivé de croiser des développeurs qui étaient exceptionnellement mauvais... ça compte ?
  • tchize_
    Expert éminent sénior
    Envoyé par Hinault Romaric 
    [B][SIZE="4"]Avez-vous rencontré des développeurs que vous considérez comme "exceptionnels" ?

    Tous les matins, je manque d'ailleurs jamais de lui dire bonjour au moment de me laver les dents.
  • Franck SORIANO
    Expert confirmé
    Envoyé par YannPeniguel
    Tu me parles des 10% restants, d'ou l'incompréhension.
    Non, je ne crois pas qu'il y ait d'incompréhension. Mon message ne t'était pas réellement destiné.
    Je me suis servi du tien pour faire remarquer que la notion de "génie" est très relative :
    - On peut considérer que quelqu'un d'autre est génial parce qu'il fait des trucs dont on se sent soit même incapable.
    - On peut se considérer soit même comme un génie, parce qu'on fait des trucs que nos collègues n'arrivent pas à faire (ou qu'on pense qu'ils ne sauraient pas faire).
    - Ou encore, on peut considérer qu'on ne fait rien d'extraordinaire, mais que ce sont les autres qui sont des boulets et qui devraient savoir faire.

    Je me souvien que mon prof de philo en son temps nous disait que seul les artistes peuvent réellement être appelé génie. Parce qu'ils créent à partir de rien.
    Tandis qu'un technicien, quelle que soit la complexité et les résultats extraordinaires qu'il obtient, il ne fairait rien sans tous ceux qui l'ont précédé et qui lui ont enseigné les savoirs et savoir faire qui lui permette d'atteindre ces résultats.

    En fait rien n'est difficile ni extraordinaire quand on sait faire.
    Ce qui semble être exceptionnel de nos jours, c'est de savoir faire ce qu'on nous demande !
  • Bebel
    Membre éprouvé
    Envoyé par YannPeniguel
    Les profs nous paraissent souvent très doués car on est encore des étudiants peu compétents et pas encore professionnels, au moment ou l'on a cette impression.

    On peu faire un parallèle avec un nouveau dans un cours de Judo, qui se fera généralement maîtriser par de simples ceintures orange ou vertes. Ledit nouveau ne ressentira pas spécialement la différence avec les gens de haut niveau CN depuis plusieurs années présent au cours, car il se fera maîtriser presque aussi vite dans chacun des deux cas... Pourtant la différence est très grande.

    En ce qui me concerne, j'ai connu quelques gens plutôt doués, mais je pense que le problème vient des gens qui se considèrent comme des génies. 90% de ces gens n'en sont pas, selon une étude réalisée par moi même selon une méthode arbitraire, subjective et pifométrique. Lesdits pseudos génies posent les problèmes suivants:
    - Utilisation de moyens techniques d'une complexité non-nécessaire et non maitrisée: "Ce nouveau Framework permettra de faire une appli plus performante... (2 semaines plus tard) On va utiliser l'ancien en fait, c'est pourri!"
    - Refus d'admettre les erreurs: "Tu ne comprends simplement pas ce que j'ai fait"/"Tu te sers mal de ce que j'ai fait"
    - Inaptitude au consensus avec les autres: "Ce que je dis est toujours juste donc n'est pas discutable"
    - Intrusion sauvage dans les développements des autres développeurs: "Je vais améliorer ton code... Voilà, y a plus rien qui marche, maintenant débrouille toi, mais en tout cas c'est mieux fait maintenant"
    - Refus de transmettre les taches, même quand le "génie" n'arrive pourtant pas à les réaliser: "Il n'y a que moi qui suit capable de le faire"
    - Incapacité a accepter le code écrit par d'autres, qui est forcément mauvais aux yeux du "génie". Il s'avère qu'il est en fait simplement dans l'incapacité de le comprendre: "C'est de la merde!"
    - Noie les gens non-techniques avec des explications pseudo-techniques mélangeant les 20 termes les plus à la mode du moment: "il faut faire un widget web 2.0 ajax conforme W3C, en utilisant node.js et Ruby On Rails architecturé en Design Pattern Factory tu vois!"

    Bref, scions donc le piédestal sur lequel on met les gens! Cela leur donne des vertiges!
    C'est pas un génie ça mais un c.. et j'en ai déjà croisé un comme ça, son code etait loin d'être terrible. Sauf si bien sur si on considère qu'un code illisible est un code de génie.
  • el_slapper
    Expert éminent sénior
    Envoyé par souviron34
    J'avoue franchement ne pas comprendre...

    On parle de DEV..

    Les liens incestueux entre grandes SSII et grandes banques sont un cas à part : ils sont embauchés quasi à temps plein et quasi sans limites (.../...)
    Oui, oui, je parle de dev. Mais, même sans compter le cas ou "si tu passes sous un bus demain matin, il faut que l'appli continue à vivre", une banque (par exemple, même si il est caricatural), préfèrera une solution plus chère, plus pourrie, mais plus sure. Même hors SSII(qui ne font que surfer sur la vague).

    Paul Graham explique qu'il vaut mieux 3 codeurs de LISP plutôt que 70 experts ORACLE(mais le COBOL que je pratique fera l'affaire pour l'exemple). Pour une start-up, difficille de lui donner tort. Mais mon code(que je sois interne ou externe), un imbécile doit pouvoir le vérifier, pour s'assurer que je n'ai pas inséré une finesse qui alimente mon compte en loucedé. En COBOL, il peut facilement. En LISP, non. Donc, dans ce cas précis, mieux vaut 70 codeurs COBOL que 3 codeurs LISP. Même pour un résultat de qualité inférieure.

    L'efficacité d'un développement n'est pas le seul critère à prendre en compte. La multiplicité des intervenants permet aussi de rendre toute escroquerie interne plus complexe.

    Après, ça ne justifie pas le comportement de certaines SSII qui vendent des projets impossibles(une refonte de la gestion client qui foire depuis 6 ans pleins, à 60 personnes en moyenne dessus - c'est pas un banquier mais c'est tout comme). Et je préfèrerais être en interne. Mais nous, développeurs, ne devons pas oublier le contexte plus large dans lequel nous évoluons. Et l'excellence technique peut présenter, dans certains cas, des inconvénients inacceptables. Encore une fois, chez un éditeur de logiciel, mon raisonnement ne s'applique pas. Mais en développement spécifique, tout est plus compliqué.
  • tchize_
    Expert éminent sénior
    Envoyé par Nemek
    Il me semble que quelqu'un a dit que pour un projet fonctionne il faut, en gros, 1 génie, 5 moyens et 10 mauvais.
    Marrant, moi j'ai appris que pour qu'un projet de bonne envergure fonctionne, il faut entre 4 et 7 programmeurs dessus, pas plus. Au delà (gros projet), il faut scinder en pluseirus équipes autonomes.

    En gros il faut
    1/2 senior
    2/3 moyen
    1/2 junior

    Et quand on fait des séances d'analyses pour résoudre un problème épineux, c'est un junior qui prend le feutre et va au tableau blanc, pendant que le(s) seniors expliquent les solution possible.

    Pourquoi? Parce que si le junior ecrit n'importe quoi au tableau le senior sait de suite que personne dans l'équipe ne le comprend

    Dans le sens inverse, les moyen auraient acquiescer sans tout comprendre et le junior se serait écrasé en se disant "il ont surement raison", et c'est comme ça qu'on fini avec des solution de génies impraticable dans la réalité