Zen et egoless.
Le mauvais développeur, il a une machine et une application à développer, bah il code.
Le bon développeur, lui, il a une machine et une application à développer, bah il code. Mais c’est un bon développeur quoi.
Blague à part, les qualités qui font un bon développeur, c’est sa faculté à apprendre tous les jours, à savoir se remettre en question et capable d’apprendre des autres personnes de son équipe, y compris les plus juniors.
Quant à son code, il doit être propre, c’est-à-dire compréhensible, concis, testé.
Quelque part, un bon développeur ne doit pas être indispensable. S’il l’est, cela signifie qu’il possède certaines connaissances de l’application qu’il n’a pu su transmettre, ou bien que son code n’est compréhensible que par lui…
Je dirais que c’est aussi une personne qui fait en sorte d’être le plus agnostique possible par rapport aux langages. Il doit posséder de solides connaissances en algorithmie et être sensible aux designs patterns.
Comme cela a été noté plus haut, il doit être curieux de tout, être à l’affut des nouvelles pratiques afin d’en extraire le meilleur pour lui afin de progresser.
J’ajouterai qu’il doit être faignant. Pas dans le sens “pas motivé”, mais dans le sens où il va chercher à automatiser et à simplifier les outils/les procédures qu’il utilise/fabrique plutôt, par exemple, que de faire des trucs à la main parce que ça va plus vite (une fois peut-être, plus sans doute pas)
Je veux relancer un peu la question : peut-on être un bon développeur sans expérience ?
Je me rends compte qu’avec le cumul des années de pratique, mon code s’épure, s’organise et se perfectionne. Mes blocs de codes d’aujourd’hui n’ont rien à voir avec ceux d’il y a 2 ans. Pourtant à l’époque je me pensais bon.
Donc une part d’amour de ce qu’on fait… Finalement développer c’est comme être pompier ou instit’ : un sacerdoce ! Mais aussi une grosse part d’expérience, de partage et surtout d**'échange avec la communauté** et de veille technologique permanente !
J’ai mis ceci dans s’auto-évaluer, si ça vous dit
" egoless " me semble être une sorte d’utopie. Il me semble que ce qui nous pousse à adopter de meilleurs pratiques, et ce qui nous pousse du coup aussi à créer/participer à ce topic, c’est un peu pour être " meilleur ". L’ego est aussi un moteur.
Quelqu’un d’organisé, qui avance par étape. C’est tellement tentant de remettre tout le temps un développement en cause je trouve… :3
Il faut faire preuve aussi de veille, tout le temps (design patern, Framework, conf, technologies…) pour rester dans le mouv’.
Je pense que le bon développeur doit savoir quand il ne sait pas quelque chose et le reconnaître et essayer de se remettre en cause afin justement de savoir. Comme le disait @Rollover les développeurs (moi y compris hein :p) ont un ego assez gros. Et c’est en connaissant et maîtrisant nos faiblesses qu’on peut le satisfaire.
Attends, je n’ai pas dis précisément ça ; ça dépend de chacun je crois.
En fait ce qui me gène c’est davantage le terme " Egoless ". Ca me parait extrême et même dévalorisant : je sais pas pour vous, mais je suis fier d’être développeur. C’est créatif, stimulant, et demande de l’ingéniosité et de la méthodologie. Alors parler de mode de travail EgoLess, ça m’gène. A la rigueur, " HumilityMore " s’il faut mettre un nom ! ;)
Toutefois, je soutiens les valeurs de ce principe, contenu dans le lien de @amirouche ; je met d’ailleurs un article en français qui en parle :
Les 10 Commandements du Développeur qui fait preuve d’humilité ! :) (Developpez.com - FR)
Je pense ça dépend de qui pose la question si c’est un développeur alors celui qui utilise les patterns et organise son code et avoir un code de qualité etc … est le meilleur, si c’est un manager celui qui livre rapidement et termine les taches sans retard est le meilleur si c’est un utilisateur final c’est celui qui fais l’application la plus à la mode.
Un bon développeur c’est quelqu’un qui sait garder sa concentration qui à de la mémoire pour reconnaitre les situations et savoir quel outils qu’ils doit utiliser.
PS: [Humour] Y’a le mauvais développeur : y voit un truc qui compile pas : y push. Le bon développeur : Y voit un truc qui compile pas: y push…
Hello, pour ma part je pense que @amirouche a donné une partie importante de la réponse a cette question : egoless. J’avais redigé un court billet il y a quelques années pour défendre cette idée, je me permets de vous en proposer le lien plutôt que de me répéter ici : l’humilité, la première des bonnes pratiques.
Et j’ajouterai ceci : beaucoup d’entre-vous ont évoqué le code, sa qualité, sa lisibilité, etc. Bien sûr, produire un code élégant est une qualité chez un développeur. Mais il en est une nettement plus importante à mes yeux : sa capacité à produire des applications plutôt que du code, et pour y parvenir, de se mettre au service des utilisateurs, du “métier”, sans préjugé, sans perpétuellement pinailler sur la pertinence de ce qui leur est demandé, en gardant à lespeit que leur métier cest le développement precisement, pas le marketing, ni le commercial, etc.
Mais pour cela aussi, il se débarrasser de son ego, et accepter que ce n’est pas le code l’important, mais ce qu’il permet de faire aux utilisateurs !
G
Un bon développeur résout plus de problèmes qu’il n’en créer.
A mon avis, un bon développeur est celui qui peut mettre les bonnes méthodes dans les bonnes places et d’organiser son code pour n’est pas écrire deux codes identiques deux fois.
Un bon développeur, il voit une spec, il code alors qu’un mauvais développeur, il voit une spec, il code … mais bon, c’est un mauvais développeur.
Blague à part, selon moi, un bon développeur est quelqu’un de curieux, passionné, qui cherche constamment à s’améliorer et est moteur au sein d’une équipe et force de propositions.
Un(e) bon(ne) développeur(se) pour qui ?
- Pour ses collaborateurs : un(e) collègue qui livre un code à temps, documenté, en accord avec une spécification et qui est disponible pour le revoir;
- Pour l’équipe de maintenance: un nom qui livre un code léger et fiable;
- Pour l’utilisateur final : quelqu’un quelque part avec une vision de l’expérience d’utilisation;
- Pour les autres développeurs: un(e) développeur(se) avec une bonne connaissance de plusieurs codes et un sens de l’échange;
- Pour son banquier : un(e) client(e) qui facture beaucoup d’heures;
- Pour son(sa) partenaire : un(e) partenaire qui facture beaucoup d’heures et qui est néanmoins disponible.
- Pour lui(elle)-même: une personne qui aime développer, qui apprécie de voir ses créations lui échapper et évoluer, qui a un goût pour l’acquisition incessante de savoir et qui est à l’écoute de tous les acteurs précédemment cités.
Celui qui est super productif puis après qui revient sur la V1 pour améliorer.
S.O.E. : Ship Over Everything
Aimer ce qu’on fait, je pense que si l’on est développeur et que l’on ne prend pas de plaisir à faire ce que l’on fait, on est moins performant et l’on peut être rangé dans la case mauvais développeur. A mon sens, un bon développeur est une personne qui va prendre du plaisir à faire ce qu’il veut et toujours chercher à apprendre et s’informer de tout ce qui bouge dans le monde de l’informatique.