本記事は受託開発の会社選びで押さえておきたいポイントや開発手法について述べています。特に受託開発の大きな流れを把握したい発注者の方に参考にしていただきたい内容です。是非ご参照ください。
1. 受託開発とは?
まずは「受託開発」という用語について説明したいと思います。IT用語辞典では、次のように述べられています。
受託開発とは、顧客から製品の開発を請け負うことであり、IT業界では顧客からソフトウェア開発を受注することを意味します。
受託開発は、社内で開発チームを立ち上げて開発する”自社開発”と対比して説明されることが多いです。(しばしば、ラボ型に対する請負型開発の意で使用されることもありますが、これに関しては後述します)なぜ受託開発が必要とされるのかというと、既に世の中にあるシステムで対応できない部分を自社専用に作る必要があるからです。
ここで、会社員の方にとって身近な勤怠システムを例に挙げて説明しましょう。勤怠システムは既に多くの市販パッケージソフトが販売されています。
しかし、市販のパッケージソフトにはユーザー数に制限があったり、あなたの会社のセキュリティ規則を満たしていないかもしれません。その場合、あなたの会社専用の勤怠システムをつくる必要があります。ここで、自社で開発するのか、開発会社に外注するのかを選択することになります。
2. 受託開発のメリットとデメリット
受託開発のメリットは、効率的に開発を進められることです。受託開発では最初からソフトウェア開発の専門家に依頼するので、自社開発のように人材採用や教育などが必要ありません。また、基本的には開発会社がリードして設計、進捗管理をするので、発注側にソフトウェア開発の経験がなくても安心です。
受託開発のデメリットは、コストが高くなることと、工程・仕様変更が容易ではないことです。開発会社に依頼すれば、当然コストも高くなります。また、開発前に仕様、リリース日を決めて契約した後に開発がスタートします。したがって、契約後のメンバー調整や仕様変更、スケジュール変更は再見積が必要になるので柔軟で迅速な対応は期待できません。
3. 受託開発の事例
世の中のIT企業は大きくWeb系とSIerという業界に分けられます。
Web系受託開発の例は、みなさんに身近なSNSや通販サイト、動画配信システム、情報共有サイトなどのWeb上のアプリケーションが挙げられます。Java、Ruby、Go、PHPやPythonなどのプログラミング言語がよく使われます。Web系の特徴は、比較的エンジニアの年齢層が若いことや、Slack等のコミュニケーションツールが普及していること、自社開発を行っている企業が多いことです。
SIerによる受託開発の例は、銀行や証券系のシステムなど、BtoB向けのソフトウェア開発がメインです。SIerは設計、開発、運用、ハードウェアを一括で請け負って、さらに子会社や下請けのソフトウェア開発会社が業務を請け負う形になります。したがって、SIerは実際のコーディングは担当しないケースも多いです。SIer業界の特徴は年齢層が少し高いこと、服装もフォーマルでお堅いイメージを持つ人も多いようです。
4. 受託開発の会社選びから支払いまで
実際に受託開発で開発会社へ依頼することが決まった後、どのような流れになるのでしょうか。トラブルを防いでスムーズにシステム開発を進めるために、発注側も最低限に流れを理解しておくことが必要です。
4.1. 見積を依頼する会社選び
おすすめは、信頼できる人に開発会社を紹介してもらうことです。あなたの取引先の企業や知人にシステム開発経験がある人がいれば、その人に会社の評判や開発の進め方、コミュケーションの方法、予算感などを聞いてみましょう。もし相談できる人がいない場合は、まずインターネットで検索してみましょう。インターネット上にシステム開発の会社選びに特化したサービスがあります。
発注ナビは予算、地域、デバイス、得意分野などからあなたに合った開発会社を見つけることができるサービスです。無料で電話相談ができます。実績や社員紹介、口コミが掲載されているので、そちらも参考にしてみてください。
アイミツはBtoBの発注先を探すことができるサービスです。システム開発に限らず幅広いカテゴリの会社が登録しています。複数の会社に一括で見積・資料請求ができます。要件が固まってない段階でも電話またはフォームから相談が可能で、ヒアリングをもとにあなたに最適な会社を見つけます、
4.2. 予算を決める
複数の会社に見積をとった結果、あなたの作りたいサービスにはどのくらいの費用が必要なのかおおまかに把握できたのではないでしょうか。しかし、この時点ではあくまで概算の費用です。欲しい機能を取捨選択して予算を固めていきましょう。
4.3. 発注先を決定する
これまでに関わったいくつかの候補から発注先を決定しましょう。選択のポイントは、いくつかあります。
まず、紹介ルートです。あなたはどうやってその会社を見つけましたか?実際にその会社へ発注したことのある同業者からの紹介であれば、信頼度は高いです。もし、インターネット上でのやりとりしかしていないのであれば、実際に担当者に合うことをおすすめします。その時に、決められた予算内でどこまで対応してくれるのか、連絡のレスポンスは速いか、あなたの理解度に合わせて説明してくれるのかに注目してみましょう。また、類似実績の有無も確認しましょう。もし類似サービスを開発した実績があれば、その経験からより良い提案をしてくれるかもしれません。
4.4. 契約を結ぶ
発注先と契約を結びます。契約の際は、費用、納期、支払い条件、瑕疵担保責任などについて開発会社と交渉して決定しましょう。
4.5. システム開発
プロジェクト開始後は、以下の工程で進められます。
基本設計⇒詳細設計⇒開発(プログラミング)⇒テスト⇒運用
この期間は、特にに担当者と頻繁に連絡して、進捗状況を確認することをおすすめします。開発会社にすべて丸投げして、出来上がりを見ると全く違うものが出来上がっていた、なんてことがないようにしましょう。
4.6. 成果物の確認と支払い
システムが納品されたら、支払いの前にあなたは契約時の仕様がすべて満たされているか確認する必要があります。しかし、長期にわたるプロジェクトの場合、最後にすべて確認するのではなく短期スパンで確認することをおすすめします。そうすることで大規模の手直し作業を防ぐことができます。後でトラブルにならない為にも、この作業は迅速かつ丁寧に行ってください。できれば、一人やるのではなくダブルチェックをすると良いです。
5. 受託開発とアジャイル開発
受託開発の開発手法にウォーターフォール型とアジャイル型があることを知っていますか?
- ウォーターフォール型:要件定義、設計、開発(プログラミング)、テスト、運用、保守の順にトップダウンで進めていく手法。工程ごとにドキュメントが作成されて発注側が確認した後に実装されるので、仕様変更は簡単ではない。
- アジャイル型:仕様変更があることは当然ということを前提に、1週間~2週間のスパンで動作可能なソフトウェアをいったん作り上げ、それをレビューして、作り上げたソフトウェアを改善する作業を繰り返していく手法。
受託開発は要件どおりに作ることが重視されるので、ほとんどの場合ウォーターフォール型が採用されます。しかし、受託開発でもアジャイル型の開発は可能です。実際に。受託開発も自社開発も100%アジャイルで開発している企業が存在します。アジャイル型はウォーターフォール型のデメリットを克服する魅力的な開発方法に思われるかもしれません。ただし、アジャイル型が向いているケースは限られていますので、あなたのプロジェクトがどちらの開発手法が向いているか検討してみてください。
アジャイル型が向いているケース
- 要件がはっきりしていないため、作りながら決めていきたい
- 短期スパンで仕上がりをレビューしたり、こまめに開発会社と連絡することができる
- エンドユーザーからフィードバックをもらって、開発に活かしたい
アジャイル型の開発に興味があれば、開発会社に相談してみましょう。
6. まとめ
受託開発では信頼できるパートナーを見つけることが何よりも重要です。システム開発に関して専門的で細かいことを知る必要はありませんが、流れや選択のポイントは押さえておきましょう。