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

  1. #1
    Expert éminent sénior
    Un blogueur classe les développeurs en cinq catégories et donne sa définition du "vrai développeur"
    Quelle est votre définition du « vrai développeur » et comment le trouvez-vous ?
    Un blogueur expose son point de vue

    Mise à jour du 23/11/2010


    Nous avons passé en revue hier (lire ci-avant) un billet du blogueur Steven Benner. Son article a suscité sur Développez.com de nombreuses réactions et un débat intéressant.

    Mais il a une suite.

    Après s'être attaqué (d'une manière assez caricaturale) aux catégories des développeurs, l'auteur expose, dans un billet plus recherché, sa propre définition du « vrai développeur », comprendre les qualités qui doit réunir un bon développeur.

    Selon lui, les vrais développeurs sont ceux qui peuvent apprendre vite, apprendre par la pratique, et ne jamais arrêter d'apprendre.

    La définition de Benner ne serait donc pas incompatible avec les développeurs qui utilisent du code trouvé sur Google (ou Bing). Bien au contraire.

    Ces développeurs, en arrivant à trouver et à adapter rapidement des solutions à leur travail font justement preuve de capacités d'apprentissage et d'adaptation.

    Pour trouver les vrais développeurs, Benner donne quelques pistes. Parmi lesquelles, il recommande de mettre les candidats à l'épreuve mais sur des compétences de haut-niveau, non pas sur des patrons de conceptions ou d'obscures problèmes algorithmiques.

    Des problèmes théoriques, utilisés par certains recruteurs pour départager les candidats, feraient passer à côté de certains "vrai développeurs". Car ces derniers peuvent de ne pas arriver à se rappeler de solutions à des problèmes qu'ils ne rencontrent que rarement, voire jamais.

    En revanche, il déconseille de recruter les développeurs qui s'intéressent plus à l'informatique théorique qu'à l'expérience effective. Benner les considère même comme "une épine perpétuelle dans le pied de l'industrie du développement".


    Source : le blog de Steven Benner

    Et vous ?

    Êtes-vous d'accord avec la définition de Benner ?
    Quelle est votre propre définition du vrai développeur et comment faites-vous pour les dénicher ?



    Un blogueur classe les développeurs en cinq catégories
    Êtes-vous d'accord avec son classement ? Et quelle catégorie vous correspond le plus ?



    Steven Benner est un développeur Web californien qui blogue avec assiduité.

    Parmi ses nombreux articles de fonds (et de qualité), il a récemment publié un article dans lequel il classe les développeurs (selon son expérience) en 5 catégories. Une classification forcément caricaturale mais néanmoins très intéressante.

    La voici en réusmé.

    En un : ceux qui sont efficaces, produisent des solutions rapides et robustes, mais pas vraiment élégantes.

    En deux, les perfectionniste, qui ne se soucient aucunement des délais ni des budgets, seul le code parfait les intéresse et ils arrivent effectivement à faire des chef d'œuvres... mais souvent trop tard.

    La troisième catégorie, selon Benner, est celle des anti-développeurs. Ceux qui refusent de coder sous prétexte que quelqu'un a forcément déjà fait le code voulu, qu'il suffit tout simplement reprendre.

    La 4ème catégorie, opposée à la 2ème, est celle des développeurs qui respectent toujours les délais mais produisent du code "pourri". Les clients et les ressources humaines les adorent, les autres développeurs les haïssent.

    Benner classe enfin en cinquième catégorie, les développeurs théoriciens qui passent le plus clair de leur temps (80% selon Benner) à étudier les options possibles, 15% du temps à pester contre les délais non raisonnable, 4% à raffiner les options et 1% du temps à coder réellement.


    Et vous ?

    Voyez-vous d'autres catégories de développeurs ?
    Et dans quelle catégorie vous mettriez-vous, vous et vos collègues ?


    Source : blog de Steven Benner


    En collaboration avec Gordon Fowler

  2. #2
    Expert éminent
    Nous aurions donc :

    1) le fonceur précipité
    2) l'artiste incompris
    3) l'adepte de réutilisation massive
    4) L'adepte du quick'n dirty
    5) L'ingénieur râleur

    Un peu caricatural tout ça, pour moi c'est un peu comme de dire qu'un théoricien est nul en pratique et vice versa, en à peine plus élaboré.

    A mon avis, un développeur est un peu tous ces portraits à la fois mais dans des mesures qui peuvent varier suivant les individus et les projets, c'est juste l'excès dans une de ces catégories qui rend le bonhomme inefficace ou difficile à vivre.

  3. #3
    Membre averti
    Je suis entièrement d'accord avec skip, nous sommes tous un peu tout ça à la fois, selon les circonstances.

    Et j'ajouterais que la manière dont nous serions classifiés dépendrait énormément de celui qui juge (moi, celui qui utilise mon API, celui qui la maintient ?)

    Et d'ailleurs, il y a un an, cet article avait fait polémique :
    http://www.joelonsoftware.com/items/...009/09/23.html

    Il expliquait qu'un bon développeur codait correctement la plus part du temps (TDD, Sonar et tout), mais au moment de finaliser, il savait comment faire pour ne plus fignoler et releaser, au prix d'une augmentation de la dette technique.

    C'est un peu suite à cet article que la notion de dette technique est apparu dans l'ecosystème Java.

  4. #4
    Membre éclairé
    Citation Envoyé par dissert Voir le message
    Et d'ailleurs, il y
    HADOPI a frappé

  5. #5
    Membre averti
    Citation Envoyé par manudwarf Voir le message
    HADOPI a frappé
    Oui, non, ... c'est moi qui ai merdouil...lé. Mais c'est réparé !

  6. #6
    Membre à l'essai
    Perfectionniste
    J'adore le cas du perfectionniste incompris et mal aimé et qui au final a toujours raison

  7. #7
    Membre à l'essai
    C'est quoi la différence entre le premier et le quatrième ?

  8. #8
    Modérateur

    Une traduction qui colle pas top.
    "Historiquement, techniquement, économiquement et moralement, Internet ne peut pas être contrôlé. Autant s’y faire." Laurent Chemla

    Je soutiens Diaspora*, le réseau social libre.

    Veillez à porter une attention toute particulière à l'orthographe...

    Blog collaboratif avec des amis : http://geexxx.fr

    Mon avatar a été fait par chiqitos, merci à lui !

  9. #9
    Membre chevronné
    Citation Envoyé par Makav3li Voir le message
    C'est quoi la différence entre le premier et le quatrième ?
    Hello,

    Je la voit ainsi avec des exemples,

    Le premier fais la différence entre une méthode de classe, et une méthode d'instance.
    Utilise cela d'une manière simple et pragmatique pour arriver à son but.
    En résumé, il design simple et efficace, proche de son but, mais il maîtrise parfaitement son outils, c'est donc un choix assumé.

    Le deuxième s'en contre fou, du moment que tout semble fonctionner comme il pense l'avoir codé, c'est que c'est ok.
    On dirait même que toute cette complexité est pour lui une vrai plaie, qu'il supporte car il n'à pas d'autres options (à sa portée), ce n'est plus un choix, c'est une résignation.

    Voyez-vous d'autres catégories de développeurs ?
    nsp,

    Et dans quelle catégorie vous mettriez-vous...
    Moi, quelque part entre la 1 et la 4.

    Pour le reste, c'est caricatural, mais étayez de suffisamment d'informations pour reproduire le schéma et l'appliquer, à ces collègues par exemple. Effectivement si il avait balancé une liste comme à pu le faire _skip, c'eut été moins intéressant.
    Maintenant je pense aussi que pris sur la longueur d'une carrière, la diversité des tâche accomplies, nous nous retrouverons tous dans chacune de ces définitions, sauf qu'ici on veut mettre en exergue un comportement récurrent.
    A l'augure d'un comportement récurrent, on est plutôt l'un que l'autre, mais pas tous en même temps.

    a plus

  10. #10
    Membre éprouvé
    Ce découpage n'est pas forcément le plus pertinent. Cela dit face à une problématique, les développeurs seront invariables aspirés par leur penchant. Faite le test vous verrez que même bien en amont d'un projet les orientations de chacun sont déjà là.
    Toujours un prêt à réinventer la roue ou un autre recommander l'utilisation du dernier Framework à la mode ou bien un qui dit oui à tout.

  11. #11
    Membre à l'essai
    La cinquième catégorie rassemble surtout les développeurs qui veulent devenir architecte logiciel.
    On ne développe plus dans le détail, on cherche plutôt à avoir un design robuste et extensible.

    Ce n'est que mon avis sur la question.
    Je passe 80% du temps à concevoir ce que je vais coder, puis l'implémente (avec les tests) sur le temps restant. Au final, je passe beaucoup moins de temps à faire de la correction de bugs que des amis passant directement à la phase implémentation.

  12. #12
    Membre régulier
    Je dirait que ça dépend surtout du projet, plus que du développeur directement

    Mais j'aime bien les articles d'auto dérision de la profession !

  13. #13
    Membre averti
    Je suis d'accord avec le classement qu'il fait. Mais je pense qu'en fonction du budget alloué et du projet lui-même on est dans l'une ou l'autre de ces catégories.

  14. #14
    Membre du Club
    Bonjour,

    Je vois une 6eme catégorie dans tout çà: Le mauvais bidouilleur.

    On ne peux pas l'appeler développeur, il n'a aucune des connaissances théoriques et logiques nécessaires à un développeur, aucun respect de ce qui se fait, de comment il faut le faire etc. etc.
    Et pourtant, c'est un développeur...

    Comme en plus il tourne en rond dans ses bidouilles, il ne s'améliore pas, donc, 2 ou 3 ans plus tard, il est toujours au même niveau de compétence.

    Et on vous dis: "c'est un développeur, il est débutant, mais c'est un développeur", et vous, vous demandez bêtement: "Il est là depuis combien de temps?" et on vous réponds: "2 ou 3 ans"...

  15. #15
    Expert éminent
    Citation Envoyé par Makav3li Voir le message
    C'est quoi la différence entre le premier et le quatrième ?
    A mon vis, le premier fait des choses robuste techniquement.

    Le 4eme n'hésitera pas a mettre des var globale, a foutre un echo dans une vue en dur ou a placer le code au plus simple meme si c'est un choix couteux en temps et en ressource.
    Mon profil linked in

    Chez Adaptive, nous cherchons un dev python / Cloud sur Toulouse sud.
    Produit fun et belle refonte du code.

  16. #16
    Rédacteur

    Citation Envoyé par cyreel Voir le message
    Je suis d'accord avec le classement qu'il fait. Mais je pense qu'en fonction du budget alloué et du projet lui-même on est dans l'une ou l'autre de ces catégories.
    En même temps, un perfectionniste reste perfectionniste, quel que soit le budget ou le temps alloué.

    La plupart des perfectionnistes appliquent souvent ce principe:
    Always code as if the person who ends up maintaining your code is a violent psychopath who knows were you live.
    Les perfectionnistes sont d'éternels frustrés, qui finissent par en avoir rapidement marre des pratiques de leurs collègues.
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  17. #17
    Membre éprouvé
    pourquoi 5 ? pourquoi 3 ou 7 catégories ? bref , c'est une opinion , pas une analyse. Je classe les développeurs en 2 catégories. Ceux qui font gagner de l'argent à leur boite et ceux qui bloguent sur le classement des développeurs en 5 catégories.

  18. #18
    Rédacteur

    Bonsoir,

    Cet article étant assez intéressant, pourquoi ne pas poster un avis de plus ?

    J'avoue qu'assez fréquemment, quand je ne diffuse pas mes sources, je me range dans la 1° catégorie en dégénéralisant une classe avec de divers checks spécifiques à l'intérieur pour fixer telle ou telle chose (un crash par exemple ?) dont la source réelle ne m'intéresse pas. On a beau dire "c'est pas bien d'écrire du code avec des hacks", tant que c'est fonctionnel, que la quantité reste honnête et que le client ne les voit pas, tout va bien. Ainsi, pour moi, les termes "solutions rapides et robustes, mais pas vraiment élégantes" sous-entendent la présence de hacks. Coder rapidement et efficacement ne doit bien sûr en aucun cas permettre à un codeur de se libérer des règles classiquement imposées (coding rules, etc.).

    Par contre, quand on développe en diffusant ses sources, on a tout de suite plutôt intérêt à faire du code propre pour que les gens qui contribuent ne se perdent pas et constatent que la chose est "bien faite", même si cela engendre une perte de temps au niveau du développement : au moins, c'est clean et ce n'est pas la peine de repasser derrière pour corriger un crash/mauvais comportement quelconque. Coder dans les formes de l'art, c'est long, mais ça apporte un certain mérite.

    En conclusion, je pense pouvoir dire qu'il vaut mieux (quand on en a l'occasion) mettre de côté toute "flemme" et coder du mieux possible car le rendu est de meilleure qualité. Bien sûr, il ne faut pas pour autant viser la perfection de la perfection et faire perdre quelques milliers d'euros à son entreprise pour autant, d'où l'intérêt du codage "avec hacks".

    Tout est une question de point de vue et de possibilités, je pense.

    Bonne continuation,
    Amnell.
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

  19. #19
    Rédacteur

    Citation Envoyé par camus3 Voir le message
    Je classe les développeurs en 2 catégories. Ceux qui font gagner de l'argent à leur boite et ceux qui bloguent sur le classement des développeurs en 5 catégories.
    Cyniquement, s'il s'agit de classer les développeurs en 2 catégories, j'aurais plutôt dit : "ceux qui font *vraiment* gagner de l'argent à leur boite (*) et ceux qui lèchent le cul du patron pour obtenir une promotion". Mais bon...

    (*) par exemple en apportant une plus-value que personne d'autre ne peut apporter
    "On en a vu poser les armes avant de se tirer une balle dans le pied..."
    -- pydévelop

    Derniers articles:

    (SQL Server) Introduction à la gestion des droits
    (UML) Souplesse et modularité grâce aux Design Patterns
    (UML) Le Pattern Etat
    Autres articles...

  20. #20
    Membre éprouvé
    <Troll>
    Les dev open-source font partie uniquement de la 2 et 3 categorie
    </Troll>
    Citation Envoyé par Killing Joke Voir le message
    1984 : Big Brother is watching you.
    2011 : Big Brother is hosting you.

###raw>template_hook.ano_emploi###