失敗する確率を大幅に減らすために開発依頼の仕方とフェーズごとのチェックポイント

失敗する確率を大幅に減らすために開発依頼の仕方とフェーズごとのチェックポイント

エンジニアブログ

投稿日:2020/08/15 | 最終更新日:2020/09/11

昨今ではDX(デジタルトランスフォーメーション)の流れで、手動で行っていた業務のIT化が進める生産性の向上などが、様々な会社で行われています。

ただし、ほとんど全てのITシステムはエンジニア、つまり、「人」が構築します。つまり、業務をITシステム化を行う際に、失敗か成功化のカギを握っているのは、まさにITシステムを構築する「人」にあると言えます。

ITシステム化を行う際に、どのような「人」にお願いをし、どのような依頼を行えばいいのか、本記事で具体的にご紹介していきます。

システム開発の担い手とそれぞれのメリット・デメリット

システム開発は主に、自社開発と委託開発2種類に分類できます。

自社開発とは、自社で雇用しているエンジニアでITシステムを開発していくことです。委託開発とは、外部のSIerなどにシステム開発を委託することです。

自社開発と委託開発では、具体的にどのような違いがあるのでしょうか?

自社開発のメリット

まず、自社開発のメリットについて説明していきます。自社開発のメリットは以下の2つです。

コミュニケーションがとりやすい

自社内のエンジニアで開発ができるため、日々のコミュニケーションがとりやすく、委託開発と比べて認識の齟齬などが起きにくい、という利点があります。システム開発では、認識の齟齬があるまま開発を進めてしまうと、後に修正が必要になり、大きな手戻りになってしまうことがあります。

自社開発では密なコミュニケーションを行うことでこのような手戻りを防止できます。また、万が一何か開発中にトラブルが発生した場合も、同じ会社内なので根回しが容易になります。

コストを抑えやすい

委託開発の場合は、外部のエンジニアの人件費+委託先の利益で契約を行います。そのため、1人当たりの人件費は自社開発の倍以上になることも少なくありません。

一方で自社開発の場合は、人件費のみになるので大幅にコストおさえることができます。

自社開発のデメリット

次に、デメリットについてみていきます。

柔軟に開発要員を変更できない

例えば、納期が迫っているため大至急10人、新たに要員を増やしたい、といった事態が発生したとします。その場合、完全に自社開発を行っている場合は採用活動から始める必要があります。

このように、自社開発では柔軟に人員を減らしたり、増やしたりすることは難しくなります。なお、システム開発は設計やテストといった様々な工程がありますが、各工程で必要となってくる人員数は異なっています。そのため、急な増員が発生する事態では大きなデメリットです。

人員のスキル不足に直面する可能性がある。

システム開発には様々なITスキルが必要になります。もし、自社のエンジニアが、システム開発に必要なITスキルが十分になかった場合、スキル不足ということになり、そのままシステム開発プロジェクトのリスクになります。

委託開発のメリット

次に、委託開発のメリットについて説明していきます。委託開発のメリットは以下の通りです。

システム開発に熟練している

委託先の会社は大抵SIerなど、システム開発案件を数十、数百と並行して担当している会社に委託することになります。そのような会社は、当然システム開発のノウハウが豊富です。システム開発には様々なイレギュラーが発生しますが、委託先企業のノウハウで乗り切れることがあります。

要員を柔軟に調整できることが多い。

例えば納期に間に合わせるために人員の増強が必要になった場合、委託開発の場合は比較的早く人員を補充できるケースが多いです。なぜなら委託先の会社のメンバーや取引先など、抱えるエンジニアの数が多く、アサインできる人材がすぐに見つかるためです。

また、例えばアサインされた人員がスキル不足でも、すぐに代わりの人員を探してアサインする、といったことも可能なことがあります。したがって、納期に間に合わないリスクや、スキル不足により開発が遅れてしまうリスクを大幅に軽減することが可能です。

委託開発のデメリット

次に、デメリットについてみていきます。

人件費が高い

委託先の会社に支払う人件費は、委託先の会社の利益を上乗せして支払うため、人件費が高くなることがほとんどです。ただし、自社開発の場合、人員を補充する為に採用活動や人材育成をすることを考えると、TCO(総保有コスト)の面で優れている、と考えることもできます。

コミュニケーションがとりにくい

会社が異なるため、自社開発に比べてコミュニケーションがとりにくい場合が多いです。そのため、開発中にどうしても齟齬が生じてしまうことがあります。システム開発プロジェクトが始まる前に、定例会を開催することを明記するなど、定期的なコミュニケーションの仕組みを構築しておく必要があります。

開発委託先の種類

自社開発と委託開発について、メリットとデメリットを見てきました。自社に優秀なエンジニアがいる場合を除き、大抵の場合は委託開発によりシステム開発を進めるほうが、リスクを少なくシステム開発が進められることがわかります。

では、委託先にはどのような種類があるのでしょうか?

国内SIer

国内のシステム開発企業に委託するケースです。金融系システムが強い企業や、通信系システムが強い企業、GCP,AWSなどの特定のクラウドに関して豊富にノウハウがある企業など、企業の強みは様々です。

国内であるだけに情報収集がしやすいため、どの企業にどのような強みがあるかを見極めて委託をすることができます。

海外SIer

いわゆるオフショア開発になります。時差を利用し開発を依頼できるため、24時間365日の開発体制を敷くことができます。また、ベトナムやエストニアといった、物価が低いがITスキルが高い国のSIerを利用すると、低コストで高い技術を持ったメンバーのアサインが可能です。

ただし、外国のため、基本的には英語によるコミュニケーションが必要です。

フリーランス

近年ではフリーランスのエンジニアが増加しています。クラウドワークスやLancersなどの仲介業者で募集をかけることで、エンジニアの確保が容易です。

1人あたりの人件費も自社開発並みに安くすることが可能です。ただし、スキルの見極めについては大変重要です。

委託開発で失敗しないように気を付けること

委託先の種類やメリット、デメリットについてみていきました。実際に委託開発を行うにあたり、気を付けるべきことはどのような点なのでしょうか?

開発を始める前に気を付けるべきこと

開発を始める前には、委託先の選定などのタスクがあります。どのように委託先を選定し、どのようにシステム開発プロジェクトを進めていけばいいのか、記載します。

失敗の可能性を下げる「委託先の選び方」とは?

委託先の選定には、様々な優先的な軸を決めたうえで選定を行います。例えば、コストを重視したい場合はフリーランスや海外のSIerを選ぶといいでしょう。コミュニケーションを重視しつつ、コストも考えたい場合は、国内SIerにメインでシステム開発をお願いし、スポットでフリーランス等に依頼する、という体制も可能です。

このように自社には、何が大事なのかといった優先軸を明確に決めることが大事です。コストと優秀な人材や管理の手間などはトレードオフになりますので、それを理解した上で自社の優先軸を決めましょう。

失敗しないために確認して欲しい「提案書のポイント」

委託先を選定する際に、提案依頼書(RFPとも呼ばれます)を自社側で作成し、委託先に渡します。委託先はRFPをもとに提案書を作成しますが、この提案書にも見るべきポイントがあります。

具体的には以下のポイントを見るといいでしょう。

  • 課題認識に齟齬はないか?
    システム開発は、現状の業務の効率化など、業務の課題解決を行うためにスタートします。課題認識の段階で認識にずれがあると、その後の工程でも認識のずれがあり、システム開発プロジェクトが失敗に終わってしまう可能性があります。そのような事態を避けるためにも、提案書で、委託先の会社と自社の認識の齟齬がないかを確認しましょう。

  • 委託先の開発体制は十分か?
    委託先企業の責任者や窓口が明記されているかを確認します。窓口については予算や契約などを管理する責任者と、開発の責任者が分かれているなど、相談したいときの相談先が明確になっているといいでしょう。また、どのタイミングで定例会を行う、などの会議体の提案もあるかどうかを確認します。

失敗しないために一番確認して欲しい「要件定義」

委託先が決まったら、要件定義に入っていきます。ここでは、システム化の範囲や、目的、スケジュール、システム化で実現すべき効果について明確にしておく必要があります。

特に、範囲やスケジュールについては、トラブルのもとになるため、委託先企業と自社間で明確に合意しておく必要があります。システム開発プロジェクトにおける重要なイベント(例えば、システム切り替え予定日など)についても必ず明記しましょう。

また、システム開発プロジェクトの進捗具合によっては、スケジュールなどの変更が考えられますが、変更時にも必ず委託先企業と合意の上で変更を行うことが必要です。

開発中に気を付けるべきこと

実際に開発が進んでいく中で、プロジェクトが失敗しないためにどのような点に気を付ければいいかを記載していきます。

委託先とのコミュニケーション

何よりもまず重要なの点は、委託先とのコミュニケーションです。システム開発プロジェクトにかかわることから、他愛のない情報共有まで、密にコミュニケーションを行う必要があります。

プロジェクトかかわる情報共有は、定例会などを設けてもれなく双方向に行うようにするといいでしょう。また、定例会以外の場でも、お互いに必要であればコミュニケーションをとる機会を設けることは大切です。委託先はどうしても自社に対して委縮してしまうので、コミュニケーションを取りやすい環境づくりが何よりも大切です。

イレギュラー発生時の対応

システム開発プロジェクトには、イレギュラーはつきものです。例えば、「機能が追加になり大幅に遅延が見込まれる」、「設定ミスをしてしまった」、といった、システム開発プロジェクトの進捗に直接的な影響が出るイレギュラーがあります。

また、メンバーが食中毒などでしばらく会社に来れなくなり、開発が止まる、といったイレギュラーも発生する場合があります。その場合は、責任者間の情報共有や対策を迅速に行うことが重要です。

また、委託先へ対応案や改善案の提案をお願いしながら、自社でも対応案を考え、互いにディスカッションをして対応をしていくといいでしょう。

受入時に気に気を付けるべきこと

委託開発では、外注先から納品したドキュメントやプログラムをテストや検証、審査などを行う、受入のフェーズが必要です。ドキュメントの内容に過不足がないか、構築され、納品されたシステムは正常に稼働するか、要件を満たしているか、といった観点で受入を行いましょう。

一度受け入れをしてしまうと、委託先に追加対応が望めないケースがあります。したがって、入念に受入をおこない、検証結果は社内で共有するといいでしょう。

開発の終了後に気を付けるべきこと

システム開発プロジェクトが完了たら、何をすればいいのでしょうか。具体的に記載していきます。

定期的なコミュニケーションの場を作る

システム開発のプロジェクトが終わっても、委託先の企業とは定期的に連絡を取り合うといいでしょう。年末年始のあいさつだけでも構いません。

理由は以下の通りです。

  • トラブルになった場合に連絡が取りやすい
    システムを稼働させておくと、システム障害でシステムが停止したり、設計ミスなどでシステムが突然停止したり、といったことがあります。

  • ほかのシステム開発案件があればアサインができる
    もしほかのシステム開発案件が開始され、再び委託先企業を探す必要が出た場合に、付き合いのある会社であれば委託先を探すコストや社内手続きが楽な場合があります。

まとめ

システム開発を外部の会社に委託する際に気を付けるべきことを記載していきました。まずは委託先の企業の強みを見極めて、システム開発プロジェクトとマッチするか、見極めて依頼をするようにしましょう。

また、開発中は密なコミュニケーションを心がけ、認識の齟齬や手戻りが生まれないようにし、イレギュラーが発生しても協力して対処することが大切です。

  • 開発を始める前
  • 開発中
  • 受入時
  • 開発の終了後

のそれぞれのフェーズでシステム開発を失敗しないために意識すべきポイントは異なります。開発が終わるまでフェーズごとに気を引き締めましょう。そして何より、委託先企業とはいい関係を築き上げ、システム開発を進めていくことが一番大事なことです。


弊社トップゲートは Google Cloud Platform™(以下 GCP) のプレミアパートナーとして、専門的な知見を活かし、 GCP 上でのシステム構築からアプリケーション開発まで、ワンストップでご対応することが可能です。クラウドネイティブな環境構築から、新規サービスや PoC、テスト環境などスモールスタートとしての IT インフラとアプリケーションの組み合わせた開発などお客様ごとのご要望に合わせた環境を実現します。お見積もりだけでも対応可能です。

開発の詳細はこちら

また、弊社トップゲートでは、Google 技術を利用したアプリケーション開発に関するコンサルティングサービスを行っております。ぜひ詳細はリンク先にてご確認ください!
コンサルティングの詳細はこちら

過去の開発事例紹介資料も、公開中!
ご興味ある方は、ぜひDLしてみませんか?
開発事例紹介資料をダウンロードする

記事を探す

GCP のメリットを最大限に活用しよう!

GCP・G Suite のご相談・
お見積り依頼はお気軽に
TEL.03-5840-8815
お問合せフォーム TEL.03-5840-8815