2018年度インターンシップ報告
2018 年度の新卒が今年のインターンシップの受け入れ担当を行いました。本記事では、受け入れ担当視点でのインターンシップの事前準備やインターンシップ当日の様子、事後活動まで含めた内容となっています。
OSS 技術本部 応用技術部でエンジニアとして働いています。uki です。新卒採用で 2018 年 4 月からサイバートラスト株式会社に入社しました。生まれは北海道ですが地元の大学を卒業した後に今年の 3 月に東京へ引っ越しました。学生時代は Free Libre Open Source Software(FLOSS)1 の開発やコミュニティへの参加といった活動をしており現在も趣味として続けています。GNU/Linux2 は専門分野ではないのですが頑張ってお仕事しています。
9 月 3 日から 9 月 7 日までの 5 日間インターンシップで 8 名の学生を受け入れ、僕はインターン事務局の一員として活動しました。本記事では 一受け入れ担当の視点からインターンシップ当日の様子だけでなくインターンシップの事前準備と事後活動も含めて報告します。
インターンシップ概要
目的
本インターンシップは「サイバートラストの社風と技術分野を体験し、今後の進路決定に活かしてもらう」ことを目的としています。
せっかく学校を離れ会社のオフィスで作業するのですから、実際に働いている社員やオフィスの様子を通じてその会社の社風や雰囲気を経験しなければもったいないです。
またインターンシップに応募した方々は「GNU/Linux」や「Open Source Software(OSS)」「Public Key Infrastructure(PKI)」「セキュリティ」3 といったサイバートラストがカバーする技術分野に関する単語に惹かれ、そういった技術に触れたくて応募したはずです。インターンシップの内容がこれらにかすりもしないならそれは期待を裏切ることになるでしょう。
サイバートラストのインターンシップは新卒採用と一切関係はありません(事実、僕はサイバートラストのインターンシップはおろかインターンシップという行事そのものに参加したことすらありません)。会社見学を兼ねた夏期短期講習とでも言えばいいでしょうか。GNU/Linux や OSS あるいは PKI が得意な企業はサイバートラスト以外にも数多くあります。この経験を進学あるいは就職などといった進路決定の判断材料に活用してくれれば ...... という思いです。
実習内容
5 日間のインターンシップは以下のような流れで進みます。
日時 | 午前 | 午後 |
---|---|---|
9 月 3 日 | オリエンテーション | オリエンテーション・懇親会 |
9 月 4 日 | 演習 | 演習 |
9 月 5 日 | 演習 | 演習 |
9 月 6 日 | 演習 | 成果発表会の準備 |
9 月 7 日 | 成果発表会の準備 | 成果発表会 |
実習は大きく分けて演習と成果発表会の 2 つに分かれています。
演習は新規サービスやアプリケーションの開発作業・提案ではなく、事務局側で用意した教材を読み演習問題を解いてもらう ...... という形式です。この教材は
- Linux のインストールとシステム管理
- RPM パッケージと Yum リポジトリの作成
- パッケージのカスタマイズ
- OpenSSL による証明書の発行とクライアント認証
- Lua モジュールを利用したリバースプロキシの構築
の全 5 章で構成されています。1 章から 3 章・5 章はミラクル・リナックスが持つ GNU/Linux や OSS の技術分野。4 章はサイバートラストが持つ PKI の技術分野となっています。公開はしていませんがインターンシップに参加した学生には演習の解答と共に PDF で渡しています。
インターンシップで使用するオペレーティングシステム(OS)は CentOS 7 です。サイバートラストでは「Asianux Server」という GNU/Linux ディストリビューションを提供しています [1]。しかし Asianux Server を使って演習を進めてもインターンシップ終了後は製品を買うか試用版をダウンロードしなくては演習で使った環境を私用のマシンで再現できません。Asianux Server も CentOS も RHEL 系のディストリビューションなので互換性はあり、どちらを使っても演習問題は同じように解けますが今後の学生の活動を考えれば非商用 OS である CentOS を選択する方が望ましいと考えました。
最終日はインターンシップの成果発表会があります。ここではインターンシップで苦労した点や新しく学んだ点・感想などについてひとり 10 分間発表します。スライド作成や発表練習にも時間を確保する都合から演習を進められるのは 2.5 日間です。一日は 10 時から 17 時まで。それに日報を書く時間を差し引くと、演習に割けられる時間は一日 5 時間ほどということになります。これはかなり短いように思えますがこのインターンシップでなにをやってきたのかを他人に説明することも重視しています。
インターンシップ事前準備
事務局
2018 年度インターンシップ事務局の初回顔合わせは 2018 年 6 月 26 日でした。顔合わせに参加したメンバは
- 管理本部 1 名
- OSS 技術本部 6 名(東京 4 名・松江 2 名)
- PKI 技術本部 1 名
の計 8 名。これらのメンバでインターンシップを準備します。
その内新入社員は OSS 技術本部の 4 名です。新卒採用の社員は 5 月末まで研修をおこない、6 月 1 日から部署配属されています。それにもかかわらず配属して間もない時期から社名を背負ったプロジェクトに参加できたことになります。
管理本部の社員はインターンシップの事務的な処理を。OSS 技術本部と PKI 技術本部の社員はインターンシップの実習に関する処理、すなわち当日のインターン生への対応や教材の改定を担当します。
ツール
インターンシップで用いた主なツールは以下の通りです。
ツール | 説明 | 役割 |
---|---|---|
GitLab | ソースコード管理システム | 教材執筆とリリース、Issue システム |
Sphinx | 文書作成ツール | 教材執筆、組版・PDF 出力 |
Slack | メッセージアプリ | 事務局内のコミュニケーション |
Microsoft Teams | メッセージアプリ | インターン生と事務局とのコミュニケーション |
教材は Sphinx という文書生成ツールを使い reStructuredText で書いた原稿を PDF に変換するようにしています。この原稿は GitLab を使って管理しており、教材に関する問題の提案や機能追加の議論は GitLab の Issues 機能を使いました。インターンシップの準備中は Slack 上でやりとりをしていましたが、インターンシップ中は(1)インターン生に Office 365 のアカウントが配られ、(2)Google アカウントはインターン生に配布されたアカウントのドメインが正社員と微妙に違うという理由から Office 365 で使えるメッセージアプリ Microsoft Teams を使うことにしました。
コミュニケーションに使うツールは部署ごとに様々です。Slack を使うところもあれば Google Chat や Google Hangout を使うところもあります。しかし全社員共通で使えるツールは現状 Office 365 だけなので、これは良い選択のような気がします。
準備
インターンシップ当日に向けて次の準備に取り掛かりました。
- 教材に PKI の章(上記でいう第 4 章)を追加する
- オリエンテーションで話す「Linux 入門」の資料作成と発表練習をする
準備期間中は主に PKI の章を追加する作業を主に進めます。合併後やオフィス移転後も旧ミラクル・リナックスと旧サイバートラストのネットワークが物理的に分かれたまま共存しており、(1)事務局の中で GitLab へアクセスできるのは OSS 技術本部のメンバのみで、(2)教材は旧ミラクル・リナックスで使われてきたものであり執筆作業やビルドは Unix 系 OS 上で 4 やらなければならないという事情があります。そこで執筆は OSS 技術本部の僕たちが担当して、レビューは PKI 技術本部の方が担当するという方針で進めました。
自分用のメモならまだしも他人に読ませる技術文書は内容の裏付けに時間がかかります。また「教えることによる学び」 [2] と言われるように、何かを他人に教えるためにはまず自身がそれについて深く理解している必要があります。
僕自身、公開鍵認証で SSH ログインをしたり OpenSSL で自己署名した証明書(俗に言うオレオレ証明書)を作ったりすることはありますが、だからといって PKI の説明を難なく書けるかというとそうではありません。教材の執筆と並行して PKI について、その概要や PKI が求められる背景・用いられる技術など最低限の概要を説明できるようになるまで勉強しなければならず、僕が長い文章を書くのが苦手なのも相まって中々執筆が進みません。それに加えてレビューの依頼や指摘内容をもとに修正する作業もあります。Git のコミットログを見返すと、7 月 4 日から書き始めて 8 月 21 日にレビュー含めすべての執筆作業が終了したようです。インターンシップの準備以外にも自社製品の開発業務に携わっている都合上、日数はかかってもインターンシップ準備にかけられる時間は比較的少ないことも影響しています。
インターンシップ初日では座学として、教材に書いてある用語について解説する「Linux 入門」の時間が設けられています。僕はそれの講師役をすることになりました。それに向けて前年度インターンシップで使った発表資料を微修正し、機材テストも兼ねた発表練習を本番当日 1 週間前に 2 回おこないました。
インターンシップ当日
1 日目(9 月 3 日)
1 日目は事務手続きやインターン生との顔合わせ・企業説明・オリエンテーション・PC 設定をします。
予定どおりオリエンテーションで「Linux 入門編」と題して 1 時間ほど講師を務めました。発表練習のときはうまく接続できていたのにも関わらず、この日だけはなぜか接続がうまくいかないというトラブルに見舞われ予定より 15 分ほどオーバーしてしまいました。接続不良の際に代替手段のテストを発表練習で確認しておかなかったのは完全に僕のミスです。しかしインターン生からの反応は良かったように思えます(思いたいです)。
この日は演習に充てられる時間がほとんどありませんでした。ラウンジで懇親会を催しインターン生と社員との間で交流が深められました。
2〜4 日目(9 月 4 日〜9 月 6 日)
2 日目から本格的に GNU/Linux 上での演習が始まります。
インターン生からの質問や課題の解答をメールやチャットあるいは口頭で受け付け、
それに応答するのが主な役割です。さながら大学の実習科目で雇われるティーチングアシスタント(TA)でしょう。他には学校によっては日誌に指導者の所見を書く欄があるのでそれに記入したり、学校に提出する実習報告書を書いたり、インターン生が書いた日報にできるだけ返信してコメントを残したり ...... などです。松江とは物理的な距離がありますが、松江のインターン生とはチャットやメールでコミュニケーションをとれたので僕は苦に思いませんでした。
全体的に、今年は 1 日 1 章程度のペースで教材を進めていったようです。ちょうどこの時期に台風 21 号が近づき安全のため予定より早くインターン生を帰らせる日もありましたが、短い演習時間の中でよく頑張っていたように見えます。
9 月 6 日の午後から成果発表会に向けた資料作成が始まり、発表資料に関する相談やレビューを担当しました。
5 日目(9 月 7 日)
インターンシップ最終日です。11 時に発表資料を事務局に提出し 11 時 30 分からランチに出かけます。成果発表会は 13 時 30 分から 2 時間おこなわれます。
午前中はインターン生の発表資料をレビューし、会議室を予約して発表練習をしました。発表練習は 2 名分しか見られていませんが提出された発表資料を眺めると図を使って分かりやすい説明をしようとしてくれている方や高橋メソッド [3] を使って発表しようと挑戦している方がいました。発表資料は人柄が出やすく一人ひとり違った特徴があり面白いです。
ランチは次世代リーダ/Bench メンバと呼ばれる社内の中堅メンバ数名と一緒に外食しに行ったとのことです。事務局メンバは同伴しませんでしたが、その間で成果発表会会場の設営準備をしました。
成果発表会は東京オフィスのフリースペースと呼ばれる、全社員が参加可能な場所でおこなわれました。成果発表会に参加していただいた社員はおおよそ 30 名ほどです。発表練習の甲斐もあってか、全員落ち着いて発表ができていたように見えます。質疑応答の時間も年上の社員に対してしっかりと受け答えができていました。発表の中でインターン生からは「Linux のコマンドについて勉強できた」「難しかったが楽しい 1 週間だった」「インターンシップが終わっても課題の続きをやりたい」といった感想をいただきました。
インターンシップ事後活動
アンケート結果
最終日に集めたアンケートの結果を一部紹介します。
やはりインターンシップの期間そのものが短いという声が強いようです。
演習問題の難易度も難しく感じられたようでした。僕はむしろ全員早めに終わってしまって暇ができてしまうのでは?という危惧を抱いていたのですが、それは杞憂だったようです。しかし教材の解説をもう少し丁寧にしたり分量を増やしたりすることを検討するべきかもしれません。演習では SSH で公開鍵と秘密鍵を作る方法や Git コマンドの使い方といった教材に書いていないこともやってもらう必要があったので、そこもカバーするようにすべきだと思います。
一方で僕たち受け入れ担当者の対応はインターン生から高く評価されました。とても喜ばしいことです。なるべくインターン生のまわりをうろついたり、こちらから進み具合を聞いたりと当日の対応を頑張った成果がこのような結果に結びついたのだと思います。実はインターンシップ受け入れ担当者に対する評価項目は去年や一昨年のアンケートには含まれていませんでしたが、今年から取り入れることになりました。このように評価が可視化されるのは、来年の対応方針や僕たち自身の評価のためにも良いことです。
ポストモーテム
インターンシップの翌週にポストモーテムと呼ばれる振り返りを事務局で実施しました。インターンシップ事務局の運営で良かった点・悪かった点を洗い出し、来年のインターンシップをより質の高いものにすることが目的です。ポストモーテムで挙がった議論については書けませんが、来年の事務局に良い引き継ぎができるのではないかという手応えがありました。
おわりに
インターンシップ事務局で受け入れ担当として動いた一人として、インターンシップの準備から当日の様子そして終わった後の活動を含めその様子をお伝えしました。
学生時代はインターンシップよりむしろ旅行 5 や豚肉の低温調理 6 を優先させた身なので、実は今回初めてインターンシップという行事に関わることができました。インターン生への対応は大学の TA 業務と近いものがあり数か月前の暮らしが懐かしく思えます。教材を改定していく中で、調査した内容を文章としてアウトプットできるまで噛み砕ける時間はとても大切であると改めて気が付きました。
インターン生のみならず僕自身も成長できたのかなと思います。来年度のインターンシップはどうなるかまだ分かりませんが、もしこの記事を読んでサイバートラストのインターンシップに興味を持った・参加してみたいと思った、あるいは新卒採用が気になる 7 と思っていただいたのであれば幸いです。
参照文献
サイバートラスト株式会社 , "Asianux Server 7 == MIRACLE LINUX V7," [ オンライン ]. Available: https://www.miraclelinux.com/product-service/linux-solution/axs7 . [ アクセス日 : 11 9 2018]
慶應義塾大学 湘南藤沢キャンパス 学習パターンプロジェクト , "No.31 教えることによる学び ," 2009. [ オンライン ]. Available: http://learningpatterns.sfc.keio.ac.jp/LearningPattern_No31.html . [ アクセス日 : 10 9 2018].
高橋征義 , " 高橋メソッド ," 29 11 2015. [ オンライン ]. Available: http://www.rubycolor.org/takahashi/ . [ アクセス日 : 10 9 2018]
S. Richard, "GNU/Linux FAQ by Richard Stallman," 31 3 2018. [ オンライン ]. Available: https://www.gnu.org/gnu/gnu-linux-faq.html.en . [ アクセス日 : 10 9 2018]
R. Stallman, "FLOSS and FOSS," 18 11 2016. [ オンライン ]. Available: https://www.gnu.org/philosophy/floss-and-foss.html . [ アクセス日 : 10 9 2018]
サイバートラスト株式会社 , " サイバートラスト 採用情報 | サイバートラスト株式会社 ," [ オンライン ]. Available: https://www.cybertrust.co.jp/corporate/recruit. [ アクセス日 : 10 9 2018]
1 Free Software は社会運動、Open Source は開発論とはよく言ったものです。僕は政治的に中立であることを表明しておきたいのであえて FLOSS という語を使います。Stallman が "'Thus, if you want to be neutral between free software and open source, and clear about them, the way to achieve that is to say "FLOSS," not "FOSS."' [5] と述べた通りです。しかし「フロス」と言っても僕の周りでは誰も理解してくれない(デンタルフロスを連想してしまうらしい)ので、喋るときは「オープンソース」と言ってしまいがちです。意志の力が足りない。本当は「OSS 技術本部」も「FLOSS 技術本部」に改名してほしいのですがどうでしょうか。
2 Linux はカーネルのことなので「Linux が動く OS」という意味で GNU/Linux と呼んでいます。Stallman が ' By calling the whole system "GNU/Linux", and calling the kernel "Linux", you avoid the ambiguity.' [4] と述べるように、そう呼ぶのが混乱せずに済むのですがあまり GNU/Linux と発音している人を見かけません。この記事ではオリジナルで "Linux" が使われていればそのままにしておき、それ以外はなるべく "GNU/Linux" を使うことにします。...... しかし Stallman の言葉を引用し過ぎの節がありますね。この文章が政治的に偏っているか否かは読者の判断に委ねます。
3 セキュリティは熱い分野です。インターン生に限らず「セキュリティをやりたいです!」という熱意を見せる方は多い。一方で「なにを」「どうやって」守る技術を体験したいのかはっきりさせておかないと不幸なミスマッチが起きてしまいそうな気がします。もしかすると守りはいいから攻めの技術を習得したい人もいるかもしれません。
4 あえて「GNU/Linux 上で」とは書いていないのは、僕は GNU/Linux 上で執筆作業をしていないからです。僕が普段使っている OS は FreeBSD で、業務に使う GNU/Linux はすべて bhyve という FreeBSD のハイパーバイザを使って実行しています。
5 神戸に行きました。神戸牛を目の前の鉄板で焼いてもらいました。
6 大学の研究室では水と電気を思う存分浪費できるので、20L のポリ容器に水圧で密封した肉を入れ、水温制御クッカーと呼ばれる水温を一定に保てる機械を使って低温調理を趣味にしていました。引っ越しするときはそれを持っていかなかったので、今はもうやっていません。しかし鶏モモ肉を 60℃で 4時間調理するとえらいことになります。
7 2019年度の新卒採用は終了しました [6]