mardi 30 novembre 2010

Les sciences ou l'informatique, une histoire de l'évolution identique

Evolution des sciences
Avant d'entamer le cœur du sujet, il me faut parler de l'évolution des sciences.
J'ai en effet remarqué qu'il existe un corolaire entre l'évolution des sciences et l'évolution de l'informatique. 


En 1800 (il y a seulement 200 ans), Volta découvrit la pile voltaïque.
En étudiant cette extraordinaire découverte et en cherchant à expliquer pourquoi le passage de l'électricité dans un fil déviait une boussole, Faraday découvrit et formalisa les relations entre champ magnétique et courant électrique (l'induction électromagnétique).
Faraday avait même conçut le premier prototype scientifique du moteur électrique.

En 1864, Maxell unifia les différentes théories relatives au magnétisme qu'il formalisa dans les théories de l'électromagnétisme. A dater de ce jour, il existait des relations entre charge électrique, courant électrique, les aimants et les ondes électromagnétiques (lumières, onde radio).
Ces mêmes théories qui furent utilisées d'abord par Graham Bell qui inventa le téléphone et bien plus tard dans les tubes cathodiques des premières télévisions, dans les théories d'Einstein sur la relativité, ...
L'histoire pourrait se poursuivre ainsi jusqu'à nos jours.

Ce qu'il est important de retenir, c'est qu'il y a 200 ans (et un peu moins), il était possible à une seule personne d'aborder suffisamment de facettes des sciences (math, chimie, physique, biologie, optique, astronomie, etc) pour faire des découvertes majeures.
Ces découvertes ne nécessitaient pas d'énormes investissements financiers.
Les expériences ne nécessitaient pas une implication à temps plein.

En 2010, à peine plus de 200 ans plus tard, la moindre nouvelle découverte scientifique réclame un investissement de plusieurs millions d'Euro, la construction d'appareillage titanesque (le LHC fait 26 km de long), la mise en œuvre d'équipes entières (de quelques dizaines de personnes à quelques milliers de personnes).
Mais surtout, et ce qui est le plus marquant, c'est que le savoir à accumuler pour atteindre ces découvertes ne sait plus résider dans une seule tête.
Aujourd'hui, n'importe quelle science de base (ex: la physique) est devenue à ce point complexe qu'une seule personne n'est même plus capable d'en entrapercevoir tous les tenants et les aboutissants.
Quelle évolution!

Vulgariser les sciences
La vulgarisation scientifique se perd dans toute cette complexité des sciences.
Cela devient un exercice de plus en plus difficile et de moins en moins pratiqué.
Et si le monde scientifique s'en est peu préoccupé ces dernières décennies, certains scientifiques reviennent en force sur le devant de la scène pour vulgariser. C'est vital pour la survie de la science.


Nous utilisons tous des objets Hi-Tech (GSM, LCD, lecteur MP3) issus des découvertes scientifiques passées mais nous ne savons pas comment ils fonctionnent.
Si ce n'est pas forcément important au jour le jour, le manque de vulgarisation scientifique aura un impact négatif sur la recherche scientifique.
A terme, la population ne comprendra plus ce que les scientifiques font, ni pourquoi ils le font. La population n'entrevoira pas les débouchés que les travaux scientifiques nous offriront. Le GSM que nous utilisons tous les jours est un de ces résultats.
Dans un tel cas de figure, les scientifiques perdront l'estime du public, ils seront vus comme des "gens bizarres" qui coûtent beaucoup d'argent à la collectivité.
C'est pourtant cette même collectivité qui élit ses représentants et ces représentants qui votent les budgets (y compris ceux de la recherche scientifique).



Evolution de l'informatique
D'un point de vue de la gestion informatique et de la programmation, les technologies informatiques atteignent aujourd'hui les limites de l'humainement absorbable, surtout pour les développeurs.
Tout comme les sciences, l'informatique atteint une telle complexité qu'il n'est plus possible pour une seule personne de maîtriser tous les tenants et aboutissants d'une infrastructure informatique ou d'un développement logiciel.
Faire un bon logiciel d'envergure réclame des connaissances poussées dans de nombreux domaines techniques et langages de programmation.
Avec la généralisation des machines multi-processeurs, la programmation performante est devenue encore plus compliquée.

Rien que la mise en place d'une infrastructure de production (et sa maintenance) est un travail à temps plein réclamant un savoir étendu (matériel, système d'exploitation, réseau, télécom, administration, optimisation, sécurité, firewall, DNS, téléphonie, ...).
Dans le même ordre de grandeur, un développement Internet réclame de nombreuses compétences dans de nombreux domaines (base de données, les indispensables et multiples langages de programmation, html, styles, xml/xsl, plateforme de développement comme par exemple .Net, développements Asp, multi-threading et synchronisation, des frameworks, infographie, encryption, compression, etc).
L'informatique a atteint une telle complexité qu'il faut plusieurs personnes pour maitriser parfaitement l'ensemble des domaines nécessaires.

Certains logiciels sont même à ce point complexes qu'il faut des personnes spécialisées pour gérer la connaissance fonctionnelle du logiciel, le configurer ou le manipuler.

Il est bien loin le temps où une vraie passion pour l'informatique pouvait encore faire de vous un informaticien compétant. Notez la correspondance avec l'évolution des sciences.
Aujourd'hui, une nouvelle technologie telle que Dot.Net est logiquement découpée en nombreux domaines eux-mêmes décrits dans plusieurs publications (en milliers de pages). Difficile pour une seule personne de maitriser une telle étendue de savoir.

Les évolutions futures tels que le Cloud Computing (Windows Azure pour l'environnement Dot.Net) accentuera encore plus ce besoin de connaissances étendues.

Aujourd'hui, l'informaticien n'a pas d'autre choix que de se spécialiser.
Les chefs de projet et directeurs informatiques doivent devenir les vulgarisateurs de demain.

Vulgariser l'informatique en société
Comme dans le cas de la vulgarisation scientifique décrite ci-avant, il est important de vulgariser les techniques informatiques auprès des décideurs. 

Les patrons ont des objectifs financiers et s'organisent en fonction de ces objectifs.
Bien que l'informatique soit aujourd'hui une des pierres angulaires de l'organisation économique d'une société, peu de patrons disposent des connaissances minimum pour pouvoir apprécier justement l'impact de leurs décisions.
A défaut de comprendre les techniques et développements informatiques, il est normal que ces derniers fassent régulièrement de mauvais choix.
Par sa complexité et par son manque de communication, l'informatique, les développements informatiques et surtout ses informaticiens se sont eux-mêmes isolés des décideurs.
Faut-il rappeler le stéréotype des informaticiens?

Cette situation déplorable cause beaucoup de nombreux heurts de perception et de communication dans une société. Il faut aussi des vulgarisateurs en informatique.

La course informatique
A contrario, il faut reconnaître que les grands acteurs informatiques (concepteurs de système d'exploitation et matériels informatiques) organisent une course technologique.
Une marche effrénée est organisée pour habilement forcer le renouvellement des parcs informatiques (logiciel et matériel).
Si l'évolution semble certes nécessaire, ces dernières années j'ai souvent eu l'impression que ces acteurs provoquaient le besoin en promettant monts et merveilles.
Au final de cette évolution, des promesses non tenues et de nouveaux problèmes.
Les décideurs l'ont bien compris, la sortie d'un nouveau système d'exploitation mets maintenant plus de temps à être adopté par les sociétés. A contrario, cette réaction logique gêne quelques-fois l'adoption de techniques ou nouveautés, qui elles, seraient bien utiles.

Maintenir les connaissances à jour
Les technologies informatiques (et la programmation) sont en constante évolution. Comme décrit plus haut, il faut aujourd'hui envisager des spécialisations car l'étendue des connaissances à accumuler devient trop vaste.
Mais même dans un domaine particulier, il est nécessaire d'être attentif à l'évolution, au risque d'être dépassé assez rapidement.
Il y a 10 ans encore, lire quelques articles suffisait à accumuler le savoir nécessaire pour suivre l'évolution technologique.
Aujourd'hui, c'est des livres de 500 pages qu'il faut lire, ou pouvoir bénéficier de formations spécialisées.

Même si je suis convaincu qu'il existe nombre de sociétés avec une politique de formation correcte, je déplore malheureusement la politique de nombreux autres  employeurs dans ce domaine.  J'en parle en connaissance de cause.
Ils attendent que les informaticiens connaissent tout de leur domaine sans jamais devoir investir le moindre Euro pour maintenir cette connaissance à jour.
Il est attendu des informaticiens qu'ils se tiennent au courant par leurs propres moyens, avec leurs propres fonds et sur leur temps privé.
L'achat d'un magazine informatique (MSDN Magazine) peut faire l'objet d'âpres discussions. Convaincre l'employeur du bien fondé d'une formation est souvent un parcours du combattant. Et si le sujet est suffisamment pointu pour opter pour l'achat d'un livre spécialisé, il faudra convaincre l'employeur de l'acheter. Essuyer un refus si l'on demande du temps de travail pour le lire et étendre son savoir dans son domaine de compétence (véridique et dans un service de R&D).
J'ai même vu un employeur rester impassible devant un développeur demandant à mieux connaître les aspects du métier pour lequel il travaillait.

Il est important pour les employeurs de comprendre l'intérêt de garder quelqu'un de compétant dans ses services mais aussi de réaliser que c'est un investissement qu'il doit pouvoir faire.
Il est important pour les techniciens et développeurs informatiques de rester en formation constante afin d'offrir le meilleur service dans les meilleures conditions.

Aucun commentaire: