「システム開発」という言葉は知っていても、実際に行うとなるとどの様な流れで進めていけば良いのか、具体的にはよく解らない点も多いですよね。従来のシステムでは時間がかかり過ぎたりクライアントから満足を得られない場合は、新たに思いきったシステム開発が必要になります。
自分は営業だからシステムについては専門の部署や幹部が考えるもの、とあまり気に留めずに仕事をしてきた人もいるでしょう。しかし、顧客と直に接して仕事をしている以上は、システム開発がどのような流れで行われているのか知っておく必要があります。
しかし、「どの様なシステムが最適なのか」、また「どの様な相手にシステム開発を依頼すれば良いのか」、「そのコストは」と考えて行くと悩みは尽きません。これを読めばシステム開発のイロハが理解できるだけでなく、具体的なビジョンもつかめます。ぜひ参考にして日々の業務に活かしましょう。
そこで今回は、システム開発とは何か、その基本の流れや発注に際しての注意点、さらに専門用語についても詳しく説明します。
システム開発ってなんだろう
システムとは、「業務を効率的に行うためのさまざまな仕組み」を意味します。具体的には業務管理、顧客管理、在庫管理などが挙げられます。
例えば、受注した商品をどの倉庫からどの運送業者に依頼してクライアントに届けるか、その後の売り上げ計上業務や在庫数の把握、クライアントごとの売り上げ金額、クライアントが新規の場合は、他のおすすめ商品の案内など、を一元管理する仕組みが整っていれば、より次元の高い業務が効率よく推進できます。
システム開発を依頼する前に準備しておくこと
システム開発は内製化できれば理想ですが、実際には高度な専門知識やスキルが求められるため、それが可能な会社はごく一部に限られます。とくにITを活用する場合は、専門業者に外部委託するのがベストでしょう。
そして上手く業者に依頼するには、「何をどの様にしたいのか」というシステム開発の明確な意図や目的を準備し、その仕様が相手に確実に伝わるように適切なツールや資料を備えておく必要があります。具体的には、従来のシステムの流れがひと目で分かるものやどの部分の仕様が現状に即していないのか、などを説明するドキュメントを使ってプレゼンできるようにしましょう。
さらに内容や求めるグレードにもよりますが、システム開発には相当の費用がかかるため資金も当然必要です。ここで安さだけを理由に業者を決めるなど出し惜しみをすると完成したシステムが使えないこともあるので注意しましょう。もちろん、本格的なシステム稼働後も保守・運用費がかかるため、これらを予算に組み入れることも忘れてはなりません。
システム開発の基本の流れとは
では、次から、システム開発が実際にどのような流れで行われるのか、基本的なプロセスについて具体的に解説しましょう。
システム開発に入る前に、システム開発を外注する場合はまず業者を選定する必要があります。すでに懇意にしている業者が存在する場合は必要ありませんが、一からの場合は、該当するシステムの開発範囲を決定のうえ、提案依頼書(RFP)を用意して候補となる業者を相手にオリエンテーションを行います。
そして、日時と場所を決めてシステム開発業者に集まってもらい、依頼内容を説明したうえで、期限を決めてシステム開発の具体的な方向性や見積もり等を提出してもらいます。費用だけでなく、実績や担当者(経営者)の人柄、何より的を射た提案内容かをしっかり確認して審査します。そして業者が正式に決定したら、ざっくりとした基本契約書の締結を行います。
ここからシステム開発は、大きく3つのステップに分かれて流れていきます。
第1ステップは、要件定義から具体的なシステムの設計までです。要件定義とは、システム開発において何をどの様にしたいのかについて概要をまとめることです。システムの具体的な改変部分を挙げ、その目的達成のために使用する機能やソフトなど専門的な内容に踏み込んで確認します。ここで大まかな方向性や流れに間違いがないように、ユーザーと業者間で認識を正しくシェアするべくすり合わせを行うことが大切です。
第2ステップは、単体テストから納品までです。業者側が内部設計等に従ってプログラムを作成したら、その一つ一つについて単体テストを行います。そしてこれらをすべて合体させて行う結合テストを経て、実際にユーザーが実装させる環境で最終の受け入れテストを行い問題なければ納品になります。
第3ステップは、システムの本稼働と保守・メンテナンスです。システムが納品されたら日々の通常業務の中で意図していた通りのシステムが実装されているかを確認します。ここで一つでも予想外のことが起こったり、不明点、疑問点があれば100%解決しましょう。その後システムが本格的に稼働して問題がないようなら、あとは契約に従って業者に保守・メンテナンスを依頼します。
以上3ステップがシステム開発の基本的な流れになります。なお、当メディア(AIZINE)の運営会社であるお多福ラボでも、システム開発を行っています。さらにシステム開発の流れを詳しく見たい場合は、以下をご覧ください。
システム開発でよく聞く専門用語まとめ
慣れない場合は、いきなり専門用語が飛び出すと戸惑ってしまいますよね。そこで、システム開発でよく聞く専門用語について解説しましょう。
RFP(提案依頼書)
システム開発の目的や解決したい問題点、納期などをA4用紙1枚ほどのドキュメントにまとめたものが、RFP(Request For Proposal)です。ユーザーが作成したRFPをもとに業者側は見積り作成します。
要件定義
システム開発で焦点となる具体的な機能や仕様など、ユーザーが望んでいる大まかな内容をまとめることを意味します。これが固まったら業者側が「要件定義書」を作成して相互に確認します。
外部設計
要件定義で明らかになったユーザーの要求に対して、どのようにすれば実現できるかを業者側がさらに浮き彫りにしていく作業が、外部設計です。文字通り「外からの見た目」を明らかにして行く流れで、使用する機器、インターフェース、画面の操作要領などを絞り込んでニーズを確実にキャッチします。
内部設計
システム内のプログラミングの工程です。この流れはより専門的な領域になるので、業者側に任せることになります。
単体テスト
複数のプログラムが融合してシステムが完成しますが、その前段階として各プログラムが正常に作動するのかを確認する作業です。
結合テスト
各プログラムを繋いで相互に問題なく稼働するかを確認する作業です。
運用テスト
いよいよ本番さながらのテストです。ユーザーが実際にシステムを稼働させる環境で問題なく実装できるのかを確認します。
ウォーターフォール開発
要件定義から最終の稼働段階までの一つ一つのステップの流れを逆戻りせずにすべてクリアーにしながら前に進んでいくシステム開発の方式のことを指します。間違いがないぶん相互に安心できますが、各流れを固めてしまうため柔軟性にかけ、途中で調整し直すなどの融通が利かないという面がデメリットです。
アジャイル開発
要件定義から最終の稼働段階まで、疑問点や問題があれば何度でも繰り返し反復しながらシステムの完成を目指すシステム開発の方式です。完璧主義に走らず、トライ&エラーを前提とする柔軟な姿勢が特長で、結果として最良のものを作っていこうとする手法といえるでしょう。
システム開発を依頼する時の注意点
システム開発を依頼する際に注意しておきたいのは、経費と時間の問題です。システム開発は内容や精度にもよりますが、数百万円単位で経費がかさみます。さらに稼働後の保守・メンテナンスにもコストがかかってくるので、しっかりとした予算編成が必要です。
そして予定外の支出が増えないように、最終の個別契約の段階で疑問点はすべてクリアーにしましょう。支払方法や時期、不測の事態に陥った時の費用負担義務や補償の有無、契約解消条件などについては、くどいほど確認することをおすすめします。
また、システム開発が完了するまでには、数カ月単位の時間を費やすことが珍しくありません。そのため、あらかじめ余裕をもって計画を立ててから発注することが肝要です。
さらに、最終的な運用テストの際に、今一度疑問点や不明点がないか複数の目で確認するように心掛けましょう。その作業を曖昧にしたまま最終の支払いを済ましてしまうと、あとで問題が生じた時には追加料金が発生するリスクがあるので、要注意です。ひどい場合は訴訟問題に発展することもあります。
互いの意思疎通が欠如していると、「言った言わない」とか「聞いた聞いていない」などのトラブルが生じて、理想のシステムに到達するのが困難になるリスクがあります。会合の議事録、やり取りしたメールや文書、指示書の類いはすべてそのまま残しておくなどの対策も忘れずに行いましょう。
システム開発後にするべきこと
システムの本稼働が始まったら、しばらくは細心の注意を払って稼働状況をつぶさに見守る必要があります。システムの誤作動や想定外のトラブルが起きることが珍しくないからです。そして対処できない事態が生じた場合には、どのような流れで解決するのか、業者との間で連携の仕方を綿密に打ち合わせしておくことをおすすめします。
そこで万が一追加したい機能が生じた場合でも、この段階で修正することは極めて困難なうえ、業務に大きな差し障りが生じます。よほどの致命的な問題でなければ一旦はその流れで稼働させながら仕切り直して、別途解決法を模索、検討しましょう。
また、いざシステム開発が完了して業務内で実装していくなかで、そのシステムを完璧に理解し、イレギュラーな事態にも対応できる人材を必要数確保、育成することも大切です。実効性のある社内研修やトラブルを想定した訓練を行ったり、不足する場合は外部からそれに見合った人材を採用して補充するのも良いでしょう。
お多福ラボでも、システム開発におけるサポートも行っています。一度システムを開発を依頼したい場合は、まずこちらからご相談ください。
さて、今回はシステム開発の意味や発注の基本的な流れ、注意点、また専門用語などについて詳しく説明しました。
システム開発とは、「業務の効率化や最適化を図るための新たな仕組み(システム)作りと、その仕組みが会社の利益に資するように実装させること」を意味します。
システム開発を依頼する前には、「何をどの様にしたいのか」という明確な意図や目的を準備し、その仕様がシステム開発業者に伝わる資料などを備えておくことが必要です。決して業者側に丸投げしないように注意しましょう。
システム開発は委託する相手によってそのでき具合は千差万別です。そして依頼するユーザー側がその流れのポイントを心得ていてこそ、理想の完成形に近づきます。そのためには、的を射たRFPの作成により最良のパートナーを見つけだし、その後のシステム開発の流れが順調に進むべく意図的に促していく必要があります。
システム開発の基本の流れは、大きく3つのステップを経ていきます。第1ステップでは、要件定義を行ったうえで、外部設計、内部設計を済ませ、個別契約書を正式に交わします。第2ステップでは、単体テストを確実に行ってから、システムを納品します。第3ステップは、システムの保守・点検・メンテナンスです。
さらに、システム開発でよく聞く専門用語についても紹介したものを中心にその意味を理解して覚えておくと、実際に交渉が始まってから慌てなくて済むでしょう。
システム開発を依頼する時の注意点は、経費と時間に余裕をもっておくこと、不明点や疑問点を残さないこと、また、業者側とのコミュニケーション(べンダーマネジメント)を怠らずにしっかりと行うことです。システム開発を行って良かった、と両者が心から思える後味の良い終わり方を目指しましょう。
システム開発後にするべきことは、本稼働後の不測のトラブルやシステム障害への柔軟な対応です。何が起こるか分からないため、いざという時のために、業者との連携方法を確立しておく必要があります。また、新たなシステムを完璧に理解し、イレギュラーな事態にも対応できる人材を社内研修や実地訓練によって育成し、必要に応じて新たな人材を採用するなどの対応策を施すことも忘れてはなりません。
良きシステム開発を遂行するためには、自らがそれに見合った良き依頼者である必要があります。今より確実に効率の良いシステム開発ができるように、ぜひ本記事で解説した流れの要点を理解して実践しましょう。