ソフトウェア開発を依頼する前に!知っておきたいIT企業との付き合い方
こんにちは!IXEの古賀です。今回は、ソフトウェア開発を依頼する際に知っておきたいことをまとめました。この記事の目的は、トラブルを防ぎ、より効果的な開発プロセスを進めるために作成しました。これまでの経験則からの意見・アドバイスを中心にしていますので、ぜひ参考にしてください。
なお、読者対象はIT関連企業以外の企業様を想定した内容となっております。
1. ソフトウェア開発会社を選ぶポイント
ソフトウェア開発会社は多く存在しますが、「相性」も非常に大事です。初めて依頼する場合、以下のポイントを評価するようにしましょう。
会社も重要ですが、”実際に担当してくれる人”も非常に重要です。また、最初だけ優秀な方が担当し、実際に開発が始まったらレベル感が下がった人が担当になる、という話もよく聞きます。開発体制を含めて、ミッション完了までの相談をしっかり行いましょう。
- 実績を見る:似た業界やプロジェクトの実績があるかを確認します。自分のプロジェクトに近い経験があれば、スムーズに進めやすいです。
- コミュニケーションスタイル:難しい専門用語をそのまま使う会社や担当者だと辛くなることもあります。最初の打ち合わせで、どれだけ親切に分かりやすく説明してくれるかを基準にしてみてください。私の経験上、依頼者側のレベル感に合わせてくれる方だとユーザー目線が強いように感じています。
- 見積もりの詳細さ:「○○円」とだけでなく、「何にいくらかかるのか」を細かく説明してくれる会社は信頼できる傾向にあります。
- 会社の規模と得意分野を確認する:プロジェクトの規模に合った会社を選ぶことも重要です。小規模なら中小企業やフリーランス、大規模なら大手が向いているかもしれません。「安ければ良い」わけではなく、逆に「高ければ良い」というわけでもありません。期待したゴールを期待した費用で達成できるかを見極めることが重要です。
- アフターフォローの充実さ:開発後のサポートや微調整にどの程度対応してくれるかも重要です。プロジェクトが終わった後にも、改良が求められることがあります。アフターフォローの内容やサポート体制を発注前に確認するのがポイントです。
- セキュリティ意識:情報セキュリティの意識があるかどうかも重要です。自社が求めるセキュリティ水準に合致しているかを見極めましょう。
2. 開発するシステムやソフトウェアの種類を考える
ソフトウェア開発を依頼する際、どのようなシステムやソフトウェアを開発したいのかを明確にすることが大切です。以下に大きく分けた種類を示します。
- 業務システム:企業の業務効率化を目的としたシステム(在庫管理、営業支援システム、顧客管理システムなど)。これらのシステムを開発している会社は大きな会社から小さな会社までありますが、自社が本当に欲しい機能が期待した費用で手に入るかをしっかり見極めることが重要です。トラブルが多いのもこのシステムの特徴です。パッケージを購入する場合も、カスタマイズが可能か、またその費用感を事前に確認することが最もトラブルを減らすために重要です。ソフトウェア品質だけでなく、業務に精通しているかも重要なポイントです。
- Webアプリケーション:インターネット上で動作するシステム(Eコマースサイト、予約管理システム、顧客ポータルなど)。機能はもちろん、速度やデザイン性も重要です。事前にデモサイトを確認させてもらい、見た目や開発レベルなどを確認することが重要です。
- モバイルアプリ:スマートフォンやタブレット向けのアプリ(iOS/Android向けのネイティブアプリ、PWAなど)。モバイルアプリは専門の開発会社が行っているケースが多いです。難易度が高いものもあれば、簡単なアプリもあります。これまでの実績をヒアリングし、実績を重視して依頼することが重要です。
- 組み込みシステム:ハードウェアに組み込まれるソフトウェア(家電やIoTデバイスの制御プログラム)。完全に組込み専門会社が行う領域です。実績を重視しましょう。
システムの種類を明確にすることで、必要な技術やスキルを持った開発会社を選びやすくなります。また、どのような成果物を目指すかを開発会社と共有することも大切です。
3. IT企業の種類と選び方
IT企業には様々な種類があります。例えば、大手のソフトウェア開発会社、中小企業の開発会社、フリーランスの開発者など、それぞれにメリットとデメリットがあります。
- 大手の開発会社:SIerとも呼ばれます。大規模なプロジェクトや、長期間のサポートを必要とする場合に最適です。リソースが豊富で、安定したサービスを提供します。24時間保守など、システムが停止すると被害金額が大きくなる場合は、このような企業に依頼するのが最善です。
- 中小企業の開発会社:柔軟で、価格面でも大手よりリーズナブルです。規模に応じた対応が得意で、個別に寄り添ったサービスが期待できます。反面、担当者がいなくなり保守できなくなる事象も見られるため、体制を整えていただくことが非常に重要です。 ソースコードや開発ドキュメントをしっかり納品してもらい、最悪の場合には他社に依頼できるようにしておくことがポイントです。また、実績もヒアリングして確認しましょう。
- フリーランスの開発者:小規模なプロジェクトや特定のスキルが必要な場合に向いています。コストを抑えられますが、リソース面に不安があることも。弊社IXEもこの領域に属しています。小回りが効きますが、数百人規模の開発依頼は難しいと考えてください。中小企業と同様に、ソースコードやドキュメントの納品をしっかりお願いしましょう。
プロジェクトの規模やニーズに合った開発会社を選ぶことが重要です。大手の会社に数人規模の開発を依頼すると費用が想定の数倍になることがあり、小さな会社に数億円規模の開発を依頼してもうまくいかないケースも多々あります。
4. 複数の見積もりを取る(相見積もり)
ソフトウェア開発を依頼する際には、複数の会社から見積もりを取る(相見積もり)ことが大切です。これにより、提案内容やコスト、アプローチの違いを比較しやすくなります。弊社に依頼する場合でも、これは必ず行ってください。
- 相見積もりの重要性:複数の見積もりを取ることで、市場価格や各会社の強み・弱みが分かります。同じ機能でもコストが異なることが多いため、しっかり比較しましょう。おそらく、一番安い会社と一番高い会社で数倍の見積もり差があることは普通です。高い方が品質や成果が良いというわけではありませんし、安くても期待以上の成果を上げる場合もあります。信頼できるかどうかを見極めて判断しましょう。
- 提案の評価:価格だけでなく、提案内容の妥当性や技術的なアプローチも評価しましょう。価格が安いだけで選ばず、リスク管理や納期の信頼性も考慮してください。
また、予算は余裕を持って計画しておくことを推奨します。例えば、予算100万円の場合は90万円で発注するよう調整し、予算額全額はソフトウェア会社に発注しない方がよいでしょう。信頼できる相手には予算範囲内で調整するなど、腹を割って話すことも効果的です。
5. トラブルを避けるための心構え
開発プロジェクトでは、トラブルや想定外のことが発生するのは普通です。例えば、開発中に新機能を追加したくなることがありますが、それには追加の工数が必要となり、当初の予算や納期に影響を及ぼす場合が多々あります。
大切なのは、開発会社と「透明性のある関係」を築くことです。こまめなコミュニケーションを取ることで、早期に問題を発見し解決しやすくなります。双方が円滑にコミュニケーションを取れる体制を構築することも忘れないようにしましょう。
6. 完了条件の明確化
「完成」という言葉は人によって異なる意味を持つため、完了条件を明確にすることが重要です。
「動作確認が完了した時点で完了」とするのか、「ユーザーが一定期間使用して問題がないことを確認して完了」とするのかを、事前に合意しておきましょう。
この完了条件の定義・認識合わせができていないと、トラブルに発展するケースも散見されます。特に大規模になればなるほど、金額も大きく動くため”必ず”文書化して双方合意しておくことが大切です。
7. 開発後のアフターフォローとサポート
ソフトウェア開発はリリースして終わりではありません。使用中に新たな課題や不具合が見つかることもあります。むしろ、リリース後こそが本番といっても過言ではありません。そのため、開発後のアフターフォローがしっかりしている会社を選ぶことが大切です。
- サポート内容の確認:開発終了後のサポート内容を確認しましょう。問い合わせ対応の時間や、どこまで対応してくれるかといった点も明確にしておくことが重要です。
- 微調整や追加対応:使用してから「ここを少し変更したい」「新しい機能を追加したい」と思うことはよくあります。その際に柔軟に対応してくれる会社かどうかも確認しましょう。ただし、無制限に対応してくれるわけではないので、信頼関係を築きつつ適切な費用を支払うことも必要です。
8. 本音で言うと…開発は「共創」の作業
開発会社に「全てお任せ」でうまくいくことは少ないです。依頼者側の知識や意見も必要です。業務中に得た改善案などは随時共有し、開発状況を見ながら、より良い成果を作り上げるようにしていきましょう。
開発は「一緒に作る」ものと考え、積極的に関わる姿勢がプロジェクトの成功を高めます!発注したから「いい感じになるだろう」と期待するのではなく、ソフトウェアベンダーとの信頼関係を構築し、共創していくことがプロジェクト成功の鍵です。
いかがでしょうか?こうして見ると、ソフトウェア開発がどれだけ”コミュニケーション”や”信頼関係”に依存しているかがわかります。こまめに開発状況を確認し、方向性を修正しながら、双方が納得する形で開発を進めることが重要です。これができれば、長期的に信頼できるパートナーシップが構築できるでしょう。
以上、経験からのアドバイスです。皆様がより良いソフトウェア開発を実現できるよう心から願っております。そして、社会のさらなる発展を祈願します。
弊社の技術記事は、良識のある範囲で断りなくリンクや引用を行っていただいて構いません。