アジャイル
教育
新人プログラマ応援

エンジニアの新人育成—「とにかくテキスト化!」で プロジェクト理解、実装理解を伸ばそう。

ビギナーのプロジェクト理解や実装理解の部分を伸ばしたい。
だけど「理解」というものは、プログラムのようにコードでは見えるものではないだけに、教え方にコツがいる。

そのために「テキスト化」が良いんじゃないかと思い、実践している。

image.png

前提

  • アジャイル開発
    • 朝会、夕会 (スタンドアップミーティング) をやっている

  • 朝会、夕会の内容をテキストにしてもらう
  • 実装やプロジェクトに関して、何かの説明をしたら、テキスト化してもらう。
  • 会議やミーティングの内容をテキストにまとめてもらう

これをチームがチェックして、添削する。
間違っているところがあったら、口頭やチャットツールなどで指摘して、またテキストを修正してもらう。

狙い

  • インプットとアウトプットをセットにすることで、ビギナーの基本的な理解を深めたい。
    • インプットだけではなかなか身につかない
  • ビギナーが理解できたかどうかを、チームが目に見える形で確認できるようにしたい。
    • 「分かったかどうかが、分からない状態」を避けたい。
  • ビギナーの学習コストを最大化して、チームのコストを最小化したい。
    • テキスト化には時間とコストがかかるが、テキストの添削は一瞬で終わらせやすい。(うまくいけば)
  • 10の理解で100進んでもらうよりも、20の理解で50進んでもらった方が、圧倒的に手戻りが少ない。

実感として、かなり効果があるんじゃないかと思っている。

合言葉は「とにかくテキスト化」。

「じゃあ、テキストにまとめてください」を口癖にする感じ。

ミニ朝会での例

今までのやり方

ビギナーにプロジェクトや実装理解を深めてもらう機会として、朝会の後に「ミニ朝会」というのを開いて、ビギナーが気になる点、分からない点をキャッチアップしていた。

(参考 エンジニアの新人教育 〜メンターとビギナーの日々是セッション〜 - Qiita )

問題点

  • 口頭で話しながら手厚く教えることは、チームの時間的、エネルギー的なコストが大きい。(本当はそうしたいが、出来ないこともある)
  • チームのコストを最大化することで、逆にビギナーの学習成果を最小化してしまっている恐れがある。
  • ビギナーが本当に理解できたかどうかをチェックする仕組みがない。
  • 「気になることがなかった時」にキャッチアップできない。

最初の段階では、手厚いやり方は良いかもしれないが、この方法をずっと続けるのは難しそうに感じた。

ボトルネック

  • 朝会、夕会は実装理解の大きなチャンスだと思うが、この時間が学習システムとして働かず、大きな空白になっているのではないかと考えた
    • 目の前に金塊があるのに、毎日、持ち帰らない状態。
  • まずはチャンスを最大に活かしてもらいたいと思った。
  • 「まずはコストを支払って、理解すること」「理解の姿勢を持つところ」「金塊を持ち帰るところ」から始めてもらう。

具体的な手順

1.テキスト化

  • 朝会・夕会で分かった内容をビギナーにテキスト化してもらう
  • メンターがそれをチェックする

2.キャッチアップ

  • ツッコミどころがあれば指摘する
    • テキストの添削や、口頭での指摘をおこなう
  • 他にも気になること、分からないことがあれば教える
    • 図を描いたり、演説調で話したり、ビギナーのディスプレイを指出ししながら話したり

3.またテキスト化

  • 理解を修正、オーバーライドした内容を、ビギナーにテキスト化してもらう

4.またキャッチアップ

  • メンターがまたそれをチェックする

5.一粒で二度美味しい

Pivotal(ストーリーの内容をメモする場所)とかに記載してもらえば、記録は残るし、ビギナーの理解は深まるし、悪くない。

余談

朝会に参加するというのは、ものすごく難易度が高いと、個人的に思っている。
リアルタイムに、一瞬一瞬でやりとりされる情報をキャッチして、実装理解・状況理解のモデルを頭で組み立てつつ、自分の言うことも考える必要がある。

ちょっとしたスキがあると、自分の思考だけにとらわれて、上の空になりがちだ。

「朝会に自然に参加できるようになったなら、チームへのコミット度は一人前」ぐらいの、リトマス試験紙のようなものだと思っている。

まとめ

コスト配分や、その種類について考えよう。

たとえばこの例でいうと、ビギナーに大きなコストを支払ってもらうことが、ビギナーとチーム、両方のメリットを最大化してくれると思った。

イラスト