Je me rend compte qu'il y a beaucoup de définition de développeur!
Certe, il n'est pas très bon de placer les gens dans des cases, Mais à mettre des gens dans des cases trop grandes nous avons à boire et à manger - des personnes non adaptés à la situation.
La bonne personne au bonne endroit.
Je vois plusieurs opposition émerger des réflexions :
- Produit(générique) VS Projet(spécifique)
- codeur VS fullstack
Produit VS Projet
1 - "Développeur Produit" Il code une plateforme générique pour répondre au besoin générique d'un métier. Il est concentré sur l'architecture logiciel et sur la réutilisation du code. "Il écrit et pense générique".
2 - "Développeur Projet", Il se concentre sur le fonctionnel & le spécifique du client, il écrit des plugin&formulaires dans sur des plateformes. dans un cas extrême il fait même plus de code mais de la customisation à la cliquette. "Il écrit et pense spécifique".
3 - "Développeur - Cousu main" C'est entre-deux, la plateforme est développé pour un seul usage. Mais qui demande dans certain cas des modules génériques pour factoriser l’effort.
"L'équipe doit savoir naviguer entre générique & spécifique".
Les deux premières catégories se retrouvent chez les Éditeurs de logiciel principalement. Mais il n'y pas nécessairement les deux activités.
Pour la 3ieme catégorie, c'est le créneau des SS2I et/ou des grands comptes.
Les gens dans les mauvaises cases !
"Développeur Projet" placé sur un poste "Développeur Produit" va produire du code peu structuré. Ne maitrise pas ou ignore toute les bonnes pratiques, mais il peut passer inaperçu suffisamment longtemps pour faire des dégâts..
"Développeur Produit" placé sur un poste "Développeur Projet" va se concentrer sur la réutilisation de son code sans que se soit justifié, ou valorisé, et donc être qualifié de moins efficace. Ou A l'inverse il va jouer le jeu de l'efficacité mais sa satisfaction personnel va en prendre un coup.
La catégorie "Développeur - Cousu main" n'existe pas vraiment, nous avons tous une tendance plus forte dans le générique(produit) ou le spécifique(projet). Les équipes sont normalement construite pour équilibrer les deux.
Chacun doit tirer la couverture pour amener le projet au bonne équilibre.
Codeur VS Fullstack
La notion de développeur spécialisé dans le code, ou développeur à "tout faire" va dépendre surtout de la taille du projet et de l'entreprise!
Argument du codeur :
1 - Le travail de conception & développement demande une construction mentale d'un riche environnement technico-fonctionnel. Et donc si je passe la journée au téléphone entre la prod&client&la compta&le livreur... je serai très peu productif dans mon cœur de métier. => La spécialisation permet d'optimiser les couts, en optimisant l'usage des compétences de chacun.
2 - Je me spécialise dans une discipline
3 - Le partage des tâches pousse à une traçabilité & documentation.
Limites: il est important développer les échanges entre service pour éviter d'être déconnecté & déresponsabilisé des réalités de chacun.
Argument du Fullstack:
1 - Je touche à tout, mon travail est varié.
2 - Efficacité & réactivité.
3 - Peu de friction dans l'organisation
4 - Moins couteux.
Limites : il est difficile à maitriser les bonne pratiques sur l'ensemble des problématiques sous peine de prendre du retard sur le projet.
Pour couper la poire en deux, certain pousse au DevOp qui met en place le "fullstack" non pas sur une personne mais au niveau de l'équipe. Mais c'est un autre sujet!
Dans quel case sentez-vous le plus à l'aise?
fullstack-produit fullstack-projet
codeur-produit codeur-projet
Je pense qu'il y a du bon à segmenter le marché du développeur sur d'autre critère que la technologie pour une meilleur lisibilité.
Partagez-vous cette segmentation du profil de développeur ?
Sentez-vous cette compréhension du métier par vos manageurs?
Partager