システム開発を依頼するために知っておくべきこと
弊社コムセントはお客様のご依頼に応じて、最適なシステムをご提案、ご提供することを主なサービスとして提供しています。
システムにはさまざまな種類があります。例えば、オンライン上で物を販売するためのECサイトや無形物を販売するサイト、月額で課金してオンライン上のサービスを利用することができるサイト、情報を発信しその情報を管理するためのツール、業務効率化を図るための社内向けシステムなど多岐に渡ります。
特に弊社の場合は、Web技術を中心としたシステム作成を得意としています。もし、システムを作りたい、となったときにどうすれば良いのか、弊社での流れを中心としながら説明させていただきます。
システムを作るとは?
システムを作りたい、となることはほとんど少なく、何らかの問題の解決(業務効率化)や売上機会の増大(販売、広告、告知)が先にあり、それを達成するためにシステムを作成する、というのが本来でしょう。システムを作るのが目的ではなく、あくまでも何らかの目的を達成することが、本来の目的です。
システムを利用して目的を達成したいが、どのように依頼するべきか分からない、というのは、あるかと思います。大企業などでは常に何らかのシステムが動作しているため、それを開発した会社様などに依頼をすれば良い、ということになりますが、付き合いのあるシステム開発会社が無い場合などは、一括見積りサービスなどに作りたいシステムを明記することで、システム開発会社と繋がることができます。もちろん、独自にシステム開発会社を検索し、Webサイトなどを見て、問い合わせる手もあるでしょう。もし悩んだり、システム会社を探している場合は、是非弊社コムセントにお問い合わせください。
システム開発の流れ
システムを開発する場合、一般的には以下のような流れを取ります。ほとんど文書を作成する部分が多くなります。
- RFP:提案依頼書と呼び、依頼者側で作りたいシステムの内容、期日、要望などを明記した文書です。大規模なシステムを開発する場合であれば必須になりますが、作成しなくても大丈夫なケースは多いです。もっとも文書にしないまでも、何となくまとめておいた方がブレが生じないため、有効です。
- 要件定義:システムで達成したいことを明確にするための文書です。一般的に依頼者とシステム制作会社が話し合いをしながら策定します。作成するシステムの内容や要望、必要な機能、既存システムとの連携などについて明記していきます。ここで作成するシステムの機能がほぼ決定します。
- 基本設計:システム会社が作成します。業務フロー図(システム化後の業務フローを図にしたもの)、システム機能設計図、画面設計、帳票設計、テーブルファイル設計、インターフェイス設計、非機能要件などを文章にまとめたりして、システムの基本部分を文書化します。
- 詳細設計:システム会社が作成します。実際の機能をどのように処理させていくか処理内容を文書化したものです。画面の詳細な項目や帳票の詳細な項目も文書化します。
- 実装:システム会社が作業します。基本設計や詳細設計に基づいてプログラミング言語等を用いて開発を行ないます。
- 単体テスト:システム会社が作業します。それぞれの機能がきちんと動作するかを確認します。
- 結合テスト:システム会社が作業します。機能は複数が連携して1つの目的を果たすことが多いため、それぞれの機能がきちんと動作して、目的を果たせるかどうかを確認します。
- サーバー等構築:システム会社が作業しますが、データ移行などで依頼者が協力することは多々あります。システムを動作させる環境を用意します。既存のシステムがあってデータを移行する場合はこの段階で行ないます。
- 依頼者確認:依頼者側で基本設計や詳細設計に基づいてシステムがきちんと構築されているかを確認します。この段階で「ここを変更したい」となると、期間が大幅に延びる可能性があります。
- 完了、保守:システムは完成すればそれで終わり、というケースは少なく、サーバーの運用にはメンテナンスがある程度必要となったり、システムの改修をするケースもあります。これを保守と呼んでおり、システムを稼働している限りはほぼ必要です。
多少システム会社によってフローは異なりますが、ほぼ同じような流れになります。
システム開発は家づくりと同じ
システム開発の場合、ある種、家を建てるのと変わらないように作成していきます。家も設計図を作って、建てていくというのは想像できると思いますが、システム開発も同様の手段をとっていくのが一般的です。
開発手法にもよりますが、後から機能の変更が生じると期間内に終わらなくなります。家を建てるときに後から部屋の大きさを変えたい、とかが出てしまうと非常に難しいというのは分かるかと思います。
例えば、洗面所の場所を変えたい、というのがでてきた場合、建てる前であれば融通が利きますが、一度建て始めてしまうと、配水管なども変わったり基礎が変わったりするため、想像以上に費用が掛かってしまうことがあります。
システム開発も同様に、基礎となる部分を作ってから、細部を作っていくことが多く、後からの変更は比較的大変なことになりがちです。できる限り要件定義の段階で必要な機能を挙げておくことが重要です。
要件定義段階
システムを作成するときには、現在のワークフローをそのままシステムに持ち込まない方が良いケースも多々あります。少しワークフローを変えるだけで、より省力化、効率的になるケースもあるため、現在のワークフローをそのまま活かさず、これを機会に変更する、という考えも必要になります。
要件定義の段階では文章が中心となるため、実物を見ないと分からない、という方もいらっしゃるでしょう。システム会社にもよりますが、プロトタイプと呼ばれる、機能を疑似体験できるような仕組みを作って、画面を見つつ機能を確認し問題が無いか見ていく方法もあります。
要件定義はシステム会社によっては文章をきちんと残さないケースもありますが、作成するシステムの機能に齟齬が生じていないか、不足は無いかなどを確認する意味でも作成し、依頼者、システム会社同士で過不足が無いように確認できるようにしておくべきです。後で言った、言われていないなどの水掛け論を防ぐことができます。
システム会社は基本的に、依頼者の会社で行なわれている業務や業界についてはほとんど知識がありません。そのため、当たり前や常識が通じないこともあるため、業務フローなどを擦り合わせていくことは重要です。メールやTeamsやSlackなどのチャットツールを通じて、テキストデータとして残しておくのも大事です。
システム作成の失敗
良いシステム(=使い勝手も良く、効率的。または売上機会が増えた)が常に作成できるとは限りません。概ねシステム導入の成功率は30%~50%程度と言われています。失敗している例が多いわけですが、そのほとんどが「要件定義」段階での摺り合わせ不足に起因している、と言われています。
依頼者はシステム化したい部分を社内でコンセンサスを取り、システム会社と話しつつ、網羅できるように機能やフローを詰めていくことが重要になります。ここをシステム会社に任せっきりにしてしまうと、結果として使いづらい、使えないシステムが誕生してしまいます。
基本設計、詳細設計
要件定義を元にして、システムを作るための仕様書を作成します。仕様書は大規模なシステムであれば基本設計と詳細設計に分けて作成されます。弊社の場合は、要件定義と基本設計を仕様書という文書にしてお渡しすることが多いです。
この段階では、システム会社が中心となり、要件定義を元にして、どのように実際のシステムに落とし込んでいくかを文章にしていきます。基本設計では、システムの流れを明示することが多いため、依頼者の業務フローに適しているか(または業務フローの変更をして対応が可能かどうか)、要望している機能を満たしているかなどを確認します。システムなどの複雑なことは分からない、という方もいるかと思いますが、分からない部分などは説明を求めるなどして、解消しておくことが重要です。
システムは一般的に融通が利きません。ここには社内向けのメモを書いても大丈夫そうだな、と思っていたとしてもそこがメモ欄などとして扱われていない限りは、想定外のところでお客様に表示されてしまったり、システムエラーを招く可能性があります。必要な機能と必要な画面要素が一致していることを確認することが大事です。
基本設計段階では、さまざまな文書がシステム会社によって作成されます。もちろん作成するシステムの内容によっては全て作成しないこともありますし、一部だけ作成しないケースもあります。
業務フロー図(システム化後の業務フローを図にしたもの)、システム機能設計図、画面設計、帳票設計、テーブルファイル設計、インターフェイス設計、非機能要件などがありますが、業務フロー図、画面設計、帳票設計などは実際に利用するフローや画面イメージ、帳票の内容が出てくるので確認が必要です。
詳細設計は、実際の機能をどのように処理させていくか、処理内容を文書化したものです。また、画面の詳細な項目や帳票の詳細な項目なども確定します。
これも作成するシステムの内容によっては全て作成しないこともありますし、一部だけ作成しないケースもあります。
システムを作成する場合、全てを文書化すると膨大な文書が作成されます。これは依頼者とシステム会社で齟齬が無いかを確認し、処理内容に誤りが無いかなどを確認するために作成されるものです。もちろんこの文書の作成にも時間が掛かるため、費用もその分掛かってしまいますが、後の改修や変更などを考慮した場合、大規模なシステムであれば作成は必要でしょう。
依頼者の心得
システムを作成したい場合、依頼者は「目的」が何であるかをきちんと認識しておくことが重要です。また、システムは期間と費用さえあれば、ほとんどのことはできます。ただし、それが使いやすいかどうかを勘案し、どれが「必要」であるか、を正しく判断することが求められます。
システムを構築する場合は、想像よりも費用が嵩むケースが多いでしょう。出せる費用が決まっているのであれば、その費用の中でどこまでできるかを把握し、必要なものだけ「残す」という判断も必要です。
システムを依頼する場合は見積りを取ることになると思いますが、そこでどの内容までカバーされているかを確認することは必要です。見積り取得の段階では、システム会社側は詳細が分からないまま見積りをしているため、金額に大きな振れ幅が生じています。要件定義まで進むとほぼ変動の少ない見積りになることが多いです。どうしても分からない場合は、安く済ませたい、という意向も働くと思いますが、カバーされている内容や、技術力、提案内容などを勘案して、依頼するシステム会社を選んだ方が失敗が少ないでしょう。
やりたい目的がありましたら、是非弊社コムセントにご連絡ください。
CTO/sekiguchi