チームの新しいメンバーに、かなり複雑で多くの「落とし穴」が絡み合っているかもしれないコードベースをどのように紹介しますか?
最も簡単な方法は、全体的なアーキテクチャを図でレイアウトし、新しい人がコードに慣れるにつれて、明確に定義された(そして十分にスコープが定められた)タスクを数週間(または数か月)かけることだと思います。
しかし、コンサルタントとして(そしてその時点で下級従業員として)私は、時間の制約またはチームの役割の指定のために、それを常に持つことはできません。(私はこの特定のプロジェクトに他の誰かの2倍の長さで参加しているので、「ジュニア」は「コード/プロジェクトについてあまり知らない」という意味ではありません。)
私はプロジェクトとコードに新しいメンバーを紹介するように何度も任されましたが、悲しいことに毎回私は以前のものよりもそれほど良くないことがわかりました。私は図や写真が大好きですが、システムの複雑さを十分に説明していないと感じることがよくあります。(すべての小さなものの「落とし穴」はどうですか?)
このプロジェクトは、クライアントに引き継ぐところまで来ており、物事をより困難にするために、私が知識移転を行う人は、基本的に大学を卒業したばかりです。(上級開発者と知識の移転をするときのほうがずっといいというわけではありません。)
私はユーザーグループに月に一度参加し、その他の機会が生じたときに新しいトピックを紹介されることはありませんが、効果的な知識の共有を複製する能力は非常に不十分だと感じています。
どんなアドバイスも大歓迎です。私は主に私が従うことができるガイドラインを探しています。例:どこから始めますか?どのように進めますか?聞き慣れない技術やパターンを、一日中取らずにどのようにカバーしますか?どこでビジネスロジックとコード構造を結び付けますか?
ありがとうございました!
(いつものように、あなたが適切だと思うように質問を自由に編集してください。)
# TODO: fix this ugly hack