システム開発のはじまりって結構ふわっとしていることありませんか。
なんとなくシステム開発がはじまりそうな雰囲気だけれど、不安なほどいろいろ見えていないことが多い状況。
そんなふわっとした状態から開発の方向性を見出していく作業をおこなうのがシステム企画フェーズ。
だから開発の第一フェーズは要件定義ではなくシステム企画なのではないかと思います。
高速で要件定義してプロトタイプを作ったほうが良いという考え方もあるかもしれませんが、短くてもいいので企画フェーズを設けたほうが良いのではないかと。
そこでシステム企画フェーズはなんの為にするのか、その目的と意義を言語化してみようと思います。
システム企画の目的
要件定義の前にシステム企画フェーズをもうける、その目的は、
「開発の方向性を決めること」
だと思います。
方向性ってなにかしら?
方向性というのは大きく次の2つを指します。
- なぜ開発するのか(開発の意義)
- どう開発するのか(開発の計画)
これらを考え、決めることが企画フェーズの目的です。
なぜ方向性をきめておく必要があるのか
では、なぜ方向性を決めておく必要があるのかについて。
それはシンプルに、
「価値のあるシステムをつくるため」
です。
システムにはユーザーに便益(ベネフィット)をもたらすことができる価値があって、その価値を要件定義のまえに考えて記録しておくことが重要なのではないかと思います。
そして、価値を最大化できるよう開発の計画をたてて、開発にたずさわるプロジェクトメンバーが向く方向を揃えておくことが大切になります。
方向性を決めるのは、新規で開発するときも、リプレースなどの更新開発をするときも同様で、
なぜ開発するのか?
どう開発するのか?
はかならず最初に考えておきたいところです。
なぜ開発するのか(開発の意義)を考える
システム企画フェーズではなぜなぜ問答をすることを多くして、開発の必要性を深く理解し、言語化することが大切です。
システム開発におけるなぜの源流は、
「なぜ開発するのか?」
ではないでしょうか。
このシンプルな問いに開発意義の大半が詰まっているといっても良いと思います。
開発の意義については、開発するシステムによって大きく異なってくると思います。
たとえば社外(顧客)向けのシステム(サービス)なのか、社内(社員)向けのシステムなのかで異なります。
著名な社外向けシステムの例をみてみましょう。
- メルカリ「消費者どうしが簡単に商品を売買できるプラットフォームを提供するため」
- 楽天市場「テナントが簡単に商品を販売できるオンライン上のモールを提供するため」
- AWS「利用者がシステムインフラを簡単に借りられる仕組みを提供するため」
- ベルフェイス「企業が簡単に電話で商談ができる仕組みを提供するため」
といった例があげられます。
顧客向けのサービスは顧客に価値を提供して、その対価を得ることになります。
そのため新規事業や既存事業の効率化といった文脈でシステムを開発することが多いかもしれません。
その場合、開発の意義は顧客の価値を定義することと同義になるでしょう。
顧客向けにどのような価値を提供する仕組みなのかが開発の意義になります。
なお、すでに市場に受け入れられているサービスの目的を後から考えるのは容易なことですが、じつは開発前にそのシステムの価値を言語化するのは意外にも難しいものです。
とはいえ、意義を考えるための時間の長短は別として、要件定義の前にシステムを開発する意義を言語化しておくことは重要です。
どう開発するのか(開発の計画)を考える
開発の目的が言語化できたら、つぎに開発の計画をたてます。
開発の計画は開発計画書のような文書に落とし込めると良いと思います。
開発計画書の例としては、
- システム開発の背景
- システム開発の目的
- システム概要
- マスタスケジュール
- 実行体制
- 費用の見積もり
このような感じでしょうか。
一方、システム企画フェーズで開発計画を考えるときの論点としては、次のようなものがあげられるでしょう。
- 内製か外注か
- 外注の場合の選定はどうするか
- スクラッチかパッケージ活用か
- アプリケーションの提供形態(アプリ・Web・ほか)はどうするか
- 実装方針(インフラ・フレームワークや言語)はどうするか
上記の論点を開発計画に盛り込んで、開発の方向性が決まってくると、最初のふわっとした状態はだいぶ具体化してくるのではないでしょうか。
なお、企画フェーズを通じてさまざまな情報に触れることによって、はじめの案が変わっていくこともよくあります。
この変化を受け入れていく、つまりブレ幅の大きいフェーズであることも認識して進められると良いのではないかと思います。
まとめ
本記事では、ふわっとした状況から開発の方向性を決めるシステム企画フェーズの目的について考えてみました。
要件定義の前に少しだけでも時間をとって、システム企画フェーズを設けて開発の方向性を具体化できたら良いのではないかと思います。