“De toute façon, le développement des interfaces, je laisse ça aux jeunes. Ils aiment bien cela. Moi, je gère les logiques métiers.”. Cette phrase entendue lors d’un cours de Cobol il y a presque 20 ans était prémonitoire. La scission est désormais bien réelle. Le développement informatique s’est scindé en deux branches : la boutique et l’arrière boutique.
Ce n’est pas le terme exact mais je trouve l’image correcte. Prenons le cas d’une boulangerie. Vous entrez et devant une vitrine s’étalent sandwichs et viennoiseries. A côté de la boulangère, différentes variétés de pains sont présentées dans des casiers. Le comptoir est situé avant la porte de sortie. Vous êtes devant le Front-End de l’application ‘Boulangerie’.
Bien sûr, il faut alimenter l’étal en pains et en gâteaux. Vous pouvez apercevoir au fond de la boutique le four et une partie de la cuisine où sont préparés vos petits plaisirs. Vous imaginez la salle plus grande devant le choix important de mignardises face à une clientèle continue. Toute cette préparation se passe dans le Back-End.
L’application ‘Boulangerie’ comporte donc deux activités très différentes : l’une commerciale, l’autre manufacturière. Les employés en front et en back ne font pas le même métier. Il en est de même pour les développeurs informatiques.
D’un côté, nous avons les développeurs back. Ils implémentent les logiques métiers et développent les mécanismes qui renverront les données à afficher. Tel des ‘grease monkeys’, leur travail est souvent ignoré car invisible aux yeux des utilisateurs. Pourtant, sans leur travail les informations (baguette, éclair au chocolat, …) n’arriveraient pas dans la vitrine de la boutique.
De l’autre côté, nous avons les développeurs front. Leur travail est de développer les interfaces des applications que vous utilisez. Si les informations sont bien présentées et à portée de vos yeux, c’est grâce à eux. On peut penser qu’il est simple de définir un écran et pourtant le détail compte.
Souvent les backs critiquent les fronts. En effet, dessiner un écran est à la portée d’un enfant de 4 ans. Certes les technologies sont plus complexes qu’un jeu de Duplo, mais tout développeur back connaît les bases des outils des développeurs front. HTML, CSS et Javascript pour les sites Internet sont des technologies faciles à comprendre.
Il existe cependant une grande différence entre comprendre et maîtriser. Et connaître quelques ‘verbes’ dans les trois technologies citées ne permet pas de créer des interfaces adaptées au public ‘non-informaticien’. Au-delà des langages, il s’agit de comprendre le besoin final. Placer des produits dans une vitrine ne rend pas cette dernière attractive. Des stratégies existent pour atteindre cet objectif.
De l’autre côté, les artistes ont tendance à penser que les développeurs dans l’arrière salle sont des primates qui complexifient un besoin simple. Mais c’est ignorer les problèmes de logistiques. Les données proviennent de sources différentes. L’ordre de traitement est nécessaire avant de transmettre une information complète et valide. Avant de sortir du four, le pain était de la pâte préparée et mise en forme par le boulanger.
Les développeurs back et front évoluent bien dans un domaine informatique. Leurs objectifs et leurs outils sont cependant bien différents. La logique de mise en forme pour l’utilisateur final est assez récente dans l’histoire de l’informatique. C’est pour cela que les fronts sont moins nombreux que les backs. L’éventail des technologies disponibles est donc plus réduit et plus efficace.
Cette histoire de développeurs backs et fronts, cela fait sourire le soldat Full Stack. En plus d’occuper ces deux postes de dev, il doit aussi gérer les activités ops.