こんにちは!
最近、お客様やパートナーより、
「システム開発をお願いしたいけど、どのように進めていけばいいの?」
というケースが増えてきました。
そこで、今回は、一般的なシステム開発の進め方と当社の工夫についてお伝えします。
まず最初に、一般的なシステム開発の進め方を解説したいと思います。
規模の大小によって異なるものの、一般的にはウォーターフォールモデルと言われる開発プロセスに沿って進められることが多いです。
ウォーターフォールモデルは、おおまかにわけると、各工程ごとに以下の様になります。
では、具体的にどのようなことをするのでしょうか?また、お客様(発注側)の立場になった場合、どのような作業やアウトプットが必要になるのでしょうか?
各工程をフェーズごとにまとめて解説していきます。
要件定義フェーズでは、いわゆるシステムに求められる要件を洗い出す工程になります。
開発規模にもよりますが、要件定義フェーズはその後の工程と大きく性質が異なりますので、契約形態やお見積りが分かれるケースが一般的です。
システムの企画立案が進むと、まず最初に行うのは、「基本契約書」の締結になります。
システム開発の各工程を進めていく際は、フェーズによって見積や契約形態が分かれることがありますので、予め各工程共通の基本契約書を作成し、締結します。
★お客様が必要な作業、アウトプット
・基本契約書の法務チェック
次に行うのは、お客様が求めるシステムへの要求をまとめる作業になります。
ここでは、開発を行うシステムに対してお客様のビジネスで何が必要か?や、ビジネスモデルをベースに各オペレーションをどうしたいか?を言語化、可視化していきます。
★お客様が必要な作業、アウトプット
・お客様がシステム上で実現したいビジネスモデルと、それに関連する情報
・お客様がシステム上で行いたいオペレーション(運用)と、それに関連する情報
要件定義は、お客様との要求定義をもとに、システムに何が必要なのかをまとめる工程になります。
一般的には、
といった情報をまとめ、要件定義書を成果物として提示します。
★お客様が必要な作業、アウトプット
・処理フローの確認作業、問題点や懸念点の洗い出しとフィードバック
要件定義フェーズで、システムの開発範囲(スコープ)が明確になりましたら、開発フェーズに進みます。
開発フェーズは、主にプログラミングやネットワークの構築を行って、実際にシステムを組み立てていく工程となります。
設計工程では、主に2種類の作業を行います。
★お客様が必要な作業、アウトプット
・外部設計やデザインの確認作業、問題点や懸念点の洗い出しとフィードバック
プログラミング以降の工程では、設計情報をもとに実際にプログラミングやネットワーク構築を行います。
開発環境によっては、お客様からもご覧になれますので、画面等を操作しながら改善点等を洗い出すことができます。
この工程で要件や設計の変更をご要望される場合、修正の影響が少ない場合を除いて、次フェーズ以降の工程や保守フェーズで対応する形になります。
★お客様が必要な作業、アウトプット
なし
開発会社側でテスト工程が終わったら、最後は受入テストになります。
受入テストでは、お客様側で実際に運用して問題ないか?をチェックしていただく工程となります。
受入テストで運用上問題が発生した場合は、前の工程同様に修正の影響が少ない場合を除いて、次フェーズ以降の工程や保守フェーズで対応する形になります。
受入テストが終われば、無事リリースとなります。
★お客様が必要な作業、アウトプット
・運用を想定したテストデータの準備
・システムに必要なコンテンツ(画像、テキスト)
従来の開発プロセス(ウォーターフォールモデル)では、工程が進むほど以下の様な問題点が発生します。
上記は、昨今の実際の開発現場でも頻発しており、現場のSE(システムエンジニア)を悩ませています。
最近では、ウォーターフォールモデルの問題点を解消すべく、アジャイルという開発手法をとるシステム開発会社も増えてきています。
アジャイル開発は、端的に言えばウォーターフォールを細切れにしたものです。
できるだけ開発範囲(スコープ)を小さくして、ビジネスの変化に可能な限り対応しようという狙いがあります。
当社もまた、従来のウォーターフォールモデルではなく、アジャイルといった開発手法をベースにしています。
ただし、アジャイル開発にも以下の様な問題点があります。
そこで、当社では、以下の様な取り組みを行っています。
システム開発の初期段階で、システムをとりまくビジネス環境を十分に把握しないまま開発を進めてしまうと、システムの全体像や目的があいまいのまま工程が進んでしまいます。
場合によっては、お客様のご要望を十分にかなえられないケースも出てきます。
そこで、当社では、システム開発の初期フェーズにおいて、システム開発のロードマップを作成し、システムの将来像をお客様と共有するようにしております。
当社は、初期フェーズの要件定義の後に進める開発範囲(スコープ)をできるだけ細分化し、開発途中における要件や設計の変更に対して柔軟に対応しやすい体制を組むようにしております。
昨今、お客様のビジネスを取り巻く環境は、以前にも増してよりスピーディに変わっておりますので、そういった環境の変化にいち早く対応できるシステム開発を心掛けております。
さらに、要求~要件定義の中で、実際に画面や操作イメージがわきやすいプロトタイプ(試作品)の開発を、可能な限り行うようにしています。
といったメリットがあります。
「システム開発のゴールは、どんなイメージなんだろうか?」
「システム開発に要した費用を、本当に回収できるのだろうか?」
「システム開発の途中で、ビジネス環境が変わったときに柔軟に対応できるのだろうか?」
といったご懸念点を解消することが可能になります。
このように、システム開発は、非常に工程が多く長い道のりに思えるかもしれません。開発の現場では、システムを取り巻くビジネス環境を十分に理解せず、失敗している開発プロジェクトが多いのもまた事実です。
当社は、このようなプロジェクトの反省を踏まえ、
システム開発だけでなく、ビジネスパートナーとして想いを一緒にカタチにする
ことを最重要視しております。
もし、システム開発をご要望の方は、ぜひお気軽にご相談ください。