本文へ移動

ホーム / App / 第6部 面接の実践

第6部 面接の実践・第16章

経験・行動面接

★★★ 必須9トピック・面接 6問

多くの会社で、知識の質問と同じくらい「実際にやったこと」が重視されます。アプリエンジニアなら、体験を数字で良くした話、リリース後の問題に対応した話、他の職種と合意した話を、STAR(状況・課題・行動・結果)で準備しておきます。

16.1STAR の書き方

★★★ 必須

経験の質問には、STAR(Situation 状況・Task 課題・Action 行動・Result 結果)の順で答えます。話がそれず、面接官も深掘りしやすくなります。

行動に一番時間を使うS 状況T 課題A 行動(自分がしたこと)R 結果S・T は2〜3文。A は判断の理由まで。R は数字と、仕組みにしたこと
状況と課題は短く、行動に一番時間を使い、結果は数字で締める
要素書くことアプリエンジニアの場合のこつ
Situationいつ・どこで・規模アプリの利用者数、OS、チームの人数
Task自分の役割と、何が問題だったか数字で(起動3秒・クラッシュフリー率の低下など)
Action自分が何を見て、どう判断し、何をしたか「チームで」ではなく「私は」。選ばなかった案も
Result結果と、その後に仕組みにしたこと前後の数字。再発を防ぐ仕組み

1つの話は2分ほどにまとめ、詳しくは深掘りの質問で話します。数字は正確でなくても「約」「中央値で」と付けて構いませんが、どう計ったかは説明できるようにしておきます。

要素例
Situation月間〇〇万人が使う EC アプリ。Android で「起動が遅い」というレビューが増えていた
Task性能の改善を任され、性能の低い端末でコールドスタートが3秒を超えていることを計測で確かめた
Actionトレースで、起動時の SDK の初期化とメインスレッドでの DB の読み込みが原因と特定。最初の画面に要らない SDK を後回しにし、読み込みを裏に移して前回のキャッシュを先に表示。Baseline Profile も入れた
Result起動時間は中央値で約4割短縮。起動直後の離脱も減った。Macrobenchmark を CI に入れ、遅くなったら気づけるようにした
要素例
Situation新しい版を段階的リリースで出した翌日、特定の OS の版でクラッシュが増えた
Task担当として、影響を止めるかの判断と原因の特定を任された
Actionクラッシュフリー率が決めておいた基準を下回ったので段階的リリースを停止。スタックから、古い OS にない API を呼んでいたと特定し、Feature Flag でその機能を止めて影響をなくした。修正版を出して再開した
Result影響は利用者の数%にとどまった。最低の OS の版の端末をテストに加え、止める基準を手順書にした
深掘りの質問準備しておくこと
あなた自身は何をしましたか?チームの中での自分の役割と、自分で決めたこと
なぜその方法を選んだのですか?比べた案と、選んだ理由(数字・制約)
どうやって計りましたか?計った条件(リリース版・端末・中央値など)
うまくいかなかったことは?途中の失敗と、そこから変えたこと
今ならどうしますか?振り返って改善できる点
周りの反対はありましたか?誰がなぜ反対し、どう合意したか

深掘りに詰まるのは、多くの場合「自分がやっていない部分」を話してしまったときです。エピソードは自分が判断したことを中心に選びます。

深掘りは3段階まで準備する1段目:何をしたか具体的な行動・数字2段目:なぜそうしたか判断の理由・根拠3段目:他の案・振り返り選ばなかった案・今ならどうするかここまで答えられると「本当にやった人」と分かる
「何を」→「なぜ」→「他の案は・今ならどうする」と深くなる
カテゴリ質問の例アピールポイント
体験の改善一番こだわった改善は?利用者の困りごとから始め、数字で前後を示す
品質・障害リリース後の不具合にどう対応した?影響を止める判断、仕組みにした再発防止
設計・技術選定アーキテクチャをどう決めた?比べた案、チームと規模に合わせた理由
協業デザイナー・サーバー側と意見が分かれたら?相手の目的を確かめ、データと試作で合意
学び続ける力OS の新しい版にどう追いついている?ベータでの確認、移行の計画
チームへの貢献チームのために何をした?テスト・CI・レビューの仕組み、知識の共有
失敗一番の失敗は?失敗を認め、何を学び、何を変えたか
テーマ用意するエピソード入れる数字
性能起動時間・スクロール・メモリの改善改善の前後(中央値・端末)
安定性クラッシュ率・ANR の改善、障害対応クラッシュフリー率、影響の範囲、復旧までの時間
設計アーキテクチャの見直し、モジュール分割、移行ビルド時間、不具合の件数
リリース段階的リリース・Feature Flag・CI の整備リリースの頻度、手作業の時間
協業仕様の調整、API の設計のすり合わせ決まるまでの期間、手戻りの減少
失敗失敗と、そこから変えたこと影響の大きさ

6つのテーマのうち、少なくとも3つは STAR で書き出しておきます。1つのエピソードで複数のテーマに答えられることも多いので、「この話はどの質問に使えるか」も書いておくと便利です。

退職理由と志望動機は、別々に答えるより、一本の線でつなげると説得力が出ます。

過去 → 次にやりたいこと → なぜここかこれまでの経験やってきたこと・成果次にやりたいこと前向きな理由なぜこの会社かアプリ・規模・取り組み不満から話さない。不満がきっかけでも「次に何をしたいか」に言い換える
これまでの経験から、次にやりたいことへ、そしてなぜ応募先かへと一本の線でつなぐ
きっかけ(本音)伝え方の例
今のアプリは利用者が少ないより多くの利用者がいるアプリで、性能や品質の改善を大きな規模で経験したい
受託で運用まで関われない自社のアプリで、リリース後の数字を見ながら改善を続けたい
片方の OS しか担当できない両 OS や設計全体に関わり、アプリ全体の質を上げたい
技術が古いまま新しい技術への移行を、計画から進める経験をしたい

「なぜこの会社か」は、応募先のアプリを実際に使って感じたこと、技術のブログや登壇で知った取り組みと結びつけて話します。

16.8逆質問の例

★★★ 必須
知りたいこと質問の例
リリースの体制リリースの周期と、段階的リリースや Feature Flag はどう運用していますか?
品質の見方クラッシュ率や起動時間などの指標は、誰がどう見ていますか?
チームの形iOS と Android のチームは分かれていますか? 設計はどうそろえていますか?
協業仕様を決める段階から、アプリエンジニアはどう関わりますか?
技術の方針SwiftUI・Compose への移行や、クロスプラットフォームの検討はどうなっていますか?
期待入社して半年で、どんなことを期待されていますか?

調べれば分かること(福利厚生の細かい内容など)は避け、相手の答えからチームの成熟度と自分の役割が分かる質問を選びます。

場面注意点
オンラインカメラ・マイク・回線を事前に確かめる。画面共有するウィンドウを決めておく
デモ実機・シミュレーターが動かないときのために録画を用意。通知や個人情報が映らないように
答え方結論から話し、1つの答えは1〜2分。長くなったら「詳しく話しますか」と確かめる
分からない質問知っていることと推測を分けて話す。黙り込まない
手元のメモエピソードの数字と逆質問をメモしておく(読み上げはしない)
終わった後聞かれて答えられなかったことを書き出し、次に備える

この章のまとめ

🖨 まとめシート(印刷・PDF)
  • エピソードは STAR で、改善の前後の数字を必ず入れる
  • 「なぜ」「あなたは何を」の深掘りに3段階まで答えられるようにする
  • 逆質問でリリースの体制と品質の見方を確かめる

この章のクイズ

面接ではこう聞かれる

まず答えを見ずに声に出して答え、そのあと開いて比べる。

Q1これまでで一番大きなリリース後の不具合と、その対応を教えてください。

模範回答

例えば、新しい版を段階的リリースで出した翌日、特定の OS の版でクラッシュが増えたとします。状況として、クラッシュフリー率が前の版より明らかに下がり、対象は利用者の一部だったと話します。私は担当として段階的リリースを止め、Crashlytics のスタックから、新しく入れた画面の初期化で古い OS にない API を呼んでいたことを突き止めました。

その機能を Feature Flag で止めて影響をなくし、修正版を出しました。結果として、止めるまでの影響は数%の利用者にとどまりました。振り返りでは、最低の OS の版の端末をテストに足し、止める基準を手順書に書いて、誰でも同じ判断ができるようにしました。

深掘りされたら

  • 止めるかどうか、どう判断しましたか?
  • 周りへの連絡はどうしましたか?

見られているポイント影響を止める判断・原因の特定・仕組みにした再発防止

Q2デザイナーや PdM と意見が分かれたことはありますか?

模範回答

例えば、デザイナーが一覧に大きな画像と動きのある表現を入れたいと考え、私は性能の低い端末でスクロールがカクつくと考えて意見が分かれたとします。私はまず相手の狙い(商品の魅力を伝えたい)を確かめたうえで、性能の低い端末で試作を動かし、コマ落ちの数字と動画を見せました。

そのうえで、画像は大きく見せ、動きは画面に入ったときだけにする案を一緒に作りました。結果としてデザインの狙いを保ったまま、スクロールの滑らかさの基準も満たせました。データと実物で話すことと、相手の目的を先に確かめることを大事にしています。

深掘りされたら

  • 相手の案をそのまま採用したことはありますか?

見られているポイント相手の目的の理解と、データでの合意

Q3数字で改善した経験を教えてください。

模範回答

例えば、アプリの起動が遅いという声があり、計ってみると性能の低い端末でコールドスタートが3秒を超えていたとします。私はプロファイラーでトレースを取り、起動時にすべての SDK を初期化していることと、最初の画面のデータをメインスレッドで読んでいることを見つけました。

最初の画面に要らない SDK を後回しにし、データの読み込みを裏に移して前回のキャッシュを先に出し、Android では Baseline Profile も入れました。結果として起動時間は中央値で約4割短くなり、起動直後の離脱も減りました。改善の前後を同じ条件で計る仕組みを作ったことで、後から遅くなったときにも気づけるようになりました。

深掘りされたら

  • 一番効いた施策はどれでしたか?
  • どうやって計りましたか?

見られているポイント計測→原因→施策→前後の数字の流れ

Q4技術的な負債にどう向き合ってきましたか?

模範回答

例えば、古い画面と設計が混ざり、修正のたびに別の画面が壊れるアプリを担当したとします。全部を書き直すのではなく、変更が多い画面から順に、テストを足してから新しい設計に置き換える方針をチームに提案しました。

PdM には、機能の開発の一定の割合を置き換えに使うことを、不具合の件数と修正にかかった時間の数字で説明して合意しました。半年ほどで主要な画面を置き換え、その画面まわりの不具合の報告は目に見えて減りました。負債は一度に返すより、毎回少しずつ返す仕組みにすることが大事だと考えています。

深掘りされたら

  • 置き換えを止めた判断はありますか?

見られているポイント少しずつ進める計画と、他の職種との合意

Q5なぜ転職を考えているのですか?

模範回答

今の会社への不満ではなく、挑戦したいことを中心に話します。例えば「今の会社では1つのアプリを配信から運用まで担当し、起動時間やクラッシュ率の改善を続けてきました。次は、より多くの利用者がいるアプリで、性能やアーキテクチャの改善を大きな規模で経験したいと考えています」のように、これまでの経験と次にやりたいことをつなげます。

そのうえで、応募先のアプリを使って感じたことや、技術のブログで読んだ取り組みなど、そこでなければならない理由を具体的に加えます。

深掘りされたら

  • それは今の会社ではできないのですか?

見られているポイント一貫性と前向きさ

Q6最後に何か質問はありますか?

模範回答

必ず用意しておきます。例えば、リリースの周期と段階的リリースの運用、クラッシュ率や起動時間をどう見ているか、iOS と Android のチームの分かれ方と、デザイナー・サーバー側との進め方、最近の大きな技術的な取り組み、入社後半年で期待されることを聞きます。

答えから、品質を仕組みで守っているか、アプリエンジニアが仕様の段階から関われるかが分かり、自分の関心の高さも伝わります。

見られているポイント相手の開発の成熟度を見極める姿勢