【システム開発】要件定義における7つのジレンマと解決策
先日、地方の知人から相談を受けました。
「システム開発をしたいのだけど、近くにできる会社がない。全くないとは言わないのだけど、パッケージの導入なら任せてもいいが、新規開発となると不安が残る。距離が遠い企業に発注するとなるとそれもなんとなく心配で」そんな内容でした。
例えば、北海道の企業が東京のITベンダーへシステム開発を依頼するとしたら、どんなリスクがあり、それはどのように解決できるのか、あるいは解決できないのか?
今回は、そんな疑問に対してお答えしたいと思います。
(自分の出身地のため例えにしましたが、もちろん、九州の会社でも四国の会社でも!)
言うまでもなくシステムというものは、ECサイトで商品写真や説明を見て購入できるものでもなく、ましてインスタの写真を見て美味しそうとかカッコいいという理由で購入できるものでもありません。そうなると、紹介頂いた企業でもない限り、頼れるのは相手企業のWEBサイトくらいになってしまいます。
実際は、提案をしてもらうなどしてから発注を決めることになるでしょうが、その前に距離が離れたITベンダーへ開発を依頼しようとした場合に、どのような不安・懸念事項があるのか、そしてそれらに対する解決策は存在するのか?ということについて解説をします。
※このコラムの内容は動画で公開しています。Youtube版はこちらをご覧ください。
遠くのITベンダーへ依頼する際の不安・懸念事項
遠くのITベンダーへ依頼する際、不安となる点として以下のようなことが挙げられるのではないでしょうか。
- コミュニケーションの難しさ
- 納期や品質の不安
- 対応速度の問題
- 文化的・言語的な違い
- コストの増加
順に補足していきます。
コミュニケーションの難しさ
真っ先に思い浮かぶのはこれではないでしょうか?距離が遠いと、対面での打ち合わせが難しくなり、誤解や意思疎通のミスが発生しやすくなります。これにより、開発プロジェクトのスケジュールの遅延だったり、期待した成果が得られないリスクが高くなるのではないか、という懸念です。
特に開発期間が長いプロジェクトの場合は、問題なく開発が進んでいるのかどうかも不安になることがあります。実際、この問題は距離に依存するというよりは、気軽にやり取りできるのか、できない気がするという精神的な問題だと思います。
納期や品質の不安
距離があるため、ITベンダーの現地状況や技術力を直接確認しにくく、納期や品質に対する信頼性が低下する可能性があります。さらに、リモートでの開発では、ITベンダーの作業状況を細かくチェックするのが難しいと考えるでしょう。
対応速度の問題
システム開発中や運用開始後にトラブルが発生した場合、距離があることで迅速な対応が難しくなる可能性があります。これにより、問題解決に時間がかかり、業務に支障をきたすリスクが高まります。
文化的・言語的な違い
地理的に離れている場合、文化やビジネスマナー、言語の違いがコミュニケーションに影響を与えることがあります。これにより、双方の期待や要求がズレるリスクがあります。
同じ日本人同士なんだから、そんな心配無用と思われるかもしれません。ここに具体例がなく申し訳ないのですが、感覚的に仕事のスピード感の違いなどを感じることもあるために挙げてあります。
コストの増加
直接的な交通費や出張費用の増加だけでなく、コミュニケーションの効率低下やプロジェクト管理の難しさにより、間接的なコストが増加する可能性があります。また、発注先が東京や大阪だと高いのではという漠然とした不安もあることでしょう。
不安の解消手段
ではこれらの不安に対して、どのような解決手段が考えられるのでしょうか?
コミュニケーションの難しさを解決する方法
コミュニケーションの課題は、適切なツールの活用と、定期的、そして頻繁なミーティングの実施で解決できます。ZoomやTeamsなどのビデオ会議ツールを活用し、定期的にオンラインでの打ち合わせを行うことで、実際顔を合わせるに近いコミュニケーションが可能になります。
また、チャットツールやプロジェクト管理ツールを使って、リアルタイムでの情報共有やタスク管理を行うことで、誤解やミスを軽減することができると思います。ちなみに当社では、プロジェクト管理ツールはBacklogやRedmine、チャットツールはSlackを主に使用しています。プロジェクト管理ツールの利用については、遠隔か否かを問わず、利用されるようになってきました。特にコロナ禍を経て、ネットでのミーティングが日常化してきており、周りが直接会わなくても済む方法でのコミュニケーションに慣れてきたことも追い風になっています。
ただし、システム開発の全ての工程において、100%ネットミーティングで済ますことの是非はあります。
納期や品質の不安を解決する方法
納期や品質に対する不安を軽減するためには、プロジェクト開始前に詳細な要件定義を行い、納品物の品質の基準を明確に設定しておくことが重要です。
また、開発途中でも中間成果物のレビューや、テストフェーズでのチェックを徹底することで、品質の確保に努めることができます。ベンダーとの契約には、品質保証条項を盛り込み、万が一の場合の対応策も事前に合意しておくと安心です。
対応速度の問題を解決する方法
トラブル対応のスピードを確保するために、契約時にSLA(サービスレベルアグリーメント)を設定し、対応時間を明確にしておくことが有効です。
また、緊急時には現地にエンジニアを派遣できるような体制を整えるか、地方のパートナー企業と連携することで、対応力を強化することができます。リモートでの障害対応が可能な仕組みを導入することも、迅速な対応を実現するために役立ちます。
文化的・言語的な違いを解決する方法
文化・言語的と言いましたがつまり、コミュニケーションギャップのことです。地方の文化というよりも、企業文化として捉えてください。企業文化の違いは地域に関係なくあります。
コミュニケーションギャップを防ぐためには、プロジェクト開始時に双方の文化や期待値についてざっくばらんに話し合い、共通の理解を築くことが大切です。地域特有のビジネスマナーやコミュニケーションスタイルだと思われるものがあるならば、相手に説明しておくことも有効です。
コストの増加を解決する方法
コストの増加を抑えるためには、事前に予算を細かく設定し、各種費用の見積もりを詳細に行うことが重要です。さらに、オンラインでのやり取りを増やし、交通費や出張費を削減する工夫も考えられます。また、プロジェクトの初期段階でコスト管理のルールを明確にし、予算オーバーのリスクを最小限に抑えることが求められます。
地域によるエンジニアの単価の違いがコスト増につながる不安についてですが、実際、東京のエンジニア単価は高いのは事実です。しかし、どこの地域であろうと、単価だけで見積もりの妥当性は決まりません。単価が高くても生産性が高い、単価が低くても生産性が低いこともあるため、一概に高い・安いという評価ができないのでトータルで判断してください。
遠くのITベンダーへ開発を依頼しても大丈夫?の結論
結論を申し上げると、「距離が遠い企業に発注するデメリットはゼロではないものの、要点を契約で抑えておけば、特に問題ない」というのが私の結論です。
実際のところ、当社は東京ですが、他の地方都市にもお客様はいらっしゃいますし、それが問題になっていることはありません。これがうまくいっている理由の一つは、大きなシステム開発の場合、必要な時は直接お会いしてヒアリングや説明をしていることがあると思っています。特に要件定義においては、直接会って打合せをすることを重視しています。
まとめ
大切な打合せは直接会う、それ以外はツールを駆使し、コミュニケーションを密に、進捗を定量的に管理できるようにしておき、中間成果物のチェックを行い、契約をしっかり行えば距離が離れていることが問題になることはないでしょう。
距離があることによるデメリットは確かに存在しますが、それ以上に得られるメリットも多いです。しっかりとした準備と対応策を講じて、遠方のITベンダーとのプロジェクトを成功に導いてください。