開発部門(基盤本部)でエンジニアの育成を担当している高玉です。
基盤本部では2020年度から新人エンジニア向けの研修を実施しています。テクニカルスキルについては、インターネットで公開されているコンテンツを活用しているのが特徴です。決して手を抜いているわけではないですよ!ちゃんとした狙いもあります💪どのコンテンツもすぐに試せるものばかりです。ITエンジニアとしてさらにスキルアップしたい方や、リモート環境での研修に困っている教育担当者のお役に立てば幸いです。
新人エンジニアに好評だった研修と利用したコンテンツ
テクニカルスキルを学ぶ順序を次のように定めました。チーム開発演習に必要になるスキルを段階的に学んでいきます。
図1 テクニカルスキルの学習パス
インターネットで公開されているコンテンツを使った研修のうち、新人の印象に強く残った順にご紹介していきます!
テスト駆動開発(Test Driven Development:TDD)
TDDは、ペアプログラミング・モブプログラミングを実践するために必要なプラクティスです。タスクばらしとリーダブルコードを学んだ後に学びます。id:t-wadaさんがYouTubeに公開されている動画でTDDのポイントを学びました。
TDD Boot Camp 2020 Online #1 基調講演/ライブコーディング
新人「学生の頃はテストを書く機会がありませんでした。この動画のおかげで、そのメリットを良く理解できました。後に続く人の負担を減らせることは、とても大事だと思います。動画を見ながら手元でプログラミングをして、より理解を深めることができました」
スクリーンキャストは見ているだけでも手を動かしたのと同様の効果が得られることがありますが、ここまで分かりやすいものはなかなかありません。質の高いコンテンツを公開してくださっていることに感謝です!
動画をただ見ているだけでは受け身になってしまうので、Googleフォームのテスト機能を使って理解度クイズも準備しました。理解度クイズでは、TDDの誤解されやすい点について質問しています。どなたでも試せますので、腕試しにぜひどうぞ!
GitHub、Markdown
Gitについて学ぶ前に、GitHubを使ったプルリクエスト(Pull Request:PR)を体験することで、Gitがチーム開発でどう使われるようになるかを先に理解してもらいます。
この研修ではGitHub Learning Lab GitHub Skillsで1Markdownの書き方や、PRの作り方・取り込み方を学びました。GitHubアカウントとWebブラウザーさえあれば、手を動かしながら学べる素晴らしい教育コンテンツです。
新人「研修でPRの作り方を学んだ後、早速、とあるオープンソースプロジェクトにPRを出してみました。typoを直すだけの簡単なPRだったのですが、それが取り込まれて、プロジェクトの貢献者として名前が表示されたときは本当に嬉しかったです。その後も、ちょくちょくPRを出しています」
GitはTDDと同様に、学生時代に学ぶ機会の少ない技術のようです。使い方が分かった途端、オープンソースに貢献してしまう行動力にビックリしました!
UNIXコマンド、UNIX哲学
Gitを学ぶ前に、Linux標準教科書(https://linuc.org/textbooks/linux/)※1 を使って基本的なコマンドについて体系的に学びました。教科書と聞くと堅いイメージを持ちますが、Linux標準教科書は「手を動かしながら学べる」点が優れています。実際にコマンドを打ちながら読み進められますし、章末テストで理解度を確認することもできます。
※1 Linux標準教科書の著作権は特定非営利活動法人エルピーアイジャパンに帰属します。
新人「受講した時は、catコマンドを見て「え?猫?」という状態だったので、基本的なコマンドやUNIXの設計思想まで学べたことはとても良かったです。早速、業務でコマンドを打つことがありとてもドキドキしたのですが、Linux標準教科書を見返したおかげで臆することなく作業できました。もっと慣れたいので2周目に入りました」
Linux標準教科書のおかげで、手を動かしながら本を読む「写経」のやり方を学ぶこともできました。自分のペースで何度でも繰り返せるのは素晴らしい利点です。
リーダブルコード
最後は、コンテンツそのものではなく、無料で公開されている学び方のご紹介です。
TDDを使ってコーディングをはじめる前に、書籍「リーダブルコード」を購入して新人に配り、良いソースコードについての共通認識を深めました。
BIGLOBEでは必要な技術書は会社で購入できます。技術書はとてもコストパフォーマンスの高い教育コンテンツです。
ただ、人によって本を読む力にはバラつきがあるため、まずは読書に慣れることが大事になります。そこで、技術書が好きになり、最後まで読み切れるようになることを目指して、アクティブ・ブック・ダイアローグ(Active Book Dialogue:ABD)※2 を使った読書会を開催しました。
※2 「アクティブ・ブック・ダイアローグ」は開発者・協会代表理事 竹ノ内壮太郎氏の登録商標です。
ABDではチームで一冊の本を読みます。まずメンバーに読む箇所を割り当てます。メンバーは読んだ内容についてサマリーを作り、お互いに共有します。そして、全てのサマリーを共有した後で、もう一度サマリーを眺めながら議論をするのですが、結果的に「その本を全部読んでみたい」という意欲が高まります。
何より楽しい!のも特徴です。詳しいやり方は、アクティブ・ブック・ダイアローグ協会が無料で公開しているマニュアルをご覧ください。とても分かりやすいです。
新人「チームで開発をする上で、良いコードとはリーダブルなコードであることを良く理解できました。ABDでは、自分が読んだ内容を他の人に説明するのですが、人に説明することで知識が整理されました。他の章の概要も効率良く理解でき、むしろ全部読み直してみたくなりました」
ABDはチームが活性化する素晴らしい読書体験を与えてくれますが、参加者の持っている知識や使う技術書によっては向き・不向きがあると感じています。他の本でABDを試したときには、分担する量を多めにし、かつ、内容が難解だったため、上手くサマリーを作れずに議論が盛り上がらない、という失敗をしました。
その点、リーダブルコードは章ごとの文章量が少なく、分かりやすい内容のためABDに向いています。リーダブルコードでのABDが上手くいったので、現在は書籍「Webを支える技術」を使ってHTTP、REST、HTMLについて学んでいます。
インターネットで公開されているコンテンツを使った学習のメリット
基盤本部にはインフラエンジニアと開発エンジニアが所属しています。それぞれのエンジニアが共通して身につけるべきスキルを、文末のコラムのように定義しています。
必要なスキルを定義しているのは、学習の目安を作るためです。世の中には情報があふれかえっていて、目安がないと何を学べばよいか迷子になってしまいます。組織として研修を設計する時は、何を研修のゴールとするのかを決めるところで時間がかかるのが普通ですが、BIGLOBEではそれをスキルとして事前に定義していたおかげで、スムーズにカリキュラム設計に移ることができました。
ただ、この研修で学び取って欲しいことは、スキル以上のものに設定しています。それは「セルフラーニングができるようになること」です。ITエンジニアでい続けるためには、常に学び続けることが求められます。「魚を与えるのではなく、魚の釣り方を教える」ために、手取り足取り教えるよりも、自分たちで興味を持って学んでもらうことを意識しています。様々な学習コンテンツに触れてもらうのもその一環です。「学ぶことは楽しい」「学ぶことはハードルが低い」ことを伝えようとしています。
インターネットで公開されているコンテンツを使った学習は、学習者にとって次のようなメリットがあります。
- 自分のペースで進められる
- リモートでの研修は、思いのほか疲れるものです。好きな時に休憩が取れるのは大きなメリットになります。
- 復習できる
- 学んだことを実際の業務で活かすタイミングは、人によって違います。 ただ、一度学んでおけば頭の中に「ひっかかり」が残ります。インターネットで公開されているコンテンツであれば、本当に必要になったタイミングで学び直すことができます。
- 様々な学び方があることに気がつける
- 人によって適した学び方はそれぞれ違います。しかし、自分が教える側にまわってみると、自分が教わった通りに教えてしまうものです。インターネットには本当に様々な教育コンテンツがあふれています。それらを楽しみながら渡り歩くことで、学ぶ側も、教える側も、様々な学び方があることに気がつけるようになります。
つまり、インターネットのコンテンツを使って学習するメリットは、インターネットそのもののメリットと同じです。すなわち、好きな時に好きなだけ好きなコンテンツを使うこと(学び直すこと)ができる点にあります。
研修を作る側にとっては、コンテンツ作りをサボれるのがメリットです。ただし、会社の研修で使うには地味な準備が必要です。個人利用は無料であっても、商用利用を禁じている場合があるので、利用規約の確認や問合せや、場合によっては契約も必要になります。また動画を見るだけの受け身の研修にしてしまえば、研修を作る側にとっては楽であっても、学習者にとっては張り合いがありません。そこで、TDDやUNIXコマンドの研修のように理解度クイズを準備する、といった工夫も必要です。
この記事でご紹介したコンテンツは社内研修で利用できるかどうか確認をしたものばかりです。素晴らしいコンテンツを提供してくださった皆さんには感謝の思いでいっぱいです。本当にありがとうございます。
コロナ禍という未だかつてない状況の中でも、オンラインで新人研修を継続できているのはインターネットがあるおかげです。 「インターネットは、すごい!」とあらためて感じています。そして、このインターネットをお客様に提供できることは、私たちの誇りです。
私たちと一緒にインターネットで社会を支えていきたいエンジニアを大募集していますので、もしよろしければ採用情報をご覧になっていってください。
新卒エンジニア職も大募集しています!
コラム「BIGLOBEのスキル定義」
BIGLOBEでは、全社員が備えるべき「パーソナルスキル」と職務ごとに必要となる「テクニカルスキル」をそれぞれ定義しています。
- パーソナルスキル(全社共通)
- 職種に関係なく、ビジネス遂行に必要な能力・スキル
- テクニカルスキル(部門ごとに定義)
- 業務遂行に必要な知識・スキル
基盤本部はBIGLOBE全社を支える技術開発部門です。基盤本部では、身につけるべきスキルや、目指すべきキャリアパスを明らかにすることが目的として、テクニカルスキルを3つに分けて定義しています。
- インフラ領域のスキル
- ネットワーク、アプリケーション、サーバー・クラウド、ファシリティ、 アーキテクトの5つの専門領域ごとに、必要なスキルを定義
- 情報システム領域のスキル
- ITストラテジスト、ITアーキテクト、プロジェクトマネージャー、業務設計スペシャリスト、ソフトウェアデベロッパー、ITスペシャリスト、ITサービスマネージャー、ITガバナンスマネージャー、データサイエンティストの9つのロールごとに、必要なスキルを定義
- 共通スキル
- 上記の2領域に共通するスキルを定義
共通スキルはさらに、共通ビジネススキルと、共通テクニカルスキルに分かれます。いずれも、基礎的なスキルを身につけます。
- 共通ビジネススキル
- ★ロジカルシンキング
- ★事業戦略、ビジネスモデル、マーケティング
- コミュニケーション、ドキュメンテーション、英語
- 共通テクニカルスキル
- ★情報収集・発信
- ★プログラミング・自動化
- ★統計・データ分析・機械学習
- ★品質、セキュリティ
- 要件定義、システム設計・評価、運用・監視設計
- コスト管理、設備管理
- プロジェクトマネジメント
新人エンジニア向け研修では、星印★をつけたスキルについて学びます。
※ Amazon Web Services、AWSロゴおよびかかる資料で使用されるその他のAWS商標は、米国その他諸国における、Amazon.com, Inc.またはその関連会社の商標です。
※ GitHub は、GitHub Inc.の商標または登録商標です。
※ Googleは、Google Inc. の商標または登録商標です。
- GitHub Learning Labは2022年9月に終了しました。後継としてGitHub Skillsが使えます。↩