|
|
|
|
|
|
|
|
|
|
|
<!doctype html><!-- This is a valid HTML5 document. --> |
|
|
|
|
|
<!-- Screen readers, SEO, extensions and so on. --> |
|
|
|
|
|
<html lang="fr"> |
|
|
|
|
|
<!-- Has to be within the first 1024 bytes, hence before the <title> |
|
|
|
|
|
See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset --> |
|
|
|
|
|
<meta charset="utf-8"> |
|
|
|
|
|
<!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 --> |
|
|
|
|
|
<!-- The viewport meta is quite crowded and we are responsible for that. |
|
|
|
|
|
See: https://codepen.io/tigt/post/meta-viewport-for-2015 --> |
|
|
|
|
|
<meta name="viewport" content="width=device-width,initial-scale=1"> |
|
|
|
|
|
<!-- Required to make a valid HTML5 document. --> |
|
|
|
|
|
<title>Longueur du processus de recrutement (archive) — David Larlet</title> |
|
|
|
|
|
<meta name="description" content="Publication mise en cache pour en conserver une trace."> |
|
|
|
|
|
<!-- That good ol' feed, subscribe :). --> |
|
|
|
|
|
<link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/"> |
|
|
|
|
|
<!-- Generated from https://realfavicongenerator.net/ such a mess. --> |
|
|
|
|
|
<link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png"> |
|
|
|
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png"> |
|
|
|
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png"> |
|
|
|
|
|
<link rel="manifest" href="/static/david/icons2/site.webmanifest"> |
|
|
|
|
|
<link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c"> |
|
|
|
|
|
<link rel="shortcut icon" href="/static/david/icons2/favicon.ico"> |
|
|
|
|
|
<meta name="msapplication-TileColor" content="#f0f0ea"> |
|
|
|
|
|
<meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml"> |
|
|
|
|
|
<meta name="theme-color" content="#f0f0ea"> |
|
|
|
|
|
<!-- Documented, feel free to shoot an email. --> |
|
|
|
|
|
<link rel="stylesheet" href="/static/david/css/style_2021-01-20.css"> |
|
|
|
|
|
<!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. --> |
|
|
|
|
|
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> |
|
|
|
|
|
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> |
|
|
|
|
|
<link rel="preload" href="/static/david/css/fonts/triplicate_t4_poly_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: light), (prefers-color-scheme: no-preference)" crossorigin> |
|
|
|
|
|
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> |
|
|
|
|
|
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> |
|
|
|
|
|
<link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin> |
|
|
|
|
|
<script> |
|
|
|
|
|
function toggleTheme(themeName) { |
|
|
|
|
|
document.documentElement.classList.toggle( |
|
|
|
|
|
'forced-dark', |
|
|
|
|
|
themeName === 'dark' |
|
|
|
|
|
) |
|
|
|
|
|
document.documentElement.classList.toggle( |
|
|
|
|
|
'forced-light', |
|
|
|
|
|
themeName === 'light' |
|
|
|
|
|
) |
|
|
|
|
|
} |
|
|
|
|
|
const selectedTheme = localStorage.getItem('theme') |
|
|
|
|
|
if (selectedTheme !== 'undefined') { |
|
|
|
|
|
toggleTheme(selectedTheme) |
|
|
|
|
|
} |
|
|
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<meta name="robots" content="noindex, nofollow"> |
|
|
|
|
|
<meta content="origin-when-cross-origin" name="referrer"> |
|
|
|
|
|
<!-- Canonical URL for SEO purposes --> |
|
|
|
|
|
<link rel="canonical" href="https://n.survol.fr/n/longueur-du-processus-de-recrutement"> |
|
|
|
|
|
|
|
|
|
|
|
<body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick"> |
|
|
|
|
|
|
|
|
|
|
|
<article> |
|
|
|
|
|
<header> |
|
|
|
|
|
<h1>Longueur du processus de recrutement</h1> |
|
|
|
|
|
</header> |
|
|
|
|
|
<nav> |
|
|
|
|
|
<p class="center"> |
|
|
|
|
|
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> |
|
|
|
|
|
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> |
|
|
|
|
|
</svg> Accueil</a> • |
|
|
|
|
|
<a href="https://n.survol.fr/n/longueur-du-processus-de-recrutement" title="Lien vers le contenu original">Source originale</a> |
|
|
|
|
|
</p> |
|
|
|
|
|
</nav> |
|
|
|
|
|
<hr> |
|
|
|
|
|
<p>Le processus classique des entretiens de recrutement en informatique c’est : </p> |
|
|
|
|
|
|
|
|
|
|
|
<ol><li>Une prise de connaissance</li><li>Un entretien orienté technique</li><li>Un entretien orienté humain</li><li>Un entretien de confirmation</li></ol> |
|
|
|
|
|
|
|
|
|
|
|
<p>Suivant les entreprises, l’entretien humain vient avant ou après l’entretien technique. C’est d’ailleurs intéressant parce que ça en dit parfois long sur ce que la boite priorise dans ses recrutements.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Sur les postes à responsabilité on a souvent une multitudes de discussions avec différents acteurs clefs de la société entre les deux entretiens principaux et l’entretien de confirmation.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>La totalité du processus décrit ici c’est entre 3 et 6 heures au total.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p><hr class="wp-block-separator"><p>Ok, mais est-ce bien raisonnable tout ça ?</p></p> |
|
|
|
|
|
<p>Le fond c’est que <a href="https://n.survol.fr/n/se-reposer-sur-la-periode-dessai">le candidat et l’entreprise ont tout intérêt à s’assurer que la relation est bonne avant de se taper dans la main et d’entamer la période d’essai</a>. On n’est jamais certain à 100 % mais on ne peut pas non plus s’engager au hasard pour un boulot qui représentera la majorité de notre temps non contraint pour les prochaines années et qui impactera durablement notre vie en cas de mauvais choix.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Oui mais, en détail ?</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>La prise de connaissance c’est souvent 15 minutes pour confirmer ce qu’il y a derrière l’annonce (pour le candidat), ce qu’il y a derrière le CV (pour l’entreprise) et que les deux correspondent avant de demander à chacun d’investir du temps. Quand la communication passe bien et que le candidat a du temps ou des questions ça peut aller jusqu’à 45 minutes, rarement plus.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>L’entretien humain semble la partie la moins comprise autour de moi quand j’en discute. On me parle de test psy et de marketing bullshit. Pour moi c’est de la discussion et c’est littéralement le plus important dans tout le processus, que ce soit côté candidat ou côté employeur. Il s’agit de s’assurer que le candidat, la boite et les autres salariés vont s’entendre. Si le terme de valeurs est galvaudé, il y a beaucoup de ça. On parlera aussi fonctionnement de l’entreprise, évolution des postes, organisation, motivations, management, etc. <br>Sur cet partie j’apprécie un temps long parce qu’il s’agit d’ouvrir une discussion au delà des discours préparés. </p> |
|
|
|
|
|
|
|
|
|
|
|
<p>L’entretien technique c’est le plus litigieux pour moi. La plupart comprennent « test technique » mais je n’ai jamais vu pour l’instant de test technique que je trouve vraiment pertinent. On arrive souvent bien mieux à qualifier les choses en montrant le code source, en discutant autour, ou éventuellement en parlant en codant ensemble.<br>Plus que qualifier le niveau technique, on qualifie aussi que ça se passera bien sur la base de code, sur comment l’équipe travaille, etc. C’est de la discussion et donc ça prend du temps aussi.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>L’entretien de confirmation c’est pour toutes les questions qui restent. On reparle souvent de valeur. On discute des questions levées par les entretiens précédents. On parle de l’avenir et des objectifs de l’entreprise. On parle rémunération.<br>C’est entretien est aussi important en ce qu’il permet de faire intervenir une autre personne et d’avoir un feedback différent, que ce soit pour le recruteur ou pour le candidat.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Si on prend le temps de la discussion, on arrive plus à 5 heures qu’à 3 heures, et je ne vois rien d’inutile à faire sauter là dedans.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>À chaque étape la question est essentiellement « Est-ce qu’on veut travailler ensemble ? pourquoi ? qu’est-ce qui pourrait coincer ? ». À l’entretien technique on peut éventuellement ajouter « Où positionner le candidat par rapport aux salariés actuels au niveau compétences et rémunération ? ». Le reste c’est de la littérature.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p><hr class="wp-block-separator"><p>On peut par contre moduler. </p></p> |
|
|
|
|
|
<p>Je disais que je n’ai jamais vu de test technique vraiment pertinent, encore moins ceux à réaliser chez soi, mais j’ai à moitié menti. Il y a une chose qui a assez bien fonctionné : « Tiens, je te donne accès à notre code source et nos PR, tu peux fouiller comme tu veux et c’est à toi de nous dire si tu as les compétences et l’envie de travailler là dessus. Si oui on t’invite à la discussion technique et tu verras si tu veux travailler avec nous. ».</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Du coup l’entretien technique lui même est essentiellement « Passe une demie journée avec un développeur à discuter du code, de l’équipe, de son organisation, et faire du pair programming. Tu pourras nous confirmer ensuite si tu as bien envie de travailler avec nous. »</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>C’est plus long mais quand c’est possible ça me parait une approche plus saine et plus efficace que la démarche de test. Les retours des candidats ont tous été très positifs, plus que sur les autres processus que j’ai pu superviser. Vu que ça permet bien de cerner la personne on peut réduire d’autant les autres étapes et on arrive à garder une durée totale assez similaire.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Ça c’est ce que je préfère vis à vis de mes valeurs et mes fonctionnements. D’autres boites appuieront plus sur les compétences techniques. D’autres préféreront vous faire discuter avec les équipes produit ou un directeur. En fait tout ça est intéressant, ça en dit long aussi sur ce qui est jugé important par la société, donc ça permet au candidat de savoir lui aussi où il met les pieds.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p><hr class="wp-block-separator"><p>Est-ce encore trop ? </p></p> |
|
|
|
|
|
<p>Possible. Je n’ai pas de réponse universelle. Je ne donne que mes retours et mon expérience.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>L’idée c’est de proposer un processus « idéal » et ensuite de l’adapter autant que possible aux circonstances et aux personnes, par exemple pour qui habite loin, qui ne peut pas se libérer en journée, ou qui ne peut pas se permettre d’être vu dans les locaux avant que ce ne soit officiel. </p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Ce qui m’apparait certain c’est que je ne sais pas évaluer un employeur, son équipe, son organisation, ses valeurs et le poste qu’il propose en deux heures. J’ai vécu des environnements et directions toxiques. Croyez-moi si je dis que jamais ne ne conseillerai à quiconque de s’engager en CDI rapidement sans faire un vrai processus.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>C’est vrai aussi dans l’autre sens. En tant qu’employeur je ne sais pas faire évaluer l’adéquation d’un candidat sur des discussions de moins d’une heure ou après avoir vu une seule personne.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p><hr class="wp-block-separator"><p>Que faire alors pour qui ne peut ou ne veut investir plus de 2 heures ?</p></p> |
|
|
|
|
|
<p>Je ne sais pas. Je suis ouvert aux suggestions mais ma réponse pour l’instant est « je ne sais pas faire ».</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>On parle de s’engager pour 6 à 8 heures par jour, 5 jours par semaine, pour 2 à 10 ans. Tout ça ne se résume pas en quelques questions et « je fais mon job tu me payes, pas besoin d’ergoter ». </p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Ça serait très différent pour une mission courte ou un rôle de consultant (ou en tout cas ça l’a été pour moi vu que j’ai aussi ces expériences là).</p> |
|
|
|
|
|
|
|
|
|
|
|
<p><hr class="wp-block-separator"><p>Pour compléter :</p></p> |
|
|
|
|
|
<p>Aujourd’hui près de 60% des réponses est entre 3 ou 6 heures ou plus de 6 heures. </p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Et c’est là que ça devient intéressant. Quand on demande le processus idéal, les répondant n’excluent pas du tout les entretiens de 3 à 6 heures, au contraire. C’est même la réponse la plus mise en avant.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>Ce n’est représentatif que des gens qui ont répondu, mais je trouve ça intéressant quand même. Je ne semble pas être le seul à trouver important de qualifier la relation avant d’entrer en période d’essai.</p> |
|
|
|
|
|
|
|
|
|
|
|
<p>L’enjeu est pour moi beaucoup plus de ce qu’on met dans les différentes étapes du processus que de sa longueur effective (tant qu’on reste dans le raisonnable, on m’a parlé de tests techniques de 15 h à faire chez soi et ça… juste non). Je veux des discussions libres à double sens et pas des tests unilatéraux.</p> |
|
|
|
|
|
</article> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<hr> |
|
|
|
|
|
|
|
|
|
|
|
<footer> |
|
|
|
|
|
<p> |
|
|
|
|
|
<a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home"> |
|
|
|
|
|
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use> |
|
|
|
|
|
</svg> Accueil</a> • |
|
|
|
|
|
<a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2"> |
|
|
|
|
|
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use> |
|
|
|
|
|
</svg> RSS</a> • |
|
|
|
|
|
<a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie"> |
|
|
|
|
|
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use> |
|
|
|
|
|
</svg> Pro</a> • |
|
|
|
|
|
<a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail"> |
|
|
|
|
|
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use> |
|
|
|
|
|
</svg> Email</a> • |
|
|
|
|
|
<abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2"> |
|
|
|
|
|
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use> |
|
|
|
|
|
</svg> Légal</abbr> |
|
|
|
|
|
</p> |
|
|
|
|
|
<template id="theme-selector"> |
|
|
|
|
|
<form> |
|
|
|
|
|
<fieldset> |
|
|
|
|
|
<legend><svg class="icon icon-brightness-contrast"> |
|
|
|
|
|
<use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use> |
|
|
|
|
|
</svg> Thème</legend> |
|
|
|
|
|
<label> |
|
|
|
|
|
<input type="radio" value="auto" name="chosen-color-scheme" checked> Auto |
|
|
|
|
|
</label> |
|
|
|
|
|
<label> |
|
|
|
|
|
<input type="radio" value="dark" name="chosen-color-scheme"> Foncé |
|
|
|
|
|
</label> |
|
|
|
|
|
<label> |
|
|
|
|
|
<input type="radio" value="light" name="chosen-color-scheme"> Clair |
|
|
|
|
|
</label> |
|
|
|
|
|
</fieldset> |
|
|
|
|
|
</form> |
|
|
|
|
|
</template> |
|
|
|
|
|
</footer> |
|
|
|
|
|
<script> |
|
|
|
|
|
function loadThemeForm(templateName) { |
|
|
|
|
|
const themeSelectorTemplate = document.querySelector(templateName) |
|
|
|
|
|
const form = themeSelectorTemplate.content.firstElementChild |
|
|
|
|
|
themeSelectorTemplate.replaceWith(form) |
|
|
|
|
|
|
|
|
|
|
|
form.addEventListener('change', (e) => { |
|
|
|
|
|
const chosenColorScheme = e.target.value |
|
|
|
|
|
localStorage.setItem('theme', chosenColorScheme) |
|
|
|
|
|
toggleTheme(chosenColorScheme) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
const selectedTheme = localStorage.getItem('theme') |
|
|
|
|
|
if (selectedTheme && selectedTheme !== 'undefined') { |
|
|
|
|
|
form.querySelector(`[value="${selectedTheme}"]`).checked = true |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const prefersColorSchemeDark = '(prefers-color-scheme: dark)' |
|
|
|
|
|
window.addEventListener('load', () => { |
|
|
|
|
|
let hasDarkRules = false |
|
|
|
|
|
for (const styleSheet of Array.from(document.styleSheets)) { |
|
|
|
|
|
let mediaRules = [] |
|
|
|
|
|
for (const cssRule of styleSheet.cssRules) { |
|
|
|
|
|
if (cssRule.type !== CSSRule.MEDIA_RULE) { |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
// WARNING: Safari does not have/supports `conditionText`. |
|
|
|
|
|
if (cssRule.conditionText) { |
|
|
|
|
|
if (cssRule.conditionText !== prefersColorSchemeDark) { |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
if (cssRule.cssText.startsWith(prefersColorSchemeDark)) { |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
mediaRules = mediaRules.concat(Array.from(cssRule.cssRules)) |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// WARNING: do not try to insert a Rule to a styleSheet you are |
|
|
|
|
|
// currently iterating on, otherwise the browser will be stuck |
|
|
|
|
|
// in a infinite loop… |
|
|
|
|
|
for (const mediaRule of mediaRules) { |
|
|
|
|
|
styleSheet.insertRule(mediaRule.cssText) |
|
|
|
|
|
hasDarkRules = true |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
if (hasDarkRules) { |
|
|
|
|
|
loadThemeForm('#theme-selector') |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
</script> |
|
|
|
|
|
</body> |
|
|
|
|
|
</html> |