
システム開発の一連の流れを把握したい
自分がどの工程やってるのかわからない
つぎはぎの仕事している感がして疲れる
と言った不満に答えます。
この記事を読むことで、システム開発の全体プロセスを理解できシステム開発プロジェクト全体感を養うことができます。全体感を理解することで、次に何がやってくるのか、今のタスクが構造に同関連するのか分かるようになり、相当な手探り感を解消できます。
✔記事の信ぴょう性

SE+社内SE歴15年以上。現大手EC運営企業の管理職 兼 社内SE講師。
グローバル(15か国以上導入)へ大規模ERPシステム開発・導入を実施。
2018年よりSE講師として100名弱の部下・生徒の教育を実施。
システム開発の全体工程(プロセス)とは?
システム開発のプロセスは、基本は
業務要件を洗い出し、
システムを開発し、
テストを実施し、
運用を開始する
です。
このプロセスを、IT人なら知らない人がいない、IPA(独立行政法人 情報処理推進機構)が共通フレームでまとめてくれています。
*IPAとは、日本におけるIT国家戦略を技術面、人材面から支えるために設立された、経済産業省所管の中期目標管理法人たる独立行政法人です。
出所:WIKI
PAは、絶え間なく進化するIT社会の潮流や技術動向を広い視野で捉え、社会課題の解決や産業の発展につながる指針を示していくとともに、情報セキュリティ対策の強化や、優れたIT人材を育成するための活動に取り組み、安全で利便性の高い“頼れるIT社会”の実現に貢献してまいります。
引用元:IPA

IPAはIT社会の動向を調査してくれ、様々な指針・ガイドラインを提供してくれています。システム開発においても、開発のガイドライン、要件定義書のタガイドライン等様々ドキュメントが揃っており信頼性もあるのでよりどころに出来ます。
IPA URL: https://www.ipa.go.jp/
システム開発の工程(プロセス)を体系化
IPAの提供する共通フレームワークを使い開発プロセスを解説します。
システム開発の主要プロセス
・主ライフサイクル 8プロセス
・支援ライフサイクル 9プロセス
・組織に関するライフサイクルプロセス 7プロセス
・その他プロセス 2プロセス
に分かれています。(以下図参照)

様々なプロセスが乱立し大変そうと思うかもしれません。
今回本講座で解説したい内容は、この主ライフサイクルのプロセスにフォーカスし理解をすることで、システム開発のプロセス全体像をおさえることが出来ます。
システム開発の主要ライフサイクルプロセスとは?
、以下の主ライフサイクルに絞って解説していきます。

しかし、少々分かりずらいので以下の様に変更し本システム開発ステップアップ講座では解説していきます。
ポイントは、
・企画フェーズを企画と要求定義に分けた点
・取得・供給を分かり易い契約に変更
・開発も開発とテストに分類
・契約の変更管理を変更合意
に変更しました。

経験上、本記事独自の下のプロセスの方一般的で業務でも良く見かけるプロセスです。
このシステム開発のプロセスだと大分なじみのある工程名称や並びでピンとくるのではないでしょうか。
システム開発の各工程(プロセス)の概要

それぞれのプロセスは、どんなプロセスなのかを解説していきます。
企画プロセス
事業施策・戦略に基づき事業・システムの企画を実施します。この工程では、業務が主役となり、システム開発に必要な業務改善やビジネスプランを検討する段階です。
社内SEの場合、基本はビジネスユーザーからの企画を受け取る側になります。しかし、近年はITのビジネス貢献度の拡大により、業務ユーザーしか企画しないという働き方ではなくなってきており、社内SEがどんどん企画にチャレンジする時代に突入していると感じます。
要求定義プロセス
事業企画に基づき、システム要求を整理していきます。この際に、ポイントは、システム要求のみならず、業務改善・ビジネス変更に必要なシステムに関係のない要件も一旦洗い出す点です。
良くある失敗に、システム開発のプロジェクトはシステムを作れば全て解決すると間違えて理解されるケースがあります。
あくまでシステムは、業務改善・ビジネス施策の一部分を担うものです。
契約プロセス
システム化の検討と並行し、必要ベンダーと秘密保持契約や基本契約の準備をします。契約に関しては、【システム開発の契約3種3形態を正しく把握しよう】の記事で詳しく解説しています。

契約変更管理プロセス
取り決められた契約もプロジェクトの状況により変更が必要です。その場合には、契約変更を実施するプロセスが必要になります。
要件定義プロセス
業務要件に基づき、システム化の要件を洗い出すフェーズです。ここがシステム開発でもっとも重要なプロセスになります。
このプロセスでは、業務から頂いた要件を実際のシステム化の要件に固めるだけではなく、システム開発プロジェクト全体のプランニングする工程としても重要です。
以下の記事で要件定義の進め方を解説していきます。

開発プロセス
社内SE・情シスにとって、システム開発プロセスは、ベンダーの作成する成果物のレビューやスケジュール・進捗管理を行います。要件定義で定めた要件次項に基づき、その機能を基本設計→詳細設計とすすめ、ベンダー(内制の場合もあり)に実際にコーディングをしていただきます。
テストプロセス
ベンダー・社内SE・業務それぞれの観点で定められた要件に基づきテストを実施し品質を確認します。
一言にテストと言っても、実際には、テストも様々な種類が存在します。
・単体テスト(UT:Unit Test)
・内部結合テスト
・外部結合テスト(CT:Combined Test)
・システムテスト(ST:System Test)
・インフラテスト
・性能テスト
・運用テスト
・受入テスト(UAT: User Acceptance Test)
それぞれの、テストで目的が違います。それぞれのテストで担保すべき観点を理解し進める必要があります。各テストの詳細は以下の記事で詳しく解説しています。

保守・運用プロセス
出来上がったシステムを業務で活用するために、日々のメンテや障害時の対応等を役割を決め実施します。
システム開発工程(プロセス)を事例で解説

誰でもイメージが付きそうな案件ということで、【ごみ収集】をテーマにシステム開発のサンプルをひねり出します。
例えば、【ごみ収集をネットで予約できるシステム構築】を例に使い解説します。
企画プロセス
ビジネス・業務視点でお客様の課題、解決したい事を洗い出します。
課題設定
【夏場に家庭でごみ回収まで滞留するごみは、衛生上よくなく病気の原因になる】
とします。

要求プロセス
要求:
・家庭で主婦の方が、手軽にスマホからごみ回収を予約して改修に来てもらえるようにしたい。(このサンプルでは、コスト・売上度外視とします)
・ごみ回収担当が、リアルタイムにごみ回収依頼をナビで受け取り回収できるようにしたい。
と仮定します。
要件定義プロセス
上記の要件に基づき
ユーザー目線: ①スマホでごみ回収を予約・確認・キャンセルできるアプリ開発
ごみ回収業務目線:②ごみ回収車のナビに予約ルートが連動するナビ
③ごみ回収に向かう事を通知する端末・仕組み
④ごみ回収のTATや生産性を管理・レポート機能
開発プロセス
上記システム要件に基づき①~④の開発を実施します。パッケージ導入であればその導入を行います。
テストプロセス
出来上がった仕組をシステム目線と業務の目線(ユーザー含む)でそれぞれテストしていきます。システム開発のテストには、以下の様に様々な目的のテストが存在し、それぞれの目的に沿った内容をテストを実施していきます。
システム開発のテストで品質を担保
開発ベンダーがテスト
・単体テスト(UT:Unit Test)
・内部結合テスト
・外部結合テスト(CT:Combined Test)
社内SE・情シスがシステムをテストし仕様定義にそって開発できているかを確認
・システムテスト(ST:System Test)
・インフラテスト
・性能テスト
・運用テスト
業務ユーザーにて最終的にシステム利用開始可否を受入を実施
・受入テスト(UAT: User Acceptance Test)
→今回の例でいうと、実際のごみ収集の作業員として、更に一般ユーザーの目線で企画部門が受け入れを実施します。
2-2 システム開発の全体の流れ・工程の理解で手探り感を解消しようまとめ
本記事で登場したシステム開発の工程(プロセス)は以下です。
・企画プロセス
・要求定義プロセス
・要件定義プロセス
・開発プロセス
・テストプロセス
・保守・運用プロセス
・契約プロセス
・変更合意プロセス
上記のプロセスの概要をまずは腹落ちさせ、次からの講座で各プロセスの詳細の情報・勘所を学んでいきましょう。
次の記事
