AIも活用し、難しかったことも普通にできることを目指しています。
過ぎたるは猶及ばざるが如し、余裕を持ってバランスの良い方法を用いましょう。
SEの方は、当サイトを見て、現在進行中のプロジェクトの再評価を試みるのもいいでしょう。
システムエンジニアは、顧客の要望を聞き出し(ヒアリング)、それを基にITシステムの企画・設計・開発・テスト・運用までを一貫して行う技術者です。
具体的には、画面レイアウトやデータベース構造を設計し、プログラマーへ指示を出し、プロジェクト全体の進行を管理する「上流工程」を主に担当します。
システムエンジニアの作業は、単なるプログラミングではなく、クライアントのニーズをシステムという「形」にする全工程を指します。
システムエンジニアはドキュメントを作成します。
昔は手書きでドキュメントを作成していましたが、今は 便利なツール がありますので生産性を高くできます。
<注意点> 上流工程(要求分析・要件定義とシステム設計)に不備が多いと、後戻りが多発し、工期の延長と費用の増大を余儀なくされます。
クライアント(または社内ユーザー)の「やりたいこと」を聞き出し、システムに必要な機能や性能を具体化する工程です。
業務フローを理解し、抱える課題(「手作業が多すぎる」など)を抽出する。
リプレース案件の場合、リバースエンジニアリングによる情報収集が必要です。
「何を作るか」を明確にし、機能、セキュリティ、処理能力などの仕様を文書化する。
ステークホルダーと最終的な成果物を確認し、契約を確定する。
要件定義書を元に、システム全体の構成(設計書)を作成する「上流工程」の核心部分です。
画面レイアウト、帳票デザイン、連携システムなど、ユーザーが見る部分を設計。
データ定義(DDL)を含むシステム内部を疎結合モジュールで構成し、堅牢なシステムを設計。
プログラマがコーディングできるレベルまで、処理手順、データベース、データ構造(コード一覧など)を細分化する。
設計書に基づいて、プログラマが実際のコードを書く工程です。SEは開発環境の構築指示、進捗管理そして設計書通りに動かない場合の技術的な解決(トラブルシューティング)を担当します。
プログラマが作業しやすい開発環境を作る。
必要なデータを効率的に保存する構造を作る。
スケジュールが遅れていないか、品質は確保されているかを監視する。
完成したシステムが要件定義書や設計書通りに動作するか確認する工程です。
最小機能単位の動作確認(開発者が行う)。
連携する機能同士が正しくデータを受け渡せているか確認。
実際の運用に近い環境で、性能や機能が満たされているか確認。
システムを本番環境へ移行し、安定稼働を維持するプロセスです。
サーバー環境へのソフトウェア設置。
サーバーの負荷やエラーの監視。
障害発生時の原因特定と修正。
法改正やビジネス変更に伴う機能追加・修正。
学習や経験が必要となるが、誰が担当しても同等品質のシステムを作ることが可能。
次に何をすべきかが明確になり、手戻りが減る。
各工程の成果物が明確になり、不具合を防ぎやすくなる。