Au fil des ans , de nombreux articles ont été consacrés au développement et aux ingénieurs full stack . La conversation a principalement porté sur les activités de développement de logiciels ( ou plus précisément le développement Web ), et moins sur d ’ autres aspects . Les avis sur ce sujet sont extrêmement variés , prônant tour à tour la nécessité d ’ une spécialisation approfondie dans un ou deux domaines particuliers , ou au contraire la prise en charge de l ’ ensemble du processus de développement des produits et de ses résultats . Pour nous , la question s ' apparente un peu à celle de savoir s ' il est préférable d ’ être l ' expert d ' un seul domaine ou au contraire d ' avoir « un pied dans tous les métiers sans être expert d ’ aucun d ’ eux ». Il ne nous semble pas qu ’ un choix exclusif soit obligatoire . Votre approche doit plutôt dépendre du modèle d ’ exploitation que vous mettez en œuvre en tant que société .
Tout d ’ abord , examinons un peu les concepts et la terminologie . Historiquement , le personnel informatique s ' est organisé sous forme de responsabilités et de rôles fonctionnels . Il y a d ' abord eu le personnel de « front-end », chargé de l ’ interface utilisateur , celui du « back-end » développant le code lourd , et enfin les administrateurs de base de données traitant les contenus . Il y avait bien sûr d ' autres rôles encore au sein de l ’ organisation , mais tenons-nous-en à cet exemple simplifié pour l ’ instant . Les personnels de front-end , de back-end et de base de données accomplissaient tous leurs tâches en coordonnant leur action via leurs points de contact respectifs . Ils pouvaient être vraiment très bons dans leur job , mais leurs responsabilités ne s ' étendaient jamais au-delà de leur domaine . Cela a certes été acceptable pendant un certain temps , mais cela fini par créer , dans de nombreuses organisations , des problèmes de cloisonnement ralentissant aussi bien la diffusion de nouvelles fonctionnalités que les corrections de bugs .
D ’ où l ’ apparition du concept de développeur full stack . L ' idée était que si un développeur pouvait être bon à la fois en front-end et en back-end , il serait capable d ' éliminer efficacement les silos inhérents , rationaliser le processus de développement et produire des logiciels de qualité supérieure dans des délais restreints . Pour cela , un développeur full stack doit être suffisamment aguerri dans tous les aspects du développement logiciel et familiarisé avec l ' ensemble de la pile : interface utilisateur frontale , programmation , réseaux , bases de données , etc . Le fait de rendre un développeur responsable de l ’ ensemble de la pile contribue à prévenir les difficultés qui peuvent survenir lors des étapes de transfert mais , plus important encore , cela modifie le paradigme de responsabilité , dans la mesure où l ’ ensemble du produit incombe désormais au développeur . Comme on l ’ entendit dire souvent : « si tout le monde devient responsable , plus personne n ’ est responsable ». C ' est lorsque les choses tournent mal et qu ' un certain nombre de groupes est impliqué que les dénonciations commencent à voir le jour . Avec un développeur full stack , il n ' y a plus qu ’ un seul responsable à pointer du doigt .
La présence d ’ un développeur full stack , du reste , ne garantit pas que le code du produit sera forcément meilleur que le fruit du travail d ' une équipe de spécialistes , et il y a d ' ailleurs des chances que cela ne soit pas le cas . Quoi qu ' il en soit , les développeurs full stack , responsables de l ' ensemble de la pile , sont très certainement incités pour faire de leur mieux , puisque tout repose uniquement sur leurs épaules .
Le concept de développeur full stack implique une responsabilisation totale des résultats de bout en bout , la réduction des silos , l ’ élimination des points de friction , l ’ obtention plus rapide de la valeur et une boucle de retours d ' information plus courte . Mais , voyons voir ... N ' est-ce pas là ce que le DevOps , ou du moins quelque chose qui ressemble beaucoup au DevOps , s ’ efforce également d ’ accomplir ? Assurément , oui . Et c ’ est la raison pour laquelle on voit souvent des développeurs full stack travailler chez des éditeurs de logiciels progressistes et orientés DevOps qui privilégient la rapidité des cycles de diffusion et de mise sur le marché . Pour autant , cela ne signifie pas que ce modèle soit adapté à toutes les orga-
ÉTÉ 2018 | THE DOPPLER | 45