Sous ce titre complètement arbitraire et très clairement provocateur, je vais passer un contre pied aux derniers articles que j'ai lus sur le métier de développeur.
Par exemple :
http://patricelamarche.net/2011/05/24/lincomptence-des-dveloppeurs/
http://blogs.codes-sources.com/tja/archive/2011/10/04/etre-un-bon-d-veloppeur-c-est-aussi-une-question-d-attitude-personnelle.aspx
Ça tombe bien c'est juste avant la soirée du Paris JUG sur le métier de développeur ! Et comme on se plaint que les présentateurs ne sont pas de vrais (?) développeurs, je vais en profiter pour donner mon avis.
Alors voila, d'après ces articles, un bon développeur connait ses fondamentaux.
Ok soit mais quelle est cette liste de fondamentaux ?
Chez certains, c'est les maths et l'algorithmie pure, d'autres c'est C++ par coeur et savoir retourner une chaine de caractère en moins de 3 instructions et une seule allocation mémoire, d'autres c'est Java JEE, ses 100 jsr et frameworks indispensables, d'autres cela va être le langage qui est vraiment bien plus efficace que java (python, ruby, scala...), d'autres te demanderont si tu connais les patterns d'entreprise et le DDD enfin d'autres encore te demanderont si tu connais l'ensemble des protocoles réseau, bash et la liste des messages http quand tu te connectes à Google.fr.
Pour d'autres encore c'est tout ça !
Sérieusement ?
Alors je comprends, difficile de juger la personne sur sa réelle motivation, ses réelles capacités d’apprentissage et encore plus difficile en France de lui laisser une chance voire de comprendre ses talents qui peut-être apporteront une touche différente et utile (communication, design, psychologie ...) à une équipe :)
Il faut mieux sortir sa liste d'exercices et de QCM casse gueule c'est plus simple.
Donc la on sort le développeur BON et PASSIONNE : celui qui fait ses 40 heures de jsp/struts/jdbc/cvs et qui, le soir, parce que c'est un passionné, travaille sur son projet open source (non jamais commercial il risquerait de partir créer sa boite pour être libre et indépendant ;) ) et va à ces 10 User Group ou Dojos pour l'ensemble des technos auquel il doit s'auto-former.
J'ai une bonne et une mauvaise nouvelle pour nos recruteurs.
La bonne : il existe et il est réellement bon en développement (j'ai un gros respect pour ces personnes).
La mauvaise : il est rare.
Honnêtement j'adorerais en faire parti (d'ailleurs j'en fait presque parti) mais j'ai aussi le sport pour avoir une santé, des réunions sur le business pour étendre mes compétences, une copine qui me demande de passer du temps avec elle, des loisirs et des amis. Et j'assume le fait de dire que je n'ai pas le temps de me remettre à coder de façon sérieuse le soir ou le week-end.
Or entre le vrai bon développeur et le vrai développeur incompétent, il y a tout plein de développeurs qui aiment le développement, qui aiment construire des services, des écrans, des logiciels qui fonctionnent, qui sont testés, qui répondent aussi bien au besoin technique que celui de l'utilisateur. Ce sont des développeurs très souvent compétents. Mais ceux ci se retrouvent sur des projets où la qualité, la valeur et la technique n'arrivent qu'après les considérations politiques, stratégiques, de coût, de délai, de partenariat éditeurs, d'organisation de l'entreprise, etc ...
Ces développeurs en plus d'être souvent sous utilisés par rapport à leur motivation et leurs connaissances, n'ont bien sur aucun temps disponible pour se maintenir à niveau par rapport aux frais développeurs sortis de l'école ou encore à la main-d'oeuvre off-shore.
Moralité, le type qui a envie de se construire une carrière va vite comprendre que le meilleur moyen de s'en sortir c'est de partir sur le fonctionnel ou sur le management ou aller chercher la plaquette commerciale qui lui vend le mieux une prise en compte de sa carrière et du développement des compétences ce qui entraîne en partie l'état du turn-over, des projets et du management.
Alors avant de venir encore et toujours taper sur les développeurs, commençons par revoir comment nous considérons le logiciel, son développement, son management, son intégration dans la stratégie de l'entreprise !
Allez j'en profite pour donner une piste : Design de service
ou encore une autre : motivation
Edit : et encore une Change the environment, not the people
Par exemple :
http://patricelamarche.net/2011/05/24/lincomptence-des-dveloppeurs/
http://blogs.codes-sources.com/tja/archive/2011/10/04/etre-un-bon-d-veloppeur-c-est-aussi-une-question-d-attitude-personnelle.aspx
Ça tombe bien c'est juste avant la soirée du Paris JUG sur le métier de développeur ! Et comme on se plaint que les présentateurs ne sont pas de vrais (?) développeurs, je vais en profiter pour donner mon avis.
Alors voila, d'après ces articles, un bon développeur connait ses fondamentaux.
Ok soit mais quelle est cette liste de fondamentaux ?
Chez certains, c'est les maths et l'algorithmie pure, d'autres c'est C++ par coeur et savoir retourner une chaine de caractère en moins de 3 instructions et une seule allocation mémoire, d'autres c'est Java JEE, ses 100 jsr et frameworks indispensables, d'autres cela va être le langage qui est vraiment bien plus efficace que java (python, ruby, scala...), d'autres te demanderont si tu connais les patterns d'entreprise et le DDD enfin d'autres encore te demanderont si tu connais l'ensemble des protocoles réseau, bash et la liste des messages http quand tu te connectes à Google.fr.
Pour d'autres encore c'est tout ça !
Sérieusement ?
Alors je comprends, difficile de juger la personne sur sa réelle motivation, ses réelles capacités d’apprentissage et encore plus difficile en France de lui laisser une chance voire de comprendre ses talents qui peut-être apporteront une touche différente et utile (communication, design, psychologie ...) à une équipe :)
Il faut mieux sortir sa liste d'exercices et de QCM casse gueule c'est plus simple.
Donc la on sort le développeur BON et PASSIONNE : celui qui fait ses 40 heures de jsp/struts/jdbc/cvs et qui, le soir, parce que c'est un passionné, travaille sur son projet open source (non jamais commercial il risquerait de partir créer sa boite pour être libre et indépendant ;) ) et va à ces 10 User Group ou Dojos pour l'ensemble des technos auquel il doit s'auto-former.
J'ai une bonne et une mauvaise nouvelle pour nos recruteurs.
La bonne : il existe et il est réellement bon en développement (j'ai un gros respect pour ces personnes).
La mauvaise : il est rare.
Honnêtement j'adorerais en faire parti (d'ailleurs j'en fait presque parti) mais j'ai aussi le sport pour avoir une santé, des réunions sur le business pour étendre mes compétences, une copine qui me demande de passer du temps avec elle, des loisirs et des amis. Et j'assume le fait de dire que je n'ai pas le temps de me remettre à coder de façon sérieuse le soir ou le week-end.
Or entre le vrai bon développeur et le vrai développeur incompétent, il y a tout plein de développeurs qui aiment le développement, qui aiment construire des services, des écrans, des logiciels qui fonctionnent, qui sont testés, qui répondent aussi bien au besoin technique que celui de l'utilisateur. Ce sont des développeurs très souvent compétents. Mais ceux ci se retrouvent sur des projets où la qualité, la valeur et la technique n'arrivent qu'après les considérations politiques, stratégiques, de coût, de délai, de partenariat éditeurs, d'organisation de l'entreprise, etc ...
Ces développeurs en plus d'être souvent sous utilisés par rapport à leur motivation et leurs connaissances, n'ont bien sur aucun temps disponible pour se maintenir à niveau par rapport aux frais développeurs sortis de l'école ou encore à la main-d'oeuvre off-shore.
Moralité, le type qui a envie de se construire une carrière va vite comprendre que le meilleur moyen de s'en sortir c'est de partir sur le fonctionnel ou sur le management ou aller chercher la plaquette commerciale qui lui vend le mieux une prise en compte de sa carrière et du développement des compétences ce qui entraîne en partie l'état du turn-over, des projets et du management.
Alors avant de venir encore et toujours taper sur les développeurs, commençons par revoir comment nous considérons le logiciel, son développement, son management, son intégration dans la stratégie de l'entreprise !
Allez j'en profite pour donner une piste : Design de service
ou encore une autre : motivation
Edit : et encore une Change the environment, not the people
Commentaires