Avez-vous déjà travaillé avec un développeur qui se sert de méthodes frauduleuses ?
Partagez votre expérience

Le , par Stéphane le calme

0PARTAGES

17  0 
Y a-t-il de la place pour les raccourcis en informatique ? Certains semblent penser que oui et n’hésitent pas à employer des méthodes frauduleuses pour parvenir à leur but.

Un développeur, que nous appellerons Matthieu, a partagé une expérience vécue. Il y a quelques années, il est tombé sur un individu, qu’il a appelé Bryan pour les besoins de son histoire, et qui montrait de l’intérêt pour le développement web. Bryan, qui avait derrière lui 12 ans d’expérience en tant que gestionnaire de contrat, avait également participé à une formation accélérée en Ruby & Rails de 12 semaines. « Étant de nature un mentor et ayant toujours voulu partager mes connaissances, je l'ai pris sous mon aile et j’ai eu des sessions de travail avec lui au moins deux fois par semaine », a-t-il expliqué. Mais certains évènements vont lui faire tirer la sonnette d’alarme.

L’épisode GitHub

Matthieu suivait les progrès de Bryan sur GitHub, parcourant ses dépôts et lui faisant des suggestions sur la façon dont les choses pouvaient être améliorées. Toutefois, alors qu’il s’est rendu sur le compte de Bryan, il a vu cinq nouveaux dépôts GitHub pratiquement achevés. Chaque dépôt disposait de 2 à 3 commits assez volumineux, « c'est comme s’il avait copié une application et l'a mise sur GitHub en gros morceaux ». Lorsqu’il a posé des questions à Bryan au sujet de ces 5 applications qui sont apparues en une journée, ce dernier lui a rétorqué qu’il « travaillait sur 5 didacticiels différents et voulait remplir son dépôt en 24 heures ».

Matthieu lui a demandé clairement : « as-tu copié / collé le code d’une application ou as-tu tapé toi-même ces lignes de code pour en avoir une meilleure compréhension ? ». Ce à quoi il a répondu « c’est trop simple, donc j’ai copié / collé le code dans mes repos et j’ai fait des commits massifs. Cela va beaucoup plaire aux employeurs ! ».

Il essayait de décrocher un poste en tant que développeur junior et Mathieu lui a fait comprendre que « les employeurs cherchent à voir VOTRE code, pas un copié / collé de tutoriel qui viendra juste vous apporter un faux sentiment de crédibilité ».

L’entretien technique

Bryan a contacté Mathieu sur Slack pour lui demander son aide sur un problème à résoudre en Ruby. « C'était un problème fondamental que la plupart des employeurs vous posent pour voir comment vous vous débrouillez. J'ai fini par résoudre le problème et je lui ai expliqué comment », a avancé Mathieu. Une fois le résultat et l’explication en poche, Bryan a dit « Super ! Je vais rendre ça à la première heure demain matin ». Interloqué, Mathieu a répondu : « Attends une seconde ! Il s'agit d'un test de code pour un emploi et tu me l’as fait écrire pour toi ? » Bryan a répondu par l’affirmative et s’est rapidement déconnecté.

Pendant des jours Mathieu n’a pas eu de nouvelles de Bryan jusqu’à ce qu’il apprenne qu’il a passé l’entretien pour un poste de Junior Rails Developer dans une startup. Mathieu lui a quand même souhaité bonne chance.

Le travail sous-traité

Plus tard dans la même semaine, Mathieu a vu sur le compte GitHub de Bryan un nouveau dépôt appelé "capstone_test" : il s’agissait d’une application CMS à part entière qui n'était présente que depuis 18 heures. « Impossible qu’il ait pu la concevoir en 18 heures, sauf s’il a eu de l’aide. Je me base sur sa capacité à lire et à écrire du code », a-t-il expliqué. Étant son mentor, il a quand même fait quelques remarques qui pourraient servir à améliorer l’application.

Bryan l’a contacté sur Slack par la suite et l’a remercié pour ses suggestions. Mais Mathieu lui a tout de même demandé comment il est parvenu à développer un CMS si complexe en 18 heures seulement. Bryan lui a expliqué qu’il est passé par certaines plateformes, notamment AirPaid où il a payé 100 dollars de l’heure pour se faire aider à la conception.

La copie des dépôts

En parcourant ses dépôts, il s’est rendu compte que trois d’entre eux avaient chacun un clone unique qui se retrouvait sur les dépôts de Bryan : ce n’étaient pas des fork mais ils étaient présentés comme si Bryan avait écrit ces lignes de code. « Bien que mon code était open source et que je ne me souciais pas de qui l'utilisait, je voulais qu'il soit utilisé pour un bon objectif, pas pour faciliter la fraude ».

Bryan a obtenu l’emploi

LinkedIn lui a fait savoir que Bryan a changé son statut en mettant Ingénieur logiciel pour la compagnie X, alors Matthieu l’a félicité. Bryan a alors commencé à poser beaucoup plus de questions à Mathieu et semblait dépassé par la situation. « Je lui ai envoyé des liens utiles et lui ai demandé ce sur quoi il travaillait. Il travaillait sur un système de notification en temps réel pour son nouvel emploi et il a avoué ne pas savoir ce qu'il faisait. J'étais furieux. Il a obtenu un bon travail de développeur junior et il s’agissait fondamentalement d’une escroquerie. Ce qui m'a le plus choqué était le fait que son salaire était supérieur au mien de 20 000 dollars malgré le fait qu’il n’avait que 6 mois d'expérience académique et zéro d’expérience professionnelle ».

Mathieu s’est donc décidé à l’ignorer et à le laisser se débattre avec ses problèmes.

Bryan perd son emploi

Un jour, Bryan a demandé sur Stack si quelqu’un connaissait une entreprise qui embauchait. Etonné, Matthieu lui a demandé ce qui s’est passé avec son ancien travail de développeur. Bryan lui a expliqué que le travail ne lui convenait pas, alors il a décidé de passer à autre chose. Mais Matthieu ne l’entendait pas de cette oreille et a cherché à savoir réellement ce qui s’est passé.

L’une de ses sources lui a fait savoir que l’entreprise n’avait pas l’impression que Bryan est un vrai développeur et que ses solutions étaient des copies de solutions proposées sur Stack. Trois semaines lui ont alors été données pour lui permettre de se ressaisir. Mathieu a fait savoir à sa source que c'est lui qui a rédigé le test Ruby à sa place et qu’il s’est servi d’AirPair pour réussir le test capstone. Courroucée, sa source a aussitôt contacté le vice-président de l’ingénierie. Deux jours après, Bryan s’est fait renvoyer.

Source : ShakyCode

Et vous ?

Avez-vous déjà travaillé avec un développeur qui se sert de méthodes frauduleuses ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de Squisqui
En attente de confirmation mail https://www.developpez.com
Le 26/01/2017 à 21:57
Citation Envoyé par chrtophe Voir le message
Ben le soucis,c'est qu'il n'est pas digne de confiance. L'info finissant par tourner ça va lui poser de sacrés problèmes. Et même si l'info ne tourne pas, on finit toujours par se rendre compte à qui on a à faire.

Si tu es recruteur, trouves-tu normal qu'une personne ne reste jamais très longtemps dans une boite ? (mis à part les SSII)
Ne jamais sous-estimer la puissance incommensurable du pipeau !
Plus tu l'utilises, plus t'as de chance d'obtenir une promotion ou même de changer de métier en interne. Il devient alors difficile de montrer que le joueur de pipeau écrit (ou n'écrit pas) du code bidon si on ne lui demande plus d'écrire du code.
11  0 
Avatar de Aurelien.Regat-Barrel
Expert éminent sénior https://www.developpez.com
Le 26/01/2017 à 18:41
Je vois pas trop le souci dans cette histoire. Le mec est un super bluffer / baratineur, mais à force de se faire passer pour ce qu'il n'est pas, il y aura bien un moment où il se fatiguera de se placer dans des situations de stress du fait de son incompétence et de se faire licencier en quelques semaines max. D'autant plus qu'avec un profil sous LinkedIn, il va pas pouvoir accumuler énormément d'expériences de ce genre sans se faire griller pour toujours...

Il aurait juste dû choisir une carrière de commercial plutôt que de développeur !
8  0 
Avatar de Haseo86
Membre éclairé https://www.developpez.com
Le 26/01/2017 à 22:00
Un baratineur qui ne sait rien faire de correct, oui, j'ai eu le bonheur d'en avoir un comme chef d'équipe.
En plus de ça il était imbu de lui-même et agressif. Ce gars a envoyé en dépression la moitié de son équipe parce qu'il parvenait toujours à se donner le beau rôle auprès du patron, faisant passer tous les autres pour les "méchants" de l'histoire. Mon pire collègue de travail à ce jour, un arnaque complète mettant en péril toute l'entreprise.
8  0 
Avatar de psychadelic
Expert confirmé https://www.developpez.com
Le 28/01/2017 à 15:17
J'ai une histoire moi aussi...

Il y a des années de cela, à une époque ou on codait encore en assembleur IBM (~1984) je bossais comme presta mal payé dans une boite de service chez un grand assureur, je découvrais " le terrain".
J'ai détesté cette boite, les conditions de travail étaient dantesques; je vous fais grâce des détails.
Bref, dans cette espèce de panier de crabes, je trouve un autre codeur plus expérimenté qui me chaperonne un peu.
Au bout de quelques temps, il m'annonce qu'il va bientôt prendre sa retraite (il avait 46ans) parce qu'il en pouvait plus de cette boite de m**** et de ce métier à la c**.
Je lui dit: je comprends pas, t'a fait un héritage ?
-> en quelque sorte, tu comprendra plus tard, quand je ne serai plus ici.
Et on à tous compris, évidement, et ça à fait un petit séisme dans la boite: il s'était codé un système de perruque et amassé suffisamment pour vivre aux Bahamas (on à reçu une carte postale).

Pour ceux qui ne savent pas ce qu'est une perruque en code, c'est un système pour récupérer des centimes lors des calculs d'intérêts.
exemple: pour un taux de remboursement à 5,6 % sur un prêt total de X milliers de Francs (à l'époque) on se retrouve avec un chiffre à virgule pour les remboursements qu'on est obligé d'arrondir.
Lui arrondissait au centime inférieur d'un coté et au centime supérieur de l'autre, pour garder le centime de différence qu'il faisait virer sur son compte aux Bahamas.
Comme c'était une super grosse boite d'assurance, avec des millions de contrats à calculer chaque mois, au bout de quelques années cela représente un sacré magot.
Le problème de cette "méthode" c'est qu'en fin de contrat les centimes "disparus" finissent par manquer en comptabilité.
Il y avait déjà une enquête interne qui essayait d'y voir plus clair, et il est parti avant de se faire "prendre", Je connais pas le chiffre mais il s'est mis "pas mal de millions dans la poche".

PS: Aujourd'hui, les systèmes comptables sont bien plus affûtés; il y a des bilans comptables chaque semaine, et chaque centime d'écart est vite détecté.

[edit=orthographe]
8  0 
Avatar de gros_rougeot
Membre habitué https://www.developpez.com
Le 30/01/2017 à 14:41
Oui cela existe. J'ai le même collègue mais en bien plus balèse que Bryan puisque notre responsable ne l'a toujours pas démasqué après 2 ans.
Première technique : être capable de faire de belles phrases avec du vent. Plutôt que dire que le logiciel est merdique, dire qu'il est en constante amélioration et ainsi de suite. C'est exactement la même technique qu'utilisent nos hommes politiques.
Deuxième technique : à chaque occasion, mémoriser le vocabulaire technique "inhabituel", tous les noms propres des intervenants, et les anglicismes. Par exemple dire "canister" au lieu de "boite". Ca en met plein la vue et les interlocuteurs pensent qu'ils en savent moins puisqu'ils ne connaissaient pas le mot en question.
Troisième technique : la technique de Bryan qui consiste à copier-coller le travail des autres. Que cela soit du code, des mails ou des réponses techniques.
Quatrième technique : envoyer un mail pour demander à quelqu'un de répondre à sa place : "machin voudrait savoir ceci cela, quelqu'un peut répondre ?" ou "un expert peut répondre ?".
Cinquième : pas encore trouvée ...

C'est un art, qui pour atteindre ce niveau là, doit être pratiqué dès l'école primaire.
8  0 
Avatar de TiranusKBX
Expert confirmé https://www.developpez.com
Le 26/01/2017 à 21:58
J'ai connus un mec comme ça il à fait foirer un gros projet et revendus du code de la boite qui l'a embauché, il est actuellement en prison
7  0 
Avatar de Mrsky
Membre éprouvé https://www.developpez.com
Le 26/01/2017 à 22:07
Je n'ai jamais travaillé avec un Bryan mais j'ai une mini expérience récente en tant que Mathieu. Mon ancien coloc, développeur web nodejs php et ruby avec 7 ans d'XP (selon lui) fait des sites sous shopify (php) en extra de ses cours. Finissant son master il cherche un taf et se retrouve a devoir faire un test de compétence. Ce test consiste a récupérer des données d'une API fournie et de les afficher sous forme de tableau sur une page web en utilisant les technos PHP et jQuery. C'est un test ultra simple faisable même sans utiliser PHP du tout, mais l'employeur demande du PHP. Sachant que je suis dev PHP de métier, il me demande un coup de main car il veut vraiment rendre un bon travail.

Du coup on part sur du PHP from scratch avec un mini système de routes pour avoir des jolies URLs car même si c'est assez simple a coder ce n'est pas trivial, ça prend un peu de temps, et ça devrait le démarquer des autres candidats. Très vite je m’aperçois qu'il n'est vraiment pas bon, en tous cas par rapport a ce qu'il prétend être. Il me dit qu'il est rouillé en PHP car il ne fait que du CMS, je comprend bien que je vais devoir tout faire et j'essaye de lui expliquer du mieux que je peux mais je vois bien qu'il ne comprend pas tout. Bref du coup en 2-3h on a un système qui marche nickel en PHP et je lui dis qu'il devrait également proposer une version jQuery uniquement pour montrer au recruteur qu'il a suivi les instructions mais qu'il sait que c'est faisable en 15 minutes sans utiliser PHP.

Au final j'apprendrais qu'il n'a pas fourni de version simplifiée mais qu'il a juste explique dans son email que c’était faisable, et ce test le place favori dans la course pour ce job et qu'il n'a plus qu'a passer un test de personnalité/QI/jesaispasquoi. Il fait ce test en duo avec son frangin via skype sauf que c'est le genre de tests ou tu as 100 questions et 30 minutes pour y répondre donc le but c'est pas d'arriver au bout et être en communication avec qqun te ralenti fortement. Il échoue a ce test et son recruteur le contacte pour lui donner une seconde chance parce qu'il est dans les favoris pour le job, sauf que cette fois il doit passer le test dans les locaux de la boite. Je ne sais pas ce qu'il s'est passé la bas je sais juste qu'il n'a pas été embauché, et si il avait été embauché ça se serait probablement terminé comme dans cette histoire

Morale de l'histoire : c'est en forgeant qu'on devient forgeron.
7  0 
Avatar de chrtophe
Responsable Systèmes https://www.developpez.com
Le 27/01/2017 à 17:04
Le reproche qui peut lui être fait n'est pas de reprendre du code existant, code pas forcément libre en plus, ce qui dans ce cas exposerait l'employeur à des poursuites en violation de copyright ce qui lui ai reprochable, c'est de s'approprier un développement qui n'est pas de lui. Si on a passé 1h à adapter du code existant, et que l'on dit qu'on a passé 10h à développer le truc, ben ça vaut pas 10h de travail, c'est une escroquerie.

Au final, cette histoire me fait rappeler celle de "Bob" qui donnait son travail à un chinois et était considérer comme l'un des meilleurs employés de Verizon. Au final on ne leur reproche pas un mauvais boulot (bien au contraire), mais que leurs supérieurs se sentent un peu idiot, et c'est légitime, de ne pas avoir découvert le subterfuge plus tôt.
C'est un plus compliqué que cela : il est illégal de sous-traiter son travail si l'employeur n'est pas au courant (du moins en droit français). Pire, si le sous-traitant n'est pas déclaré, l'employeur du salarié sera poursuivi pour travail dissimulé.
6  0 
Avatar de Obsidian
Modérateur https://www.developpez.com
Le 28/01/2017 à 15:21
Une chose intéressante également : tout le monde a visiblement eu affaire une fois à ce genre d'individu mais, fort heureusement, cela reste relativement rare. De mon côté, j'en ai rencontré un seul. Une personne avec qui tout avait très bien commencé mais a malheureusement fini en clash, dû entre autres au fait qu'il ne s'entendait plus avec la compagnie elle-même. Il s'estimait à la tête de notre (petite équipe) mais venait souvent me demander conseil pour la résolution de problèmes divers, que je lui donnais bien volontiers… jusqu'à ce que je m'aperçoive un jour qu'il les faisait suivre dans la minute par mail à sa petite amie qui travaillait pour une autre structure.

En rapprochant ce cas avec la modération de Développez, je constate qu'on est actuellement dans les mêmes proportions : nous avons quelques cas de demandes à faire faire son travail, rapidement recadrées, la grande majorité des gens restant tout-à-fait sérieuse. Et encore, même dans la première catégorie, une bonne partie des demandeurs s'avère en fait avoir produit beaucoup de travail dès lors qu'on « tire sur la corde » pour en savoir un peu plus…
6  0 
Avatar de azias
Membre éclairé https://www.developpez.com
Le 06/02/2017 à 22:50
J'ai eu une stagiaire un peu "Bryan" il y a quelques années. Elle devait reprendre un code en java écrit par un ancien stagiaire et sur lequel j'avais déjà fait une première passe pour le faire fonctionner et comprendre ce qu'il faisait (un code incompréhensible et non documenté bien entendu), et elle devait ajouter des fonctionnalités dont on avait besoin.

Bref, à l'écouter il n'y avait pas problème, elle avait bien compris ce qu'elle avait à faire et avait une idée de comment le faire. Mais à chaque fois que je jetais un œil à ce qu'elle faisait elle prétendait toujours un problème avec Eclipse qui faisait que ça ne fonctionnait pas (je précise qu'elle partait d'un workspace déjà configuré et qui fonctionnait). À chaque fois on était obligé de lui remettre l'environnement en état de fonctionnement. Et quand elle posait des questions de code c'était assez déstabilisant, on voyait qu'elle ne connaissait rien à java mais prétendais toujours connaître.

Le premier bout de code écrit pas elle était tellement hallucinant que j'ai pris une photo de l'écran! Elle m'avait mis une classe à l'intérieure d'une méthode "main", avec une autre méthode "main" dans la classe en question. Et elle ne comprenait pas pourquoi ça ne marchait pas.

Bref, nous on avait besoin que ça fonctionne et au fur et à mesure c'est moi qui est tout fait en plus de mon boulot.

Le pompon de l'histoire c'est que quand elle a dû présenter son travail dans une réunion interne, elle avait entre-temps réussi à faire en sorte que ça ne fonctionne plus! Le résultat c'est que sa soutenance de stage a été annulée et je ne pense pas qu'elle ait eu son diplôme.

Au delà de ça, dans mon boulot actuel on propose des challenges au candidats, pas des exercices simples, mais des problèmes (généralement auxquels on est confronté nous-même concrètement) et, à part pour vérifier qu'il semble propre, le code nous intéresse relativement peu, c'est surtout la possibilité de voir comment il a abordé le problème, les solutions auxquelles il a pensé... et s'il s'est amusé à faire le challenge.
6  0 
Contacter le responsable de la rubrique Accueil

Partenaire : Hébergement Web