面接の場面や新しい職場で働き始めるとき、普段使い慣れていない言葉が出てくると焦りますよね。
「知らないキーワードが出てきて会話が噛み合わなかった」
「知らないキーワードが出てきて恥をかいてしまった」
そんなことはありませんか?
僕もエンジニア2年目のときに「ネイティブアプリ」の意味が分からずに、面接中に思考停止したことがあります。
けんけん
「アジャイル開発」のような開発手法に関するキーワードは、実践したことがないと馴染みがない言葉になりがちですよね
エンジニアは特に専門用語が飛び交う職種のため、共通言語で話ができるかは技術力や知的好奇心があるかといった判断材料になっています。
またエンジニア採用の場合、一次面接からいきなり現場のエンジニアが登場することもしばしば。面接中に踏み込んだ話をすることも多く、不慣れな言葉が出てくる場合があります。
今回はエンジニアが採用面接を受ける際に、知っておくべきキーワードをお伝えしていきます。
このページの目次
採用面接の場合、ビジネスに関することやチーム開発に対する考え方について話す機会があります。
けんけん
普段、開発〜テスト工程にアサインされている方は、プログラミング以外のことについて疎かになりがちなので、要チェックです。
面接の際に、どんな業態の企業に務めていたかを聞かれるのは自然な流れです。
自分の務めていた会社の業態がSIerなのかSESなのかを抑えておきましょう。
けんけん
SIerとSESの意味が分かっていないと、エンジニアといえども「ビジネスマンとして大丈夫かな」と不安がられるので覚えておきましょう。
面接官
〇〇プロジェクトで追っていたKPIはなんでしたか?
こんな感じでKPIというキーワードがサラッと出てくるかもしれません。
KPIとはKey Performance Indicatorの略で、翻訳すると「重要業績評価指標」という意味です。
つまり経営上、重要かつ定量的な目標を指します。
システム開発の場合、「平均単価を上げるための商品レコメンド機能の開発」と言った具合で、何かしらのKPIを達成することが目的です。
けんけん
KPIは、マネージャークラス以上の管理職の経験がある人が聞かれることが多いです。
出典:backlog ブログ
アジャイル開発は短期間で1つの機能をリリースするというサイクルを反復的に行い、徐々に機能を付け足していく開発手法です。開発サイクルは並行することがあり、顧客のフィードバックを得ながら徐々に機能を拡充していく開発手法になります。1機能あたり1週間〜1ヶ月の開発サイクルなので、スピード重視の開発スタイルになります。
それに対してウォーターフォール型開発は、一度決めた計画のものを滝が流れるように上流工程から順番に開発していきます。設計〜開発〜テストのフェーズが分けられていて、フェーズごとに分業をします。全行程が終了して初めてサービスリリースとなるので、システムの完成まで時間がかかる開発手法です。
面接官
弊社はアジャイル開発なのですが、直近のプロジェクトはどんな開発手法でしたか?
例えばこのような質問を受けることがあります。
自社サービスを展開している企業では、顧客の意見を聞きながら短期間で機能をリリースするアジャイル開発が採用される事が多いです。そのため、アジャイル開発に慣れているか?イメージが湧くか? が問われます。
またアジャイル開発の中にも下記の図のように開発手法が細分化されています。
キーワードとして出てきがちなスクラムとリーンについて解説します。
【スクラム開発】
激しく変わる問題や開発優先順に柔軟に対応するための開発手法。
スプリント(1~4週の期間)ごとに機能開発をする。
「スクラムマスター」と呼ばれるスクラム開発を円滑に進めるリーダーが存在。
デイリーで進捗管理や作業計画を行う。
【リーン開発】
どんな機能がユーザにとって必要か仮説を立て、必要最低限の機能を開発し検証する開発手法。
市場のニーズをいち早く検証することが目的のため、スタートアップ企業で採用されるケースが多い。
スクラム開発は奥が深いので、気になる方は公式ガイドを見ておくと良いでしょう。
出典:スクラム公式ガイド
けんけん
テストを重んじる企業の場合、「テスト駆動開発」というキーワードが出てくることがあります。
テスト駆動開発 (test-driven development; TDD) とは、プログラムに必要な各機能について、最初にテストを書き(これをテストファーストと言う)、そのテストが動作する必要最低限な実装をとりあえず行った後、コードを洗練させる、という短い工程を繰り返すスタイルである。
出典:wikipedia
早期にバグを発見しやすく、手戻りの少ない開発ができることがメリットです。
アジャイル開発において、開発サイクルの単位をイテレーションと言います。
面接官
次のイテレーションで〇〇機能をリリースする予定です。
と言った具合で、さらっと出てくるキーワードの代表格です。
プロジェクト内の一つの区切りを指し、システム開発・デザイン・新規事業の立ち上げなど、様々な規模のプロジェクトで使われます。
基本的に一個のマイルストーンを完了しないと、次のマイルストーンには進むことができません。
例えば上図の場合、マイルストーンAのワイヤー作成が完了しないと、マイルストーンBのデザインに進むことができません。
プログラミングやシステム開発に関わるキーワードの中でも、若手エンジニアが理解していない事が多いキーワードをピックアップして解説します。
ネイティブアプリとは、次のようなアプリを指します。
iPhone(iOS)アプリ
Androidアプリ
Windowsアプリ
Macアプリ
つまり、特定のOS上で直接動くアプリを指します。
ネイティブアプリは、OSへのインストールが必要で、ネットが繋がっていなくても動作するのが特徴です。
面接官
Webアプリに続いてネイティブアプリのリリースを来年予定しています。
のように言われた場合は、「iPhoneアプリもしくはAndroidアプリのリリースを来年予定している」という風に捉えられればOKです。
面接官
うちはLAMP環境の案件が多いですね。
さて、どういう意味でしょうか?
L:Linux
A:Apache
M:MySQL
P:PHP
開発環境としてメジャーな上記のシステム構成を略し、LAMPと呼んでいます。
PHPの部分はPerlやPythonが入ったりしますが、PHPを指すことが一般的です。
オンプレミスとは、自社でサーバーを用意し運用することを指します。
「オンプレミス(建物に乗る)」という意味なので、自分の建物内にサーバーを用意するという意味なのです。
反対語として「クラウド」という言葉が存在し、AWS、Azure、GCPなどが代表的なクラウドサーバーです。
〇〇案件のときサーバーはクラウドですか?オンプレミスですか?
この質問は、サーバーはクラウドで運用していたのか、自社でサーバーを用意していたのかという意味になります。
オンプレミスのことを「オンプレ」と略す人が多いので注意しましょう!
もしわからないキーワードが出てきたらどうすればいいのでしょう?
迷わず聞いてみましょう!
もちろん全てのキーワードを知っているのが理想的ですが、分からないこともあるでしょう。
エンジニア歴が浅ければ浅いほどポテンシャル採用となるケースがほとんどですので、逆にどんどん聞いたほうが「この方は知的好奇心が旺盛だな」と、好印象を与えられるメリットがあります。