L’entrée de l’informatique dans les foyers au début des années 80 est une révolution pour les anciens développeurs. Imaginez les années d’étude et le travail fourni pour être ringardisé par les générations suivantes, qui sans avoir à fournir le 100ème de leur effort produisent des programmes aussi complexes et efficaces.
Ce schéma s’est répété au cours de chaque décennie qui a suivi. Les outils s’améliorant sans cesse, il était plus simple d’obtenir le même résultat. Passer d’un éditeur ‘caractère’ à un éditeur ‘graphique’. Voir des portions entières de code intégrées dans des instructions magiques. Demander à une IA d’écrire des routines à sa place, …
Les anciens traumatisés par un apprentissage difficile peuvent en vouloir à ces jeunes qui ont tout, sans effort. C’est ainsi que beaucoup pensent et refusent de laisser de l’espace aux nouveaux entrants. Une telle jalousie n’est pas sans conséquence.
Bloquer l’accès aux propositions nouvelles n’aide pas à l’adaptation des outils informatiques. Cela creuse la dette technique. Les architectures évoluent. L’accès à l’information aussi. Mais au prétexte de maintenir l’existant, on se refuse à exploiter le matériel. Et les universitaires enseignent des technologies dépassées.
Les anciens jaloux ont leur raison. C’est une gabegie de ressources. Tant de mémoire et de calcul pour faire ce que l’on faisait avant simplement. Cette remarque serait entendable s’ils avaient été de brillants développeurs à l’époque. Mais, relire un vieux code est souvent effrayant.
Si on pouvait concevoir qu’une variable soit nommée A ou B lorsque l’espace mémoire disponible était de quelques Ko, à l’époque où on stocke des films en 4K sur des clés USB, la place n’est plus un enjeu. Au contraire, un code lisible assure une meilleure fiabilité, une meilleure compréhension du besoin initial et est facile à faire évoluer.
L’évolution du matériel ne s’est pas arrêtée à l’espace de stockage. La puissance de calcul permet d’envisager toutes les sophistications dans une interface. Cela n’interdit pas d’optimiser les algorithmes. Mais refuser un développement de peur de lenteur n’est pas un argument. Dans un code bien écrit, l’optimisation viendra par la suite.
Donner la plus grande des évolutions technologiques à quelqu’un ne le rendra pas plus intelligent. Peut-être saura-t-il l’utiliser correctement ? Peut-être pas ? Il y aura toujours dans le lot des gens qui sauront exploiter convenablement la technologie. Enfin, d’autres sauront l’améliorer ou l’adapter.
Il existe des anciens qui se sont toujours mis à la page. De par leur expérience, ils connaissent les limites des nouveaux outils et les exploitent au mieux. Mais parce qu’ils étaient de vrais technophiles, ils n’ont que trop rarement accédé aux postes de gestionnaires. “Les geeks, ils restent dans leur cave.”
Et c’est ainsi que l’on se retrouve avec des hiérarchies qui n’écoutent pas les propositions qui viennent des développeurs. Ils ont progressé grâce à la mise en pratique d’une méthode, c’est que la procédure est bonne. Alors utilisons-la ad nauseam. Et des technologies persistent pendant des décennies, comme le Cobol dans le secteur bancaire.
Le domaine informatique a de passionnant qu’il se renouvelle sans cesse et de manière très rapide. Pour le reste, ces comportements ont été décrits par nos ancêtres. Rien de nouveau sous le soleil. Les révolutions en marche aboutiront au même résultat.
Je trouve regrettable que les décisionnaires dans le domaine informatique aient souvent une compréhension faible voire nulle des technologies qu’ils choisissent. A croire que la dernière technologie à la mode résoudra tous les problèmes laissés par les outils précédemment choisis.
On ne devient pas capitaine de bateau sans savoir naviguer. Refuser de voir le changement et se penser en sécurité dans son bassin est une erreur. Les vrais marins se remettent en question. Les vrais informaticiens aussi, qu’ils soient nouveaux arrivants ou vieux loups de mer.