La Veille Technologique et le Génie Logiciel
Tous les informaticiens ont conscience de faire partie d’un monde en permanente évolution. C’est tellement évident que même les plus obtus et les moins à jour arrivent à le reconnaitre. Tous ne prennent pas la peine de trouver des excuses ; l’essentiel étant surtout de conserver sa petite bulle de confort. Je me demande si tout ça est encore possible aujourd’hui, ou pire, inévitable.
Au XVIème, Léonard de Vinci imaginait des machines volantes. En 1903, les frères Wright faisaient décoller (et voler un peu) le premier avion. Quelques 65 années plus tard, l’Homme marchait sur la Lune. Ce matin, j’apprends en lisant un article sur Futura-Sciences qu’on aurait retrouvé les protons manquants de l’univers. Formidable.
Et bien pour moi, l’ingénierie logicielle, c’est un peu pareil.
La vitesse d’évolution des techniques et la multiplication des outils dans ce domaine atteignent des proportions vertigineuses et continuent de croitre de façon exponentielle. Cela pourrait même poser un problème à tous ceux qui veulent garder la tête hors de l’eau. On en arrive à se demander si dans quelques années, la veille technologie sera encore possible à l’échelle de l’individu sans que d’importants compromis soient faits.
Si vous êtes informaticien, vous manipulez des concepts, vous appliquez des méthodes (normalement) et vous utilisez des technologies. Vos chances d’être un bon informaticien sont directement proportionnelles à votre degré de maitrise de ces concepts, de ces méthodes et de ces technologies. Les concepts, et plus globalement les fondements théoriques de l’informatique sont peut-être les moins volatiles. On retrouve la plupart du temps les mêmes paradigmes et principes. Ils sont mixés, déclinés, adaptés, étiquetés à grand coups de buzzwords, mais au final l’OOP n’est pas remise en cause tous les deux jours et la SoC restera probablement une valeur sûre longtemps. En ce qui concerne les méthodes, ça bouge déjà un peu plus. On constate que celles qui semblaient inamovibles doivent parfois laisser place à d’autres plus pragmatiques, et qu’on ne cesse jamais de les catégoriser, de les formaliser ou de les raffiner. Tout dépendra de votre rôle, et de l’importance que les méthodes revêtent pour vous, mais il y a de grandes chances pour qu’un effort raisonnable et quelques bonnes expériences vous permettent de rester efficace et à jour.
Non, ce qui commence à devenir ingérable, c’est l’évolution des technologies au sein du Génie Logiciel.
Il y a les plateformes, les langages, les frameworks dont certains nécessiteraient qu’on y use une vie avant de les maitriser ; mais aussi les outils, les standards, les différentes implémentations, les systèmes, Facebook, Groovy, Spec#, le mot clé yield et les itérateurs, l’iPhone, F# et j’en passe et des (vraiment) meilleurs.
Tout cela bouge tellement, qu’on peut presque parler de mutations technologiques.
Je reste dans le contexte de l’ingénierie logicielle, et je ne suis même pas sûr de prendre l’exemple le plus alarmant. S’il me semblait il y a quelque temps qu’on pouvait encore prétendre à l’entendement même très superficiel des différentes technologies de développement, je crois qu’il s’agit aujourd’hui d’une époque en passe d’être révolue.
Je constate deux choses :
- La veille technologique est déjà un investissement monstrueux, qui demande une constance irréprochable et énormément de temps.
- La spécialisation large ne permet plus de garantir une expertise. Si je prends mon exemple, même en ayant fait le choix de me concentrer sur .NET, il m’est impossible de maitriser tout ce qui y est lié.
Par conséquent, il me semble important de penser sa propre évolution, et de faire des choix intelligents quant à la façon de mener son activité de veille technologique. S’il était possible de s’éparpiller sans conséquence et d’essayer chaque nouveauté sans gaspiller un temps précieux, nous serions tous des geeks heureux. Aujourd’hui, selon les contraintes de chacun, c’est difficile ou carrément inenvisageable. Pourtant, la curiosité est un atout et la culture générale technologique une force pour n’importe quel informaticien. Laissons le précepte du YAGNI aux adeptes de la refactorbation, car il n’est pas applicable à la veille technologique. Je me vois mal étudier uniquement ce qui me sert.
Pour ma part, les conséquences sont les suivantes :
- Je ne peux investir sans crainte que sur ce qui change le moins et qui reste indépendant des technologies : théorie, concepts, architecture, design, méthodes. Les fondamentaux, plus ou moins.
- Je me spécialise, et consacre la majeure partie de mon temps dédié à renforcer cette spécialisation. La difficulté réside dans la délimitation du bon périmètre. Une spécialité trop large ne vous rendra pas assez crédible, une autre trop pointue peut vous rendre aussi précieux qu’inutile…
- Je ne deviens pas autiste et garde le reste du temps pour étudier ce qui sort du cadre de ma spécialité. Garder un œil ouvert, etc.
- J’utilise un lecteur de flux RSS. Vous aussi ? Non ? Vous craignez Ca craint.
Tout cela ne me dispense pas d’avoir à trier les nouveautés, mais j’ai une formule magique. Lorsque je découvre quelque chose, je décide de m’y pencher sérieusement uniquement si ça m’intéresse et que c’est prometteur. C’est aussi simple qu’efficace.
J’ai peur de me sentir visé sur certains points. Il est vrai que je me spécialise pas trop, que ma curiosité me fait gambadé l’esprit à droite et à gauche…
Mais il y a une variable très peu compressible: le temps.
Je manque cruellement de temps. Je me souviens encore de l’époque ou je faisais, lors de mon temps personnel, des tests J2EE, Eclipse RCP ou encore OpenGL.
J’ai eu aussi des tentatives de coding GTK/Linux.
Si j’observe donc la réalité: je n’ai finalement pas assez de temps pour tout faire et je me spécialise sans le vouloir.
Après, comme tu dis, les concepts fondamentaux ne changent pas tous les quatre matins. Et appliquer l’AOP ou l’ORM avec un framework ou un autre, ça revient sensiblement à la même chose et on s’adapte vite à l’outil.
Tu as parfaitement raison à propos des concepts fondamentaux : ils aident évidemment à passer d’un langage à un autre, d’un outil à un autre, d’un framework à l’autre. Mais ça prend quand même du temps. C’est probablement pour ça que l’on ne peut pas vraiment maitriser tout à la fois.
Pour le reste t’as pas à te sentir visé :) Au contraire t’as une culture informatique large, et si tu m’as bien lu j’explique qu’à mon sens c’est un super atout.
J’exprime juste mon sentiment vis à vis de ça dans le post : je me demande, plus le temps passe, s’il sera vraiment possible de conserver un spectre de connaissances aussi large alors que par ailleurs, pour réussir à se vendre, il faut revendiquer une certaine expertise dans un domaine.
Totalement d’accord avec le verdict, on ne peu plus aujourd’hui tout maitriser dans le génie logiciel (l’a t’ont jamais pu ?).
Le tout est ici de faire la part des choses entre la culture générale et la spécialisation.
S’il est normal (nécessaire) dans notre travail de rester informé de ce qui ce passe dans des domaines (parfois) éloignés de ce que l’on est amené à réaliser professionnellement, il faut savoir ce limiter à seulement les aborder (savoir que cela existe) et ne pas toujours vouloir concrètement les comprendre et/ou les appliquer (en (tout cas tant qu’on en a pas concrètement besoin).
J’ai moi même passer les 5 premières années de ma vie de Développeur à m’éparpiller sur des 10enes de langages ou de concepts différents, un peu parce que l’on me le demandait mais aussi (et surtout) parce que ça m’intéressait (Geek Inside).
Et bien au final, je ne maitrise pour ainsi dire rien du tout, donc a quoi bon…
Surtout que comme l’a dit Romain, pour réussir à ce vendre, la polyvalence peu aider, mais les meilleures places (celles qui payent quoi) demandent de l’expertise.
Conclusion j’essaie maintenant de me consacrer à un domaine (.Net) et je me permet d’aller en survoler d’autres quand ça me chatouille un peu trop. Pour me tenir informer.
(@Grozeille: je crois savoir que tu arrives à un age avancé cette année :p, tu vas commencer à sacrément perdre des neurones et tu verras la curiosité en prend un coups avec l’age ^^)
Snif, merci de me le rappeler…
Comme je l’ai dit, je finis par me spécialiser sans le vouloir à force de passer du temps sur les mêmes choses. Mais c’est vrai que plus le temps passe, et plus je serai confronté à des gens spécialisés.
Faut que je trouve ma voie…. faut que je trouve un truc qui m’intéresse vraiment et que je m’y mette à fond.