Réaction à « Qu’est-ce qui vous a le plus surpris lors de vos premiers pas en entreprise ? »

Flattr this!

Il y a quelques jours, l'article "Qu'est-ce qui vous a le plus surpris lors de vos premiers pas en entreprise ? Un développeur donne le top 5 des choses l'ayant stupéfait" était publié sur Developpez.com. Je trouvais ça intéressant, alors plutôt que de noyer ma réponse au milieu du flux interminable que peut générer ce site, je réponds ici. Les points sont dans l'ordre croissant de surprise.

Point 1 : L'interaction avec les personnes

À force de passer du temps devant son ordinateur à coder, on pense que la programmation est un travail solitaire. Pourtant, c’est étonnant le nombre d’interactions avec d’autres personnes en entreprise (réunion, conversation avec des bêta-testeurs, discussion avec des collègues, etc.).

Etre surpris par le fait qu'on va devoir discuter avec plus que son chef de projet, c'est être un idiot. A l'école, on vous a pré-mâché le boulot, les documents, quand il y a, spécifie déjà tout ce que veut le client, enfin dans la théorie. Sauf que ce client là n'a rien de réaliste, il va changer d'avis, dire que vous ne l'avez pas compris. Votre chef n'aimera pas le design que vous avez fait et confiera ça à quelqu'un d'autre. Avec qui vous serez obligés de négocier pour qu'il respecte quand même vos besoins techniques pour rendre fonctionnel votre application.

Vous ne devriez pas être surpris par ce point, c'est une évidence à laquelle on échappe à l'école mais dont on devrait se douter à la simple lecture des énoncés de projets d'école.

Point 2 : Le problème de l'écriture

Cela aide beaucoup d’être capable d’écrire clairement afin de passer un message. Dans une certaine mesure, la rédaction du code et l’écriture sont tout à fait semblables. Dans les deux cas, vous devez exprimer vos idées clairement et sans ambigüité, d’une manière structurée.

Etre surpris que faire du code, ça peut aussi provoquer l'angoisse de la page blanche. Sérieusement ? Vous êtes surs que vous avez fait une école d'informatique ? Ou alors vous n'avez pas codé pendant votre formation, ce qui n'est pas plus à votre avantage. L'angoisse de la page blanche n’apparaît pas d'un seul coup parce que vous n’êtes plus étudiant. Ma plus grosse surprise, c'est l'évocation même de cette possibilité en fait.

Certains me diront que c'est parce que tu peux avoir peur de mal faire les choses, de ne pas respecter les concepts internes, les bonnes pratiques ou encore de rater un élément du framework que tu ne connais pas encore. C'est ce qu'on appelle la période d'intégration. Il suffit de demander, on en revient donc au soucis d'interaction avec les personnes vu précédemment. Et c'était déjà le cas à l'école où au lieu de découvrir un framework petit pas par petit pas, tu faisais en cinquante lignes un traitement qui était mieux fait par une fonction native que tu ne connaissais pas encore. Pas de panique à avoir, pas de surprise là dedans.

Point 3 : Un logiciel n’est jamais terminé

« Avant mon premier travail, je pensais que lorsque vous avez développé une fonctionnalité, vous en avez fini » écrit Warne « Cependant, en réalité, très souvent vous revenez dessus. Peut-être parce que ce n’était pas exactement ce que le client voulait, il faut fixer un bug ou ajouter quelque chose de nouveau ».

Warne ajoute qu’il ne comprenait pas pourquoi les nouvelles fonctionnalités étaient presque toujours introduites dans un code existant. Ceci à cause du fait de toujours développer des programmes à partir de zéro à l’université, ce qui n’est presque jamais le cas en entreprise.

Là effectivement, peu d'écoles comprennent un, voire des, projet de maintenance. Là totalité des projets sont des créations. Aucun n'est soumis à une longue phase de maintenance où on débogue, re-débogue, re-re-débogue pour la énième fois la même fonction.

Si vous avez suivi une formation qui propose de reprendre un projet volontairement incomplet et bogué pour vous demander de corriger les bogues connus et d'en profiter pour greffer de nouvelles fonctionnalités, faites en la promotion. C'est la meilleure façon d'apprendre. Pour le coup, je suis assez content que l'AFTI avec son cursus ETGL, où j'ai terminé mes études, comprennent ce genre de projets. Ça m'a beaucoup appris.

Point 4 : Quelques algorithmes intelligents

Pendant le cycle universitaire, sont enseignés des structures de données et algorithmes intelligents, dont on s’attend à trouver dans les systèmes en entreprise. Cependant, ce sont des structures de données et des algorithmes assez basiques qui sont utilisés dans le monde du travail, d’après Warne.

Et oui, à part de très rares métiers spécialisés et souvent avec une attente de double cursus scientifique-informatique, vous n'appliquerez que rarement des trucs poussés que vous avez pu voir passer en cours.

J'ai beau avoir eu la chance de bosser dans l'aérospatiale, la 3D/PLM, la finance, les télécoms et maintenant dans le commerce B2B, peu de patterns me servent et se sont toujours les mêmes. MVC, injection de dépendances, singleton, pub/sub, voilà l'essentiel de mon quotidien. J'ai bien eu quelques formules mathématiques un peu spécial quand j'ai bossé dans les télécoms sur un projet de transformation de voix mais ça s’arrête là.

Je comprends qu'on soit surpris, mais c'est comme pour tout depuis votre entrée en maternelle. Peu de choses servent vraiment, sauf que le jour où vous en avez besoin pour la seule et unique fois de votre vie, vous ne regrettez pas de l'avoir su. Assez frustrant ceci dit.

Point 5 : La complexité de l’agrégation

Au vu des algorithmes et structures basiques utilisés dans les programmes, Warne pensait qu’il n’y aurait pas de nombreux défis à travailler sur le système. Ce qui était faux, car le système était extrêmement compliqué à cause du nombre important de fonctionnalités simples qui étaient regroupées ensemble. « La complexité d’un système provient de l'agrégation d'un grand nombre de pièces simples, pas de toutes les pièces complexes » conclut Warne.

Ici l'auteur du billet est tout à fait dans le vrai. La vraie complexité ne vient pas des quelques pièces complexes mais bien du très grand nombre de petites choses très simples. Tellement simples que parfois on est même tentés de les refaire par soi-même parce que pas exactement pareil ou parce que tellement nombreuses qu'on ne sait pas qu'elles existent déjà et donc on se retrouve avec x possibilités.

Là c'est vrai que c'est un défaut inhérent à l'aspect de toute formation. Aucune école ne pourra jamais proposer un projet qui a suffisamment vécu pour devenir un énorme spaghettis avec un max de fromage fondu pour lier le tout.

Flattr this!

A propos de Mathieu

Ingénieur développeur web dans la vente par correspondance B2B, adepte de nouvelles technologies et d'innovation. Vous pouvez aussi me retrouver sur Twitter @mathrobin
Cette entrée a été publiée dans Non classé. Vous pouvez la mettre en favoris avec ce permalien.
  • Xavier

    Bonjour à tous,

    Mathieu tu es trop dur, en tout premier lieu merci d’avoir relevé cet article qui m’a paru particulièrement intéressant car il touche du doigt une certaine réalité (même si cette réalité est relative par rapport au sentiment de la personne qui vit la situation dans un contexte particulier Suède il y a des années). J’aurai plutôt axé ma réflexion sur est-ce une généralité ? Est-ce valable en France ? Toi qui es tout jeune as-tu vécu ceci et tes copains ont-ils vécus cela en France ou à l’étranger ?

    Pourquoi me permets-je de te tutoyer Mathieu, je trouve que si tu te permets de traiter le rédacteur d’idiot, je dois pouvoir me permettre de dire que tes propos sont enfantins :) .

    • http://www.mathieurobin.com/ Mathieu

      Oui, en général je suis quelqu’un d’assez rigide. À tort ou à raison, à chacun de se faire son avis, je n’ai pas l’intention de changer, je suis comme ça. Effectivement, je n’ai pas fait le tour de la question, mais ce n’était pas mon idée. Ceci dit, tu poses les bonnes questions et lance un débat qui peut s’avérer très intéressant. Avant d’y répondre concernant mon vécu des choses, je réponds à ton dernier point. Oui tu peux te permettre de me tutoyer. Je me permets de le qualifier d’idiot parce que quelqu’un qui réfléchit plus loin que les 5 prochaines minutes auraient du voir ce pourquoi je le traite ainsi. A la lecture de tout énoncé de problème, on vous dit « le client veut ceci, le client veut celà, le designer souhaite aussi ceci et enfin vous devez respecter tel critère légal dans le stockage de telles données » (bon le dernier point est moins souvent évoqué). Certes, c’est une feuille de papier qui vous en informe mais cela transcrit une situation d’échange. Etre donc surpris qu’il puisse y avoir des interactions avec l’extérieur, c’est comme être surpris que lorsqu’on ouvre une porte, on peut circuler au travers.

      Est-ce une généralité ? Je ne pense pas, puisque je n’ai moi-même pas le même avis que lui et le billet de mon ami mageekguy me semble appuyer cette idée de spécificité individuelle.
      Est-ce valable en France, pareil, même question que sur la généralité. Peut-être a t’on une vision un peu différente des projets d’école à l’étranger, je leur souhaite de ne pas subir le même modèle aussi incomplet/incorrect et déplorable que le modèle des écoles françaises d’informatique. Comme je le disais, un simple projet basé sur le principe de maintenance d’une application existante et boguée est un bien meilleur enseignement que beaucoup d’autres possibilités, sauf qu’il est très rare d’en trouver en école, en tout cas en France. Après, je peux comprendre la difficulté de mettre ce genre de projets en place. Bien que la contribution à des projets open-source tels que les projets Mozilla seraient une chose certainement aussi éducative que bénéfique pour tout le monde.

      Je termine sur le fait que mes propos puissent etre enfantins, je comprends pourquoi tu dis ceci et le respecte, après tout, je n’ai que 26 ans et je vis encore mon entrée dans le monde du travail. Ce n’est pas ces 4 premières années de boulot plus 6 années d’école qui m’auront tout appris de l’entreprise 😉