A place to cache linked articles (think custom and personal wayback machine)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 17KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. <!doctype html><!-- This is a valid HTML5 document. -->
  2. <!-- Screen readers, SEO, extensions and so on. -->
  3. <html lang="fr">
  4. <!-- Has to be within the first 1024 bytes, hence before the <title>
  5. See: https://www.w3.org/TR/2012/CR-html5-20121217/document-metadata.html#charset -->
  6. <meta charset="utf-8">
  7. <!-- Why no `X-UA-Compatible` meta: https://stackoverflow.com/a/6771584 -->
  8. <!-- The viewport meta is quite crowded and we are responsible for that.
  9. See: https://codepen.io/tigt/post/meta-viewport-for-2015 -->
  10. <meta name="viewport" content="width=device-width,initial-scale=1">
  11. <!-- Required to make a valid HTML5 document. -->
  12. <title>Longueur du processus de recrutement (archive) — David Larlet</title>
  13. <meta name="description" content="Publication mise en cache pour en conserver une trace.">
  14. <!-- That good ol' feed, subscribe :). -->
  15. <link rel="alternate" type="application/atom+xml" title="Feed" href="/david/log/">
  16. <!-- Generated from https://realfavicongenerator.net/ such a mess. -->
  17. <link rel="apple-touch-icon" sizes="180x180" href="/static/david/icons2/apple-touch-icon.png">
  18. <link rel="icon" type="image/png" sizes="32x32" href="/static/david/icons2/favicon-32x32.png">
  19. <link rel="icon" type="image/png" sizes="16x16" href="/static/david/icons2/favicon-16x16.png">
  20. <link rel="manifest" href="/static/david/icons2/site.webmanifest">
  21. <link rel="mask-icon" href="/static/david/icons2/safari-pinned-tab.svg" color="#07486c">
  22. <link rel="shortcut icon" href="/static/david/icons2/favicon.ico">
  23. <meta name="msapplication-TileColor" content="#f0f0ea">
  24. <meta name="msapplication-config" content="/static/david/icons2/browserconfig.xml">
  25. <meta name="theme-color" content="#f0f0ea">
  26. <!-- Documented, feel free to shoot an email. -->
  27. <link rel="stylesheet" href="/static/david/css/style_2021-01-20.css">
  28. <!-- See https://www.zachleat.com/web/comprehensive-webfonts/ for the trade-off. -->
  29. <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>
  30. <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>
  31. <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>
  32. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_regular.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  33. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_bold.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  34. <link rel="preload" href="/static/david/css/fonts/triplicate_t3_italic.woff2" as="font" type="font/woff2" media="(prefers-color-scheme: dark)" crossorigin>
  35. <script>
  36. function toggleTheme(themeName) {
  37. document.documentElement.classList.toggle(
  38. 'forced-dark',
  39. themeName === 'dark'
  40. )
  41. document.documentElement.classList.toggle(
  42. 'forced-light',
  43. themeName === 'light'
  44. )
  45. }
  46. const selectedTheme = localStorage.getItem('theme')
  47. if (selectedTheme !== 'undefined') {
  48. toggleTheme(selectedTheme)
  49. }
  50. </script>
  51. <meta name="robots" content="noindex, nofollow">
  52. <meta content="origin-when-cross-origin" name="referrer">
  53. <!-- Canonical URL for SEO purposes -->
  54. <link rel="canonical" href="https://n.survol.fr/n/longueur-du-processus-de-recrutement">
  55. <body class="remarkdown h1-underline h2-underline h3-underline em-underscore hr-center ul-star pre-tick">
  56. <article>
  57. <header>
  58. <h1>Longueur du processus de recrutement</h1>
  59. </header>
  60. <nav>
  61. <p class="center">
  62. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  63. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  64. </svg> Accueil</a> •
  65. <a href="https://n.survol.fr/n/longueur-du-processus-de-recrutement" title="Lien vers le contenu original">Source originale</a>
  66. </p>
  67. </nav>
  68. <hr>
  69. <p>Le proces­sus clas­sique des entre­tiens de recru­te­ment en infor­ma­tique c’est : </p>
  70. <ol><li>Une prise de connais­sance</li><li>Un entre­tien orienté tech­nique</li><li>Un entre­tien orienté humain</li><li>Un entre­tien de confir­ma­tion</li></ol>
  71. <p>Suivant les entre­prises, l’en­tre­tien humain vient avant ou après l’en­tre­tien tech­nique. C’est d’ailleurs inté­res­sant parce que ça en dit parfois long sur ce que la boite prio­rise dans ses recru­te­ments.</p>
  72. <p>Sur les postes à respon­sa­bi­lité on a souvent une multi­tudes de discus­sions avec diffé­rents acteurs clefs de la société entre les deux entre­tiens prin­ci­paux et l’en­tre­tien de confir­ma­tion.</p>
  73. <p>La tota­lité du proces­sus décrit ici c’est entre 3 et 6 heures au total.</p>
  74. <p><hr class="wp-block-separator"><p>Ok, mais est-ce bien raison­nable tout ça ?</p></p>
  75. <p>Le fond c’est que <a href="https://n.survol.fr/n/se-reposer-sur-la-periode-dessai">le candi­dat et l’en­tre­prise ont tout inté­rêt à s’as­su­rer que la rela­tion est bonne avant de se taper dans la main et d’en­ta­mer la période d’es­sai</a>. On n’est jamais certain à 100 % mais on ne peut pas non plus s’en­ga­ger au hasard pour un boulot qui repré­sen­tera la majo­rité de notre temps non contraint pour les prochaines années et qui impac­tera dura­ble­ment notre vie en cas de mauvais choix.</p>
  76. <p>Oui mais, en détail ?</p>
  77. <p>La prise de connais­sance c’est souvent 15 minutes pour confir­mer ce qu’il y a derrière l’an­nonce (pour le candi­dat), ce qu’il y a derrière le CV (pour l’en­tre­prise) et que les deux corres­pondent avant de deman­der à chacun d’in­ves­tir du temps. Quand la commu­ni­ca­tion passe bien et que le candi­dat a du temps ou des ques­tions ça peut aller jusqu’à 45 minutes, rare­ment plus.</p>
  78. <p>L’en­tre­tien humain semble la partie la moins comprise autour de moi quand j’en discute. On me parle de test psy et de marke­ting bull­shit. Pour moi c’est de la discus­sion et c’est litté­ra­le­ment le plus impor­tant dans tout le proces­sus, que ce soit côté candi­dat ou côté employeur. Il s’agit de s’as­su­rer que le candi­dat, la boite et les autres sala­riés vont s’en­tendre. Si le terme de valeurs est galvaudé, il y a beau­coup de ça. On parlera aussi fonc­tion­ne­ment de l’en­tre­prise, évolu­tion des postes, orga­ni­sa­tion, moti­va­tions, mana­ge­ment, etc. <br>Sur cet partie j’ap­pré­cie un temps long parce qu’il s’agit d’ou­vrir une discus­sion au delà des discours prépa­rés. </p>
  79. <p>L’en­tre­tien tech­nique c’est le plus liti­gieux pour moi. La plupart comprennent « test tech­nique » mais je n’ai jamais vu pour l’ins­tant de test tech­nique que je trouve vrai­ment perti­nent. On arrive souvent bien mieux à quali­fier les choses en montrant le code source, en discu­tant autour, ou éven­tuel­le­ment en parlant en codant ensemble.<br>Plus que quali­fier le niveau tech­nique, on quali­fie aussi que ça se passera bien sur la base de code, sur comment l’équipe travaille, etc. C’est de la discus­sion et donc ça prend du temps aussi.</p>
  80. <p>L’en­tre­tien de confir­ma­tion c’est pour toutes les ques­tions qui restent. On reparle souvent de valeur. On discute des ques­tions levées par les entre­tiens précé­dents. On parle de l’ave­nir et des objec­tifs de l’en­tre­prise. On parle rému­né­ra­tion.<br>C’est entre­tien est aussi impor­tant en ce qu’il permet de faire inter­ve­nir une autre personne et d’avoir un feed­back diffé­rent, que ce soit pour le recru­teur ou pour le candi­dat.</p>
  81. <p>Si on prend le temps de la discus­sion, on arrive plus à 5 heures qu’à 3 heures, et je ne vois rien d’inu­tile à faire sauter là dedans.</p>
  82. <p>À chaque étape la ques­tion est essen­tiel­le­ment « Est-ce qu’on veut travailler ensemble ? pourquoi ? qu’est-ce qui pour­rait coin­cer ? ». À l’en­tre­tien tech­nique on peut éven­tuel­le­ment ajou­ter « Où posi­tion­ner le candi­dat par rapport aux sala­riés actuels au niveau compé­tences et rému­né­ra­tion ? ». Le reste c’est de la litté­ra­ture.</p>
  83. <p><hr class="wp-block-separator"><p>On peut par contre modu­ler. </p></p>
  84. <p>Je disais que je n’ai jamais vu de test tech­nique vrai­ment perti­nent, encore moins ceux à réali­ser chez soi, mais j’ai à moitié menti. Il y a une chose qui a assez bien fonc­tionné : « 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’en­vie de travailler là dessus. Si oui on t’in­vite à la discus­sion tech­nique et tu verras si tu veux travailler avec nous. ».</p>
  85. <p>Du coup l’en­tre­tien tech­nique lui même est essen­tiel­le­ment « Passe une demie jour­née avec un déve­lop­peur à discu­ter du code, de l’équipe, de son orga­ni­sa­tion, et faire du pair program­ming. Tu pour­ras nous confir­mer ensuite si tu as bien envie de travailler avec nous. »</p>
  86. <p>C’est plus long mais quand c’est possible ça me parait une approche plus saine et plus effi­cace que la démarche de test. Les retours des candi­dats ont tous été très posi­tifs, plus que sur les autres proces­sus que j’ai pu super­vi­ser. Vu que ça permet bien de cerner la personne on peut réduire d’au­tant les autres étapes et on arrive à garder une durée totale assez simi­laire.</p>
  87. <p>Ça c’est ce que je préfère vis à vis de mes valeurs et mes fonc­tion­ne­ments. D’autres boites appuie­ront plus sur les compé­tences tech­niques. D’autres préfé­re­ront vous faire discu­ter avec les équipes produit ou un direc­teur. En fait tout ça est inté­res­sant, ça en dit long aussi sur ce qui est jugé impor­tant par la société, donc ça permet au candi­dat de savoir lui aussi où il met les pieds.</p>
  88. <p><hr class="wp-block-separator"><p>Est-ce encore trop ? </p></p>
  89. <p>Possible. Je n’ai pas de réponse univer­selle. Je ne donne que mes retours et mon expé­rience.</p>
  90. <p>L’idée c’est de propo­ser un proces­sus « idéal » et ensuite de l’adap­ter autant que possible aux circons­tances et aux personnes, par exemple pour qui habite loin, qui ne peut pas se libé­rer en jour­née, ou qui ne peut pas se permettre d’être vu dans les locaux avant que ce ne soit offi­ciel. </p>
  91. <p>Ce qui m’ap­pa­rait certain c’est que je ne sais pas évaluer un employeur, son équipe, son orga­ni­sa­tion, ses valeurs et le poste qu’il propose en deux heures. J’ai vécu des envi­ron­ne­ments et direc­tions toxiques. Croyez-moi si je dis que jamais ne ne conseille­rai à quiconque de s’en­ga­ger en CDI rapi­de­ment sans faire un vrai proces­sus.</p>
  92. <p>C’est vrai aussi dans l’autre sens. En tant qu’em­ployeur je ne sais pas faire évaluer l’adé­qua­tion d’un candi­dat sur des discus­sions de moins d’une heure ou après avoir vu une seule personne.</p>
  93. <p><hr class="wp-block-separator"><p>Que faire alors pour qui ne peut ou ne veut inves­tir plus de 2 heures ?</p></p>
  94. <p>Je ne sais pas. Je suis ouvert aux sugges­tions mais ma réponse pour l’ins­tant est « je ne sais pas faire ».</p>
  95. <p>On parle de s’en­ga­ger pour 6 à 8 heures par jour, 5 jours par semaine, pour 2 à 10 ans. Tout ça ne se résume pas en quelques ques­tions et « je fais mon job tu me payes, pas besoin d’er­go­ter ». </p>
  96. <p>Ça serait très diffé­rent pour une mission courte ou un rôle de consul­tant (ou en tout cas ça l’a été pour moi vu que j’ai aussi ces expé­riences là).</p>
  97. <p><hr class="wp-block-separator"><p>Pour complé­ter :</p></p>
  98. <p>Aujourd’­hui près de 60% des réponses est entre 3 ou 6 heures ou plus de 6 heures. </p>
  99. <p>Et c’est là que ça devient inté­res­sant. Quand on demande le proces­sus idéal, les répon­dant n’ex­cluent pas du tout les entre­tiens de 3 à 6 heures, au contraire. C’est même la réponse la plus mise en avant.</p>
  100. <p>Ce n’est repré­sen­ta­tif que des gens qui ont répondu, mais je trouve ça inté­res­sant quand même. Je ne semble pas être le seul à trou­ver impor­tant de quali­fier la rela­tion avant d’en­trer en période d’es­sai.</p>
  101. <p>L’enjeu est pour moi beau­coup plus de ce qu’on met dans les diffé­rentes étapes du proces­sus que de sa longueur effec­tive (tant qu’on reste dans le raison­nable, on m’a parlé de tests tech­niques de 15 h à faire chez soi et ça… juste non). Je veux des discus­sions libres à double sens et pas des tests unila­té­raux.</p>
  102. </article>
  103. <hr>
  104. <footer>
  105. <p>
  106. <a href="/david/" title="Aller à l’accueil"><svg class="icon icon-home">
  107. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-home"></use>
  108. </svg> Accueil</a> •
  109. <a href="/david/log/" title="Accès au flux RSS"><svg class="icon icon-rss2">
  110. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-rss2"></use>
  111. </svg> RSS</a> •
  112. <a href="http://larlet.com" title="Go to my English profile" data-instant><svg class="icon icon-user-tie">
  113. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-user-tie"></use>
  114. </svg> Pro</a> •
  115. <a href="mailto:david%40larlet.fr" title="Envoyer un courriel"><svg class="icon icon-mail">
  116. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-mail"></use>
  117. </svg> Email</a> •
  118. <abbr class="nowrap" title="Hébergeur : Alwaysdata, 62 rue Tiquetonne 75002 Paris, +33184162340"><svg class="icon icon-hammer2">
  119. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-hammer2"></use>
  120. </svg> Légal</abbr>
  121. </p>
  122. <template id="theme-selector">
  123. <form>
  124. <fieldset>
  125. <legend><svg class="icon icon-brightness-contrast">
  126. <use xlink:href="/static/david/icons2/symbol-defs.svg#icon-brightness-contrast"></use>
  127. </svg> Thème</legend>
  128. <label>
  129. <input type="radio" value="auto" name="chosen-color-scheme" checked> Auto
  130. </label>
  131. <label>
  132. <input type="radio" value="dark" name="chosen-color-scheme"> Foncé
  133. </label>
  134. <label>
  135. <input type="radio" value="light" name="chosen-color-scheme"> Clair
  136. </label>
  137. </fieldset>
  138. </form>
  139. </template>
  140. </footer>
  141. <script>
  142. function loadThemeForm(templateName) {
  143. const themeSelectorTemplate = document.querySelector(templateName)
  144. const form = themeSelectorTemplate.content.firstElementChild
  145. themeSelectorTemplate.replaceWith(form)
  146. form.addEventListener('change', (e) => {
  147. const chosenColorScheme = e.target.value
  148. localStorage.setItem('theme', chosenColorScheme)
  149. toggleTheme(chosenColorScheme)
  150. })
  151. const selectedTheme = localStorage.getItem('theme')
  152. if (selectedTheme && selectedTheme !== 'undefined') {
  153. form.querySelector(`[value="${selectedTheme}"]`).checked = true
  154. }
  155. }
  156. const prefersColorSchemeDark = '(prefers-color-scheme: dark)'
  157. window.addEventListener('load', () => {
  158. let hasDarkRules = false
  159. for (const styleSheet of Array.from(document.styleSheets)) {
  160. let mediaRules = []
  161. for (const cssRule of styleSheet.cssRules) {
  162. if (cssRule.type !== CSSRule.MEDIA_RULE) {
  163. continue
  164. }
  165. // WARNING: Safari does not have/supports `conditionText`.
  166. if (cssRule.conditionText) {
  167. if (cssRule.conditionText !== prefersColorSchemeDark) {
  168. continue
  169. }
  170. } else {
  171. if (cssRule.cssText.startsWith(prefersColorSchemeDark)) {
  172. continue
  173. }
  174. }
  175. mediaRules = mediaRules.concat(Array.from(cssRule.cssRules))
  176. }
  177. // WARNING: do not try to insert a Rule to a styleSheet you are
  178. // currently iterating on, otherwise the browser will be stuck
  179. // in a infinite loop…
  180. for (const mediaRule of mediaRules) {
  181. styleSheet.insertRule(mediaRule.cssText)
  182. hasDarkRules = true
  183. }
  184. }
  185. if (hasDarkRules) {
  186. loadThemeForm('#theme-selector')
  187. }
  188. })
  189. </script>
  190. </body>
  191. </html>