見出し画像

システムエンジニアの役割解説 〜SEという職業は日本だけ?〜

こんにちは。岡山トヨタシステムサービスです。
以前の回で「システムエンジニアとWebエンジニアの違い」についてご紹介しました。

今回はシステムエンジニア(SE)の役割について詳しくお伝えします。
最後まで読んでいただけると嬉しいです・・・!


▼設計する人=SEは日本だけ?

「SEという職業は日本にしかない」と言われることがあります。SEとは定義上「システムを設計する仕事」を指します。もしそうであれば、SE(システムエンジニア)ではなく、設計に特化した、SD(システムデザイナー)と呼ぶ方が適切かもしれません。

システム開発は一般的に、【要件定義⇒基本(概要)設計⇒詳細(プログラム)設計⇒製造(プログラミング)⇒テスト】という流れで進みます。日本では、要件定義から詳細設計までを担当するのがSEの役割であることが多いです。

一方、海外では要件定義はビジネスアナリストが、基本構造の設計はシステムアーキテクトが、詳細設計からプログラミングはソフトウェアエンジニアが担当します。

・ビジネスアナリスト
業務分析の専門家。課題設定、業務フローの構築と要件定義を行った上で、課題解決のためのシステム設計や企画を担う。
・システムアーキテクト
顧客やビジネスアナリストが描いているビジネスモデルを実現させるために、どのようなシステム構成にしていくかを考える役割を担う。PG(プログラマ)やシステムデザイナーとは違った、多種多様な知識やスキルが必要。
・ソフトウェアエンジニア
設計からプログラミングまでを一貫して行う。効率的な仕組みを作るために、プログラミングに関して専門的で高度な知識やスキルが必要。

▼日本のSEの役割

システム開発において、SEの役割は非常に重要です。SEはクライアントのニーズを正確に把握し、それを実現するためのシステムを設計・開発します。例えば、「どのようなシステムを開発すべきか?」や「自分が作りたいシステムはどうすれば実現できるのか?」といった疑問に対して、SEは具体的なシステム構成、必要なソフトウェア、リリースまでのアプローチなどを提案します。

SEは、以下を考慮しながら最適な開発方針を選びます。

■目的と使い方に合っているか?
 例えば、幅広いユーザーに提供したい場合はWebシステムが適していますし、特定のデバイスでの操作が重要ならモバイルアプリが適しています。
■スケールしやすさと安全性
 たくさんの人が同時に使っても大丈夫か、安全対策がしっかりしているかを考えます。
■開発の手間とコスト
 システムを作るための時間やお金がどれくらいかかるかを、使えるスキルや予算に合わせて決めます。
特に、利用シーンやセキュリティ要件を踏まえてシステムの種類と開発方法を選定し、実現可能性を評価することがSEの重要な役割です。

▼日本のSE=業務SE?

また、日本のSEの中には、要件定義や基本設計、詳細設計の一部を担当する「業務SE」と呼ばれる職種も存在します。業務SEは、要件定義に基づいて業務で必要な機能を洗い出し、画面や帳票の設計、データベースのテーブル定義設計を行います。
しかし、システムアーキテクトが担うセキュリティや性能要件、利用シーンを踏まえたシステムの種類や開発手法の選定、データ量を考慮した物理設計や、ソフトウェアエンジニアが担う詳細設計・プログラミングの領域について、業務SEは担当しません。

余談ですが、お客様にSEの定義を伺ったところ、「顧客の要件を正確に仕様に落とし込める人こそが、良いSEだ」とのことでした。上流工程において、お客様に確認いただく成果物が一致していることから、SEが業務SEと同一視されるケースがあるようです。


▼OTSSのSE育成方針

当社では、SEとして必要なスキルを段階的に習得できる育成方針を持っています。

入社後はまず、プログラマとしてソフトウェア開発の基礎を学びます。その後、データベース設計やアーキテクチャ設計、UMLなどの設計手法を実務の中で身につけていきます。また、インフラエンジニアやネットワークエンジニア、セキュリティスペシャリストといった専門家と協力し、システムの構築や設定作業を経験します。

SEには技術的なスキルだけでなく、コミュニケーション能力やプロジェクト管理能力も求められます。当社では、これらの能力を磨くために定期的な研修やセミナーへの参加を推奨しています。クラウド、AI、DevOpsなど最新の技術トレンドにも対応できるよう、継続的な学習を重視しています。
DevOpsは、ソフトウェア開発(Dev)と運用(Ops)を一緒にして、効率よくシステムを作ったり改善したりするための考え方や方法です。
また、SEにはお客様の要件を正確に理解し、それをシステムに落とし込む能力が重要です。相手の課題を見極め、適切なコミュニケーションを取ることで、要件を的確に引き出します。もし、作り終えた後に「こんなの使えない」と言われてしまったら、すべてが水の泡です。

近年では、POC(概念実証)を通じてお客様の意向を確認する開発実績も増えています。また、アジャイル開発が普及し、開発の途中で方向性を微調整しながら進める手法が一般的になっています。これにより、大きな失敗を未然に防ぎながら経験を積むことができます。
アジャイル開発は、システムで必要な機能を少しずつ作りながら、定期的にユーザーの意見を反映して改善していく開発手法です。

以上がシステムエンジニア(SE)の役割と、当社のSE育成方針についての説明です。システム開発の現場で活躍するSEを目指す方は、ぜひ参考にしてくださいね!

最後まで読んでいただき、ありがとうございます。
また次の記事でお会いしましょう。
(よければスキ、フォローをお願いします・・・!)


いいなと思ったら応援しよう!