tl;dr

海外記事を読みます

エンジニアの導入・教育・指導について

各所で何度か話されているらしいプレゼンテーション。動画は RubyKaigi のもので、スライドは Golden Gate Ruby Conference のもの。

オンボーディング(Onboarding)ってのは組織やチームの外の人を定着させるプロセスのことで、タイトルではわかりやすく導入としたけど、以下はそのままオンボーディングで。

  • オンボーディングの目標。こんな人に育てたい。
    • 生産性が高いこと。
    • 自立していること。他の人に頼らなくても自分で仕事をこなせる。
    • 自信を持っていること。自信をそなえている人は生産性も高い。
      • これが一番大事。
  • オンボーディングによる恩恵の側面。
    • 個人。チームの一員となっている自覚と自信を持たせ、定着させる。人が辞めることのコストは非常に大きい。
    • 会社。組織が大きくなるにつれ生産性が下がる、とならずその逆を行くためにオンボーディングを行う。
      • チームの負債(Team debt)。技術的負債のように、オンボーディングを怠ることはのちのち大きな負債となる。
    • チーム。とくに小さなチームでは新たな人が入るたびにチーム自体が変わっていくので、オンボーディングのプロセスを確立しておくことでみなが同じ方向を向いていられるようにする。
    • ダイバーシティジェンダー・人種など)。組織はともすれば同じ文化、同じ価値観の人で凝り固まってしまう。オンボーディングによって、既存のそれとは異なるカテゴリに属する人も受け入れられる余地をつくる。
  • 導入の要素
    • 誰が。基本的に誰でもいいが、直近でオンボーディングを受けた人であれば相手の気持ちを想像しやすいのでよいだろう。
    • いつ。加入が決まったあとならいつでもだけれど、オンボーディングの終わりは自立したメンバーに育った時点。
    • どのように。やる気のあるメンターは導入期間中ずっと相手につきっきりでいよう、などと考えてしまいがちだがこれでは疲弊してしまう。よい方法として、新人が危険なところに触れないような遊び場を作って、そこで自由にさせる。メンターは必要なときに質問に答えられるようにしておく。
  • 行うこと、教えること
    • 技術的な知識。これは本でもネットでも教えられる分野なので、そう重要でもない。
    • 社内の知識、プロセス。これは重要。自立したメンバーの育成のために必要だが、明文化されていない知識も多い。
    • 自己啓発
  • 4週間のオンボーディングの例。
    • Week 1
      • 開発環境の構築。最後にこれを受けた人がやるとよい。
      • 小さな変更を出荷させる。テストの修正とか。
      • 学んだことなどについて、日誌を書く習慣をつける。
      • ソーシャルイベント。名前と顔を一致させ、質問しやすくする。
    • Week 2
      • 会社の歴史について学ぶ。誰がどんな理由で始めたのか、などなど。
      • チームの地図(顔、名前、どんな仕事をしているか)を知って、チームメンバーと話す。
      • コードに関する勉強と実習。[Code Labs]
      • 先輩エンジニアについてどんな風に仕事をしているか学ぶ。[Shadowing]
    • Week 3
      • この頃には自立しはじめているはず。
      • メンター・上司との1対1の面談をし、目標設定とフィードバックをおこなう。
      • プレゼンテーションをさせる。技術的なトピックについて他の人と議論する。
    • Week 4
      • 先輩エンジニアに補助されながら、より大きなプロジェクトを進めていく。
    • それから先
      • 技術的な見習い期間をもうける。詳しい先輩について学ぶって感じかな。
      • 成長を見守る。