Développeur : junior, confirmé, expert ? Quelle importance ?

Commentaires · 258 Vues

Le champs d’action d’un développeur est généralement très vaste. Qualifier les compétences est essentiel pour que chacun trouve sa place.

De la nécessité de qualifier les compétences

Mettre un développeur junior dans un projet nécessitant des choix stratégiques et une expérience importante vous amènera à d’inévitables erreurs.

Un développeur expérimenté connaîtra, par expérience, les domaines les plus risqués et les pistes les plus incertaines.

La documentation technique officielle est généralement idéalisée. Et, même si les sites comme Stack Overflow sont d’une aide véritable sur des problèmes rencontrés par les développeurs, ils portent généralement sur des cas précis.

A contrario, mettez en place une équipe exclusivement composée de développeurs experts sur une seule technologie et vous risquez de ne pas avancer. Les égos s’en mêlent, et ce n’est pas forcément toujours positif.

Une équipe hétérogène permet d’avoir un bon équilibre.

D’autant qu’un développeur expert dans un domaine de compétence précis peut être totalement novice dans un autre domaine. Ce qui amène à ouvrir son esprit à d’autres domaines périphériques.

Que ce soit dans l’intérêt des projets ou dans l’intérêt des développeurs eux-même, bien qualifier les compétences est essentiel.

La compétence d’un développeur est périssable

Si vous étiez expert en développement web il y a 5 ou 10 ans et que vous n’avez pas mis à jour vos connaissances, vous n’êtes plus expert du tout.

Le métier du développement a cette particularité de nécessité une remise en cause permanente des connaissances.

Les différentes versions des langages et outils changent régulièrement :

  • iOS / Android : une mise à jour majeure par an, une mise à jour mineure tous les 3-4 mois
  • Java : une version tous les 2–3 ans
  • Ruby : une version majeure tous les 2–3 ans, une version mineure chaque année
  • navigateurs web : plusieurs versions par an
  • Node.js : plusieurs version par an.

Dans mon cas, ce sont 5 à 10 heures par semaines qui sont consacrées à la veille technologique et à la formation.

Au-delà de la technique

La compétence technique est une partie du domaine de compétence d’un développeur. C’est la base.

Mais la compétence technique ne fait pas tout. Bien au contraire. Passé un certain seuil, cela peut avoir l’effet pervers de s’enfermer dans la technique en s’éloignant de la finalité du développement : produit ou autre.

Sauf si vous êtes dans un domaine purement technique (recherche, conception d’outils de développement ou autre), il est important d’avoir un champs de vision élargie pour mieux servir les intérêts de votre projet et/ou de votre entreprise.

Les niveaux de compétences les plus communs

Le champs des définitions est (malheureusement) large. Mais ce petit lexique peut vous aider.

Développeur junior (novice)

Le développeur junior est juste formé. Il n’a jamais vraiment réalisé de projets concrets.

Développeur confirmé (intermédiaire)

Un développeur confirmé a participé à plusieurs projets et est autonome dans son domaine de compétences.

Il est également capable de ne pas se limiter à un seul cadre d’usage d’une technologie en particulier.

Par exemple, dans le cas d’un développeur web, il est en mesure de concevoir des sites pour ordinateur de bureau, mais aussi des sites adaptatifs (pour écrans mobiles).

Dans le cas d’un développeur mobile, il a par exemple conçu des apps utilisant la géolocalisation mais aussi des apps utilisant les services web.

Un développeur confirmé peut s’adapter au cadre de travail dans lequel il se trouve.

On commence généralement à devenir confirmé à partir de 2 années d’expérience. Mais cette valeur est purement indicative. Tout dépend des compétences réelles. Et donc de l’expérience réelle.

Développeur senior

Un développeur senior est un développeur confirmé qui a su dépasser son champs de compétences initial.

Il a évidemment une très bonne connaissance technique et quelques années d’expérience. Généralement plus de 6–7 ans d’expérience.

Mais il est aussi en capacité de faire monter en compétence les autres développeurs, de gérer un projet, de rédiger de la documentation (ou des ouvrages), d’animer des conférences.

Un développeur senior va au-delà de la base de son métier. Ce qui représente un effort bien supérieur à la compétence technique.

Expert

Un développeur est généralement expert sur une technologie précise.

On peut être expert iOS, expert Java, expert sécurité ou autre. Il s’agit avant tout d’avoir une expérience et une implication qui justifient un niveau de développeur senior.

Mais il s’agit également d’avoir de belles références, d’être en permanence à jour sur les technologies (souvent en amont de leur disponibilité publique).

Il faut également avoir réalisé des projets concrets dans la plupart des champs d’action du domaine concerné. Par exemple, dans le domaine du mobile, avoir réalisé des projets avec les différentes technologies (géolocalisation, capteurs), avec les différents champs d’action (application, extensions, widgets), dans les différentes versions, avec différents niveaux d’API (bas niveau, haut niveau, très haut niveau) et différentes APIs (graphique, réseau, base de données).

Un expert est en général capable de capter les tendances et anticiper les évolutions technologiques. Sa capacité de prise de décision est un atout.

D’où l’importance d’avoir également une bonne capacité à transmettre cette information à ses pairs et à leur transmettre la compétence.

Un expert ne peut pas réaliser seul le travail d’une équipe. Par contre, il a une expérience et une vision élargie qui permettent de donner la bonne direction à un projet. Du moins, dans le domaine technologique en question.

CTO ( Chief Technology Officer )

Le CTO est généralement expert dans un domaine précis tout en ayant une compétence élargie des technologies connexes.

Il est en charge de constituer les équipes techniques, d’éprouver les technologies utilisées et peut potentiellement intervenir techniquement sur le projet.

En général, un CTO est 50 % du temps sur du développement et 50 % du temps avec la direction. Il est le “pont” entre les développeurs et la direction.

 
Commentaires
Speedy Bonzou 46 sem

super

 
 
Aboukadri Idrissa 1 y

Super