電通総研 テックブログ

電通総研が運営する技術ブログ

若手こそ受けておきたい!IPA システムアーキテクト試験

こんにちは。金融ソリューション事業部の星野です。
本記事は電通国際情報サービス Advent Calendar 2023 21日目の記事となります。
今回は、IPAシステムアーキテクト試験を若手エンジニアが受験することの意義について、受験体験と共にお話させて頂きます。

1. IPA システムアーキテクト試験(SA試験)とは

1.1 SA試験の概要

応用情報技術者試験の上位である、「高度試験」などと呼ばれる区分に属する試験です。
同じ区分にはデータベーススペシャリストネットワークスペシャリストなども含まれます。
参考: IPA試験区分

IPAのSA試験概要ページをご覧頂くと、試験で求められるスキルについて確認できますが、ざっくり言ってしまうと要件定義や設計といった工程のスキルが試される試験です。

1.2. 試験内容

試験の内容は以下4つで構成されており、試験日当日は上から実施されます。

  1. 午前I
    • 選択式解答
    • AP試験の午前試験と分野、難易度共に同等の内容。
    • 受験免除対象であったため(詳細はこちら)、私は受けていません。
  2. 午前II
    • 選択式解答
    • APの午前試験よりやや難しい内容が問われているはずですが、難易度は大きく変わらない感覚。
    • 出題分野は以下のとおりで、午前Iと比べて技術系がやや多めの割合となる。
      • コンピュータシステム(コンピュータ構成要素、システム要素)
      • 技術要素(DB、NW、セキュリティ)
      • 開発技術(システム開発技術、ソフトウェア開発管理技術)
      • システム戦略
  3. 午後I
    • 記述式解答
    • APの午後試験と同形式
    • 問題文に記載されているシステムや業務上の課題に対し、どのようにシステム設計すれば課題解決ができるかを問に沿って解答していく。
  4. 午後II
    • 小論文
    • 受験者の経験に基づき、問題文記載のお題に沿って、システム構築で工夫したことを述べる。

2. 私の受験勉強内容の概要

2.1. 私の前提知識・経験

以下のような前提知識・経験を持った状態で受験しました。
ご覧の通り、下流工程中心の経験となっており、SA試験の対象工程の経験は十分とは言えない状況です。

  • ISID 新卒4年目
  • 経験してきた工程:プログラミング、UT、オンプレ->クラウド移行対応のアプリ関連作業内容策定・実施
    • バッチで動作するバックエンドシステムのコーディング/UT
    • CI/CD実装
    • 簡単な詳細設計
    • クラウド移行、リージョン切替対応に伴うアプリ改修方針検討と作業(インフラ領域も多少含む)
    • 簡単な結合テスト
  • 経験案件数:2つ
  • 保有資格

2.2. 勉強した内容について

今回、合格するための勉強方法について説明する趣旨ではないため、簡単に記載します。

  • 合否
    • 1回目受験:午後IIがC評価(内容が不十分である、問題文の趣旨から逸脱している)で不合格
    • 2回目受験:合格
  • この試験のための勉強時間
    • 土日を隔週弱ペース
    • 勉強した日は2,3h勉強
    • 期間としては1回目受験4ヶ月, 2回目受験2ヶ月程
  • 使用した参考書

3. 若手エンジニアが受けて良かったこと

3.1. 若手エンジニアが直面する試験の壁

私のような経験の浅いエンジニアはSA試験に当たって以下の壁にぶち当たります。
1. 要件定義・基本設計の経験が無い
2. 経験案件数が少なく午後IIの論述ネタがない

「1.」については、ひたすら午後Iの過去問演習を積むことが効果的です。
問題文に記載されている各課題を解消するに当たって、どのような設計にすべきであるかを導き出すことができる力を問題演習を通じて身に付ければ、試験に太刀打ちできると考えます。
知識という観点では、応用情報技術者試験相当の知識があれば十分で、プラスで必要な知識については過去問演習で足りると思っています。

「2.」が若手エンジニアにとって鬼門となります。
問題文を過去問ページでご覧いただくと分かると思うのですが、問題文記載のお題に沿ったシステム構築の経験について、アーキテクトとして工夫したことを小論文で述べなければなりません。
例として私が2回目受験した際の問題文を以下に記載します。

近年、企業においては競争優位の獲得や企業自身の存続のために、デジタルトランスフォーメーション(DX)を推進することが増えている。しかし、DXの推進に必要な情報が整備されていないなどの課題が原因で、推進が困難になる場合も多い。
そのため、システムアーキテクトは、課題を解決してDXの推進を支援する必要がある。このような課題には例えば、次のようなものがある。

<中略:POS情報を活用したビジネスを可能にするDXについての例が問題文中に記載>

設問ア あなたが携わったDXの推進では、どのような課題があったか。DXの目的と情報システムの概要を含め、800字以内で述べよ。
設問イ 設問アで述べた課題の解決のために、情報システムをどのように改善しようとしたか。解決できると考えた理由を含め、800字以上 1,600字以内で具体的に述べよ。
設問ウ 設問イで述べた情報システムの改善において、何のためにどのような工夫を検討したか。600字以上 1,200字以内で具体的に述べよ。

引用・抜粋:令和5年度 春期 システムアーキテクト試験 午後II 問1

これを見て、「あ、あの案件のこと書けるぞ」と思う若手エンジニアは少ないと思います。
前述の通り、私は二度目の受験で合格しており、一度目の不合格要因は午後IIの小論文不合格でした。
評価ランクはCであり、問題文に沿った小論文ネタではなかったことが大きな要因であったと考えられます。
(細かいレビュー等は試験後に返ってこないので推測です)
この点については、3.2.にて詳細を記載します。

3.2. 若手鬼門の午後II

前述の問題文を見ていただくと、案件を多く経験していない若手エンジニアにとって、自身の経験のみでお題に沿ったシステム構築の経験に基づく小論文を書くことはとても困難であるのはお分かり頂けると思います。

そこで以下のような学習で乗り越える必要があります。
1. 様々な案件事例と設計上の工夫点について学習
2. 自身の経験と1.の学習内容を問題文にあわせて変換する力を養う

まず「1.」については、午後II対策用の小論文事例が多く掲載された参考書を通して学習するのがおすすめです。
内容を理解して大方の内容を頭にインプットし、疑似的にその案件に携わった状態を自分自身に作り出すイメージで学習することが効果的です。
注意したいのが丸暗記は良くないということです。
システム構築で生じるありがちな課題の理解とそれに対応する設計上の工夫について、内容をきちんと理解することで、参考書に出てこなかったような問題への対応が可能になります。
加えて、学習量の面も重要で、多くの事例のインプットが出来ていればそれだけ本番の問題への対応力もあがります。

次に「2.」についてです。
これは参考書ではなく、実際の過去問演習を通じて養う必要があります。
参考書通りの問題が本番に出題されることはほぼ有り得ません。
自身の経験と「1.」のインプット内容を基に、問題文にあわせてあたかもそのようなシステムを構築した経験があるかのように小論文を書く力が必要です。
これは過去問演習でしか鍛えられないものになります。
また下流工程のみの経験しかない若手でも「この課題について、こんな仕様の機能追加で解決した」という工夫点を論述するにあたり、自身の経験は十分使えるネタとなります。
過去問演習ではこの点も意識すると、試験本番への対応力がグッと増すでしょう。

3.3. 若手が試験勉強を通して得られること

既に上記に記載したことの裏返しではありますが、試験勉強を通して得られることは以下です。
1. 業務上・システムの課題を要件定義・設計に反映させる力
2. 将来上流工程に携わる前の予行練習
3. 下流工程担当としての視座の向上

「1.」についてはこの試験で問われる力そのものの向上と言えます。
この試験を通して課題 => 要件定義・設計の考え方を午後試験を通して身に付けることができます。
若手エンジニアは下流工程中心で業務する人も多く、そのような人にとってはこの試験は難しい部類に入ると思います。
逆にとらえれば業務上得られない力をこの試験を通して養うことができることは大きいメリットだと言えます。

その点で「2.」のように、将来、要件定義・設計に携わることを考えているエンジニアにとっては、この試験は予行練習の役割を果たしてくれるといえます。
もちろん、実務を通したトレーニングに比べれば試験勉強のトレーニング力は劣ります。
しかし、ゼロから要件定義・設計に携わるよりも、この試験を受けた後に携わるほうがその後の成長スピードは良いのではないかと考えています。

また、下流工程中心で今後も働き続ける人にとってもメリットはあると考えられます。
上流工程の人の考え方を学ぶことで、上流工程担当者とのコミュニケーションも取りやすくなると言えます。
また、試験を通じて「業務課題理解」の大切さを学ぶことができ、日ごろのコーディングにおいても、その機能を使う人の立ち位置に立った適切な仕様を考えるにあたり生きるものがあると考えます。

4. まとめ

システムアーキテクト試験の受験は、経験が比較的浅い若手エンジニアにとっては難易度が高いものと言えます。
ただその対価として得られるものとしてはそれなりのものがあり、業務上・システムの課題を設計に反映させる力を養うことができると言えます。
これは私の個人的な意見ですが、要件定義・設計の工程はシステムの良し悪しを大きく左右するポイントではないかと考えており、この試験を通して要件定義・設計に必要な考え方を学ぶ意義は大きいとも考えます。
仮に受験者がプログラマーの役割であったとしても、設計の考え方を身に付けることで業務に寄り添った仕様のコーディングに役立てることができると考えます。
また、将来上流工程に携わりたい人にとっては特におすすめで、経験ゼロでそのロールを担う際に試験で養った考え方はスタートダッシュに効果を発揮すると考えられます。

資格試験はあえて背伸びして受験することで、自分の経験値にプラスアルファできることが旨みであると考えています。
システムアーキテクトとしての経験がない方こそ、この試験の受験を強くおススメします。

執筆:@hoshino.shogo、レビュー:@fukutake.hiroaki
Shodoで執筆されました