20
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

プログラマーのOJTの進め方(一緒にコードを読む→ひとりで読んで質問→実作業とレビュー)

Last updated at Posted at 2014-12-21

これは、新人教育 Advent Calendar 2014 - Adventarの22日目の記事です。

はじめに

集合研修を終えたくらいの入社して間もない新人さんと一緒にOJTをする上で、目安になりそうな進め方を自分なりにまとめてみました。新人さんのレベルに応じて、大まかに三段階あります。

  1. 基礎がない場合…一緒にコードを読む
  2. 基礎がある場合…ひとりで読んで質問
  3. 業務知識がある場合…実作業とレビュー

1. 一緒にコードを読む

基礎がない場合、一緒に既存のコードやドキュメントを説明しながら読みます。集合研修との違いは以下です。

  • 研修用ではなく実際に使われているものを教材にする
  • 少人数なので理解するまで説明できる

もし、新規プロジェクトなどの理由で既存のコードがない場合、似ているOSSのコードを使うのがよいと思います。

教材の選び方は以下の2通りあります。どちらにするかは難しいところです。

  • 先頭から
  • 重要な部分から

この段階はあまり長くやるとお互いに疲れてしまうので、説明した部分を応用すればひとりで読んでも理解できそうだなと感じたら、さっさと次のステップに進みます。

2. ひとりで読んで質問

基礎が付いてきたら、まとまった時間(半日くらい)を使って、ひとりでコードやドキュメントを読んでもらいます。その後、質問するためだけの時間を作り、わからなかったところを質問してもらって、一緒に該当箇所を読みながら説明します。

問題は、質問がない場合です。本当にわかっているのか、うまく質問できないかわからないので、この場合は新人さんに自分の言葉で説明してもらうとよいです。これは、Groongaドキュメント読書会の進め方の資料から得られた知見です。

Groongaドキュメント読書会5の進め方 - Kouhei Sutou - Rabbit Slide Show
http://slide.rabbit-shocker.org/authors/kou/groonga-document-read-5/?page=10

3. 実作業とレビュー

ひとりで読んでも問題なく理解できるようになったら、早いうちに実作業を任せます。すでに同じ分野の経験がある場合、いきなりここから始めてもよいかもしれません。ポイントは以下です。

  • 小さな案件(数行の修正で済むもの)から始める
  • 既存の資料の場所を伝えておく
  • 細かくレビューする

コーディングルールなどは、勝手に既存の部分を読んで真似てくれるのが理想です。が、それは難しいので、初回のレビュー時にプロジェクトのルールなどを伝えます。おそらく、実作業前に伝えるよりは理解しやすいと思います。

おわりに

プログラマー向けのOJTの進め方を三段階に分けてまとめてみました。もしどの段階か迷ったら、低い方から始めるのが無難ですが、人によるので難しいところです。また、教える側が忙しいと1番が使いづらいですが、その場合でもいきなり2番には進まず、さらっとでも一緒に読んでから、同じ場所をひとりで読んでもらう感じがよさそうです。

あくまで私なりの進め方ですが、いろいろアレンジしながら参考にしてもらえるとうれしいです。

20
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?