はじめに
この記事では新人エンジニアを一人前のエンジニアとして開発を任せられる、もしくは新人から中級者レベルにレベルアップしてもらうために私が意識的に行っている「リファレンスを活用する」という習慣と彼らに紹介しているリファレンスを紹介したいと思います。私は新卒の方やその分野に精通されていない方(例えばFrontendからBackend開発に移ってきた方など)と仕事をする際には、PRのコメントや普段のやり取りの中でリファレンスを添えるようにしています。そして、この”リファレンスを添える”ことにより、チームの知識、技術力の底上げ、新人から中級者になるまでのレベルアップが非常に効率的に行えていることに気づきました。リファレンスを使うことに関して、普段から無意識的にやられている方も多いかと思いますが、意識的に、もしくはチームの文化レベルで行っている方は少ないのではないでしょうか。私の経験上、普段から意識的的に行うことでより多くのメリットがあります。そこで今回は、私がリファレンスを活用する上でおさえているポイントについて説明し、私がよく紹介しているリファレンスの中から近年どの現場でも共通して使用されそうなものと近年非常によく使われているPythonに絞っていくつかご紹介できればいと思います。本記事を参考に自身の現場にあったリファレンスを適宜選び、活用して頂ければと思います。
新人エンジニアの教育、チームのレベルアップは全ての企業に共通している課題です。この記事が皆様のエンジニア教育の助けになれば幸いと思います。
リファレンスを活用する
はじめにリファレンスを活用するということについてご説明させて頂ければと思います。
まず、ここでいうリファレンスとは何かについて一旦整理させていただきます。リファレンスとは基本的には”相手のためになる情報が記載されているウェブサイトのURL”(例:GitHubの特定のレポジトリ、Googleの開発Blogなど)を指します。本記事で紹介するリファレンスの中には本もありますが基本的にはURLです。
リファレンスを活用することで以下のようなメリットがあります。
意見と事実の区別が明確になる
嘘を伝えてしまうことを防ぐ
細かい説明の手間が省ける
チーム内で頻繁に共有し合うことで知識の底上げにつながる
自分から能動的に他者に情報を与えることで周りから信頼される人間になる
それぞれ簡単に説明していきます。まず、一つ目の「意見と事実の区別が明確になる」ですが、これは単にあなたの言葉が意見や好みによるものなのか何かに基づいた一般的な事実(例えばコーディング規則やベストプラクティス)なのかを明確にできるという点です。私は仕事をしている中で、「それはあなたが”思う”ことですか?それとも一般的に知られている常識なのですか?」と常に思ってしまいます。リファレンスを添えることでその内容が何かに基づいた事実であるということが証明でき、あなたの言葉の信頼性が増します。
信頼度に関連して、二つ目の「嘘を伝えてしまうことを防ぐ」ということも非常に重要です。人間は完璧でないため、ミスや勘違いをしてしまうものです。そして、勘違いによって伝わる嘘の情報ほど厄介なものはありません。リファレンスを添えることで自分の言っていることが本当に正しいか事前に確認でき、かつ間違っていた場合にもリファレンスを渡しているので相手は間違っていることに気づくことができます。
三つ目、四つ目は自明なので飛ばします。
そして一番重要なのが最後の「自分から能動的に他者に情報を与えることで周りから信頼される人間になる」です。相手に求められずとも有益な情報を与えてくれる人間は周りから頼りにされますし、信頼されます。これは今回の趣旨とは若干ずれてしまいますが、絶大なメリットがあります。実際に企業の中で地位の高い方や社内外から信頼されている方は自然とこれを行っていることが多いです。
さて、では実際どういう場面でリファレンスを使うのでしょうか。よく使う場面を3つ挙げるとすると、相手に質問され何かしらのアドバイスを求められた時、PRレビュー、普段のチーム内でのチャットです。
リファレンスを選ぶときのポイント
リファレンスを選ぶ上でおさえておいて頂きたいポイントをご紹介します。
できる限り信頼性の高いものを選ぶ
相手が必要な情報が確実に含まれている内容のものを選ぶ
相手のレベルに合わせたものを選び、必要なら補足的に2,3その他のリファレンスを付け加える
以上の通り、できる限り信頼性の高い情報かつ相手の求めている答えが含まれているものを選びましょう。できれば、公式のDocumentや著名な開発者、企業のブログなどが望ましいです。逆にQiitaやMediumなどから記事を選ぶ時には評価以外に著者がどういう人なのかも合わせて確認しましょう。特にMediumだと評価がある程度良くても間違ったことを書いてしまっている記事を見かけることが多いです。
そして、最後に相手がその内容を理解する上で必要な情報があればそれも補足的に追加してあげましょう。
おすすめ活用方法
リファレンスを有効活用するために私がおすすめする方法をいくつかご紹介します。
1. チーム内でリファレンス専用グループを作る
チーム内で情報共有のためだけの専用グループを作ります。こうすることでチームで情報共有を行うという意識を上げつつ、業務とリファレンスがごっちゃにならないようにすることができます。
2. 相手にリファレンスを共有するメリット、理由を伝える
これはあなたが教育する側の立場の時にとても有効です。相手に明示的にリファレンスを共有するメリットを伝えることでより有効活用することができ、また、その相手にもリファレンスを積極的に共有するという意識が芽生えます。
3. 自分用のリファレンス集を作る
メモアプリなどに自分用のよく使うリファレンス集を作っておくことはとてもお勧めです。作ったリファレンス集をチームがアクセスできるように共有しておくと直井良いです。
私はNotion上に分野ごとページを作成して、リファレンスメモをチームと共有するようにしています。
僕が新人教育でよく使うリファレンスまとめ
Dockerの公式ベストプラクティス
Googleが提唱しているベストプラクティス
Googleはあらゆる分野のベストプラクティスをまとめてくれています。Googleの発信している情報は本当に質が高いです。迷ったらGoogleのを参考にするようにしています。
Google Coding Style (Python)
PRリクエストの書き方
プロジェクトで参考になりそうなGitHubレポジトリ
そのプロジェクトで参考になりそうなGithubのレポジトリをいくつか共有することが多いです。
新人エンジニアにお勧めしている本
1. リーダブルコード
2. SOFT SKILLS/CAREER SKILLS
終わりに
今までの経験から、レベルの高いチーム、会社ではリファレンスを活用するということを習慣的に一人一人が行っています。
本記事で紹介した内容を皆さんの業務で役立てて頂ければそれ以上に嬉しいことはありません。また、日本のエンジニアのレベル底上げの一助になれば幸いです。逆に皆さんがチーム内で行っている文化などありましたらコメントまたはTwitterから是非ともご共有ください!
今後もエンジニアの教育など情報発信していきます。Twitterやってますのでよかったらフォローしてみてください。
↧