Je discutais récemment avec un développeur que je viens d’embaucher, et je lui expliquais entre autres pourquoi il est important de maintenir une veille active. La conversation avait commencé quand je lui ai donné plusieurs magazines à lire (en l’occurrence des Linux Format et PHP Architect), pour l’aider à se plonger dans la « culture informatique » dans laquelle il allait travailler. Cela l’a laissé un peu perplexe au début, mais il a fini par reconnaître mes arguments.
Par le terme de « veille », on pense habituellement à la veille technologique ; c’est le fait de se tenir au courant des nouveautés concernant une technique ou un champ de technologies. La plupart des informaticiens sont férus d’informatique (oui, ça paraît évident), et se tiennent au courant des dernières informations. Dans certains cas, ce sera les news concernant le monde du logiciel libre, ou celles de tout ce qui gravite autour d’un langage de programmation ou d’une plate-forme particulière ; éventuellement, on trouvera des gens qui suivent avec précision les évolutions des processeurs ou les sorties des jeux vidéos. Bref, on voit de tout.
Mais une des choses qui font la différence entre un ingénieur qui fera évoluer sa carrière, et un autre qui stagnera au même niveau, c’est entre autres l’implication personnelle qu’il met dans son travail. Ce qui veut dire aussi qu’il faut prendre du temps pour mettre à jour nos connaissances et élargir nos compétences sans arrêt.
Le mauvais exemple
Je connais des développeurs qui considèrent qu’ils possèdent le savoir nécessaire et suffisant pour faire leur travail. Leur instruction et leur expérience leur permettent de résoudre la plupart des tâches habituelles, et quand ils sont face à un problème, ils cherchent un peu sur Internet et ça suffit bien souvent.
Mais au bout de quelques années, ils ne comprennent pas pourquoi ils sont toujours de « simples » développeurs, alors que leurs anciens camarades de promotion sont devenus chefs de projet ou responsable de développement. Pourtant, c’est assez facile à comprendre.
À chaque fois qu’ils doivent développer un programme qui fait un travail différent de tout ce qu’ils ont fait jusque-là, ils passent d’abord 2 jours à chercher des informations sur la technique en question, et sur les librairies existantes qui pourraient être utilisées pour cela. Dans certains cas, ils se retrouvent même à mettre en place des solutions complètement bancales ; soit parce qu’ils manquent de temps pendant leurs recherches, soit parce qu’ils ne savent même pas vraiment dans quelle direction chercher.
Et il est facile d’imaginer que si ce manque de connaissance implique des pertes de temps au quotidien, cela est encore pire pour tout ce qui concerne les notions qui sont nécessaires à l’évolution de leur carrière. Un développeur qui ne consacre pas de temps à enrichir ses connaissances en développement, c’est un ingénieur qui s’intéresse encore moins à tout ce qui touche la gestion de projet et l’encadrement d’équipes. Alors on ne peut pas s’étonner de voir que leur carrière ne progresse pas.
Le bon exemple
Même si cela ne suffit pas pour devenir un bon ingénieur informaticien, la recherche de connaissances doit être un moteur important dans votre vie.
Je vois deux aspects qu’il faut savoir développer et enrichir :
- Les connaissances techniques
- Approfondissez l’environnement technique dans lequel vous évoluez au quotidien. Il peut s’agir du système d’exploitation (quel qu’il soit, il y a toujours des choses à apprendre pour être plus efficace), des langages de programmation (approfondir certaines notions, apprendre à utiliser des librairies ou des frameworks), des bases de données (optimiser des requêtes, c’est des années d’expérience), …
- Intéressez-vous à des univers techniques totalement étrangers à vos besoins actuels. Cela peut être l’apprentissage d’un nouveau langage de programmation, de nouvelles techniques (le P2P si vous êtes habitué au client-serveur, le Web si vous faites du client lourd), de nouvelles plates-formes (développement embarqué, sur téléphone mobile), …
- Les connaissances entrepreneuriales
- Identifiez les notions qui vous sont nécessaires dès maintenant. Savez-vous gérer efficacement une liste de tâches, ou faire un planning pour toute votre équipe ? Avez-vous l’habitude de rédiger des spécifications techniques ? Des spécifications fonctionnelles ? Êtes-vous capable de participer aux recrutements de votre entreprise ?
- Considérez les aspects qui vous semblent carrément obscurs. Apprenez à faire un business plan. Intéressez-vous à la bourse et aux stock-options. Apprenez à lire un bilan comptable.
Bon, c’est bien joli, mais à quoi cela peut bien servir ?
- Avoir des connaissances théoriques sur les systèmes d’exploitation, les réseaux ou la compilation peut vous sembler inutile. Jusqu’au jour où votre projet nécessitera d’étudier des trames réseau ou de comprendre pourquoi un module kernel ne veut pas se compiler. Si vous attendez ce jour-là avant de vous poser la moindre question sur ces sujets, vous êtes certain de vous rater (quelqu’un d’autre réussira plus vite que vous, ou le projet prendra un retard inconsidéré).
- Votre carrière va évoluer avec le temps. Vous ne savez pas maintenant quelles sont les technologies que vous aurez à manipuler dans 3 ans (en tout cas, je ne vous le souhaite pas). Cherchez à ouvrir les portes plutôt qu’à vous les fermer. Étudier un nouveau domaine technique, c’est se forger une opportunité professionnelle supplémentaire.
- Chercher à améliorer votre compréhension des choses (techniques ou non) ne peut qu’améliorer la vision globale que vous avez de votre place dans votre entreprise. Et une meilleure vision, associée à de meilleures compétences, peut vous aider à grimper les échelons, à faire progresser votre carrière.
Mon expérience
Il existe une infinité de possibilités. Personnellement, voici ce que j’ai mis en place :
- Je suis abonné à un nombre assez conséquent de flux RSS. Je les regroupe par thème (technique, entreprise, présentation, …). Comme cela peut devenir assez chronophage, et qu’il faut limiter les interruptions pendant la journée, j’ai pris l’habitude de les consulter sur mon téléphone portable dans les transports.
- Je note chaque notion dont j’entends parler, et qui me semble intéressante ou dont je ne connais absolument rien. Quand j’ai un peu de temps de libre, je passe en revue cette liste et j’essaye d’avoir une rapide vision d’ensemble de la chose en question. Si le sujet semble vraiment intéressant, je le notre dans une seconde liste, pour l’approfondir sérieusement plus tard.
- Je discute régulièrement de toutes ces notions, avec mes collègues actuels et mes amis informaticiens. Parfois, ils s’y sont déjà intéressés, et me partagent alors leur connaissance. Inversement, le fait de leur expliquer certaines choses me force à mettre mes idées en ordre.
Une bonne idée : Essayez d’organiser dans votre entreprise des réunions mensuelles, durant lesquelles chaque personne va présenter à tour de rôle une technologie, une notion, un outil, une méthode, … Cela « coûtera » peu à chacun, mais apportera beaucoup à tous.
Bonjour.
J’ai envie de dire tout bêtement « ça tombe sous le sens ».
Mais le plus souvent on se voit rétorqué ce type de commentaires des principaux intéressés (ou plutôt devrais-je dire désintéressés):
– J’ai pas le temps je passe assez de temps devant un PC comme ça au boulot (sous-entendu je vais pas le faire en plus chez moi).
– Je vois pas ce que ça m’apporte de plus j’ai trouvé un composant qui fait ça trés bien (composant qui n’est plus disponible au prochain crash PC et donc empêche une MAJ du logiciel par recompilation car on n’a plus la trace…).
Il y a deux facteurs à mes yeux qui sont un freins à la veille technologique: la motivation et le temps. En général on se voit souvent dire que les programmes doivent être fait à l’arrache pour la veille, si possible avec manuel (souvent absent d’ailleurs, surtout pour le support technique qui doit -ensuite- aller à la pêche aux infos)… D’autre part le manque de temps ne pousse pas à chercher à évoluer vers autres choses, car pourquoi partir sur des activités (par définitions et de fait) chronophages, alors que je peux actuellement faire ce travail en peu de temps du fait de mes connaissances et ma maîtrise actuelle du langage utilisé.
On en revient alors à un point crucial: l’organisation et la mangement de l’équipe.
Effectivment la réunion mensuel permet de pallier en partie à ça car certaines personnes qui ont eu le temps peuvent aider celles qui n’en on pas eu…
Encore faut-il considérer le travail d’équipe.
Je suis d’accord au sujet de l’importance de la motivation et du temps. Mais quelque part… quand on est motivé, on trouve le temps ; presque sans s’en rendre compte.
Ceux qui doivent « trouver » le temps sont ceux qui ne sont pas naturellement passionnés par le sujet, et qui n’alimentent pas d’eux-même leur veille techno. Ils doivent alors se forcer, en se trouvant d’autres sources de motivation que l’intérêt technique direct. L’évolution de leur carrière devrait normalement être une motivation suffisante pour y arriver…
J’ai l’impression de me reconnaitre dans les explication de ce billet, dans le bonne exemple bien sur . Plusieurs passage anecdotique on retenu mon attention, la veille est chronophage ? je suis totalement d’accord avec ça, il faut être méthodique et organisé . et quand on voit le jour et l’heure à laquelle je poste ce com on comprend.
je cite : » Vous ne savez pas maintenant quelles sont les technologies que vous aurez à manipuler dans 3 ans (en tout cas, je ne vous le souhaite pas) » . J’avoue que c’est une des raison pour lesquelles j’aime l’informatique, il faut toujours se mettre a jour