A place to cache linked articles (think custom and personal wayback machine)
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

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>