外注先が決められない?システム開発会社の見分け方
こんにちは種市です。
外注してみたいけど、どうやって見極めたらいいかわからない
システムを発注したいけど、営業トークなのか出来る出来るとしか言われない
色々なところに見積もりを取っているけど、正直何で決めたらいいかわからない
社内にITに詳しい人がいなくて、システム開発会社の良し悪しが判断出来ない
これどうやって解決したらいいんだい?
と聞かれることが、しばしばあるので、今回はこちらの質問に答えて行きたいと思います。
システム開発発注のときの3つの誤解
まず、私がこれまで見てきた中でのシステム開発発注に対するよくある誤解/アンチパターンをまとめてみました。
誤解1:とにかく最初だし、安いところにするか・・と値段で選んでしまう
コストも押さえたいし、安いところにお願いしよう。と考える経営者の気持ち、よ〜〜〜くわかります!
が、安いには理由があるのです。
一般的に考えて、良いエンジニアが低単価で稼働するわけがないのです。
安いのには、オフショアを使っているとかフリーランスに依頼しているとか、コストが安いなりに何かしらをトレードオフしている事がほとんどです。
オフショアやフリーランスが悪い、とは一概には言いませんが、求めているシステムを利用イメージから考えてしっかりと作れるエンジニアはそうはいません。
そういった場合、なんのコストが削られていて、どんなリスクが上がっているのかを判断出来ない場合には、安さで選ぶことは控えたほうが良いかと思います。
ここまでのまとめ=>コストを削減しているリスクを自分でヘッジできないのであれば安物買いの銭失いになってしまうのです
誤解その2:印象で選ぶ
営業マンの話し方がわかりやすい、理解しやすい、何でも出来ると言ってくれる
営業マンや社長の対応も爽やかだし、柔軟に対応してくれそうだ、よし発注・・・・・・・・・・としてはいけません
中には、当初の印象通りにスムーズに開発が進むこともありますが、一方で
営業の際には、何でも出来ると言っていたのに、開発が進むと
これは要件外なので追加費用です。
これは当初想定外なので対応できません。
技術的に無理です。
と言われ、費用だけがかさみ、当初イメージしていたシステムの5割しかできなかった、でも費用は3倍だった、ということもよく聞く話です。
開発会社からすると、営業段階では案件獲得のために、色よい返事を死体気持ちもわかりますが、本来あるべきコミュニケーションは
そのシステムを作り、費用対効果が出るのか?
この機能は、本当にいま必要なのか?
どれくらいの費用をかけて作るべきなのか?
この機能は、利用者にとってわかりやすいのか?
などなど、システムを導入することへの妥当性を顧客に突っ込む必要があるのです。
その上で、意義や目的をすり合わせた上で開発をスタートするのが本来あるべき姿なのではないかと思います。
ここまでのまとめ=>システムをいくらでいつまでに作るか?よりも何の為に、誰のために、どういうコスパで作るのか?を発注側からもコミュニケーションしていきましょう。
誤解その3:ITコンサルに任せる
有名企業を渡り歩いている、マネージャー職を歴任している、MBAを持っている、難関資格を持っている
私には専門知識がないから、専門家のコンサルにおまかせしたい!
この気持もよーくわかります・・・!でもやっぱりトラップがあります。
極論でいくと、有名企業で勤務していることや難関資格を持っていることが、システム発注を成功に導くことと、必ずしもイコールではないのです。
飲食業にとっての10万円と製造業にとっての10万円は、インパクトが違うように
業界が違えば、使う用語も違えばビジネスモデルも異なります、もちろん、金銭感覚も異なります。
さて、あなたが雇ったITコンサルは、あなたの業界/ビジネスモデルを理解しているでしょうか?
コスト感覚を理解しているでしょうか?
あいつは、金だけむしる悪徳ITコンサルだと、というトラブルを見かけたことがありますが、実は、お互いの業界の金銭感覚が異なっていた、ということもあります。
なので、ITコンサルに依頼するにしても、あなたのビジネスをどこまで理解しているのか?コスト感覚は揃っているのか?
何を依頼し、何をこちら側で判断するのか、きちんと線引をして依頼をしないと、高いコンサル料のみを支払い続けることになってしまいます。
ここまでのまとめ=>人は信頼しても信用はするな。
それではどうしたらいいのでしょう?
いきなり結論です↓↓
御社に「2つの数字を足すプログラムを作ってください」とお願いしたら、どのように開発が進みますか?
どんな回答が返ってくるかで、判断してみてください
そんな簡単なプログラムを発注するまでも無いんじゃない・・・・?と思ったかもしれません。そうですよね、それが一般的な人の反応です。
でも、ここがシステム開発の難しいところです。
エンジニア的に考えると、上記を満たすシステムを創るにも以下のような質問が必要になってきます。
▼入力情報に関する質問
足す数字は、整数ですか?小数点も含みますか?負数を含むような足し算もありますか?
最大何桁の数字を足しますか?
足すとありますが、例えば、1 + (-3) といったようなマイナスの数字が入ることはありますか?
▼入力環境に関する質問
このシステムは、WEB上で利用するものですか?それとも、アプリケーションとして提供するべきですか?
それともコマンドライン?モバイルアプリ?どのような形で利用したいでしょうか?
このシステムは、複数人で利用しますか?それともお一人だけでしょうか?
▼出力に関する質問
出力形式は、画面に表示されればOKですか?それともCSVで出力しますか?
出力する場合には、桁数でのカンマなどは入れる必要がありますか?それとも不要ですか?
▼異常系に関する質問
もし仮に、”あ”と”う”とか入力されたら、どのようなエラーメッセージを表示しますか?
桁数を超える数値を足されてしまった場合、どのようなエラーメッセージを表示しますか?
▼利用シーンに関する質問
足し算した結果は履歴を残しますか?
足し算を一括で行うなどの利用シーンはございますか?
・・・・はい、ということでご覧の通りたくさんありますね!
一見簡単そうに見えるプログラムでも、システム開発の世界ではこのように多数の考慮/条件が必要なのです。
こういう前提を踏まえた上で、どのような回答をしてくるかによって、開発能力がわかるのです。
たとえば、、
回答1「え、それとっても簡単なので発注いただくまでも無いと思いますが・・・」
仮にこういう回答をした場合、上記の質問を見ているこの読者の方なら、この回答の危うさがよくわかりますよね。
もしかしたら、社内に優秀なエンジニアがいるのかもしれませんが、、フロントがこのような回答をする時点で避けたほうが良いかと思います。
回答2「2つのプログラムを創りたい、とおっしゃいますが、どのような仕様なのか、詳しくおしえていただけますでしょうか?」
少なくとも、システム開発に対して理解がある方であればこのような回答をするかと思います。
ある程度のシステム開発経験をしている/営業経験が蓄積されている会社さんであれば、このような回答になるかと思います。
ただ、、よくよく考えてみてください。
あなたは、↑で書いたような仕様を何の予備知識もなく出すことが出来るでしょうか?
おそらく難しいと思います。
実はこれは、発注側から仕様を出したけど考慮が漏れてしまった場合、その漏れた考慮が追加費用として請求される。というリスクが生まれかねないコミュニケーションなのです。
仕様を一緒に詰めるとか、フォーマットを共有くださるとかそういうフォローがなく、「仕様を聞かせてください」とする会社も気をつけたほうが良いかと思います。
ではどのような回答が来ると良いのでしょうか?
私が思う、ベストな回答は
回答3「2つの数字を足したいとおっしゃいますが、それはどのような背景からそうされたいと考えたのですか?ほしいと思うに至った背景、解決したい課題をおしえていただけますか?」
仕様というのはどこから来るか?それは、何かしらの課題を解決するためにほかなりません。
システムはその課題を解決するための一つの手段であり、目的ではないのです。
トンカチを握れば全てが釘に見える、とはよく言ったもので
システムという概念があるからこそ、システムにとらわれてしまい
実は作らなくて、良い解決策が生まれたりします。
なので、まずはシステムのディテールに入るのではなく、そのシステムをほしいと思った背景/解決したい問題をヒアリング
何を解決するのがゴールなのか、という視点を揃えてくれる動きをしてくれる会社さんは信頼が置けると思います。
基本的にシステムを作るのがシステム開発会社の存在意義なので、作らない提案をすることはかなり抵抗があるのですが
あえてそれを無視して、顧客と寄り添ってくれる開発会社こそ、末永くお付き合いするべきだと僕は思います
あくまでこれは、開発会社の見極め方の1つでしか過ぎません。みなさんの見極めの一つの知識としてお役に立てると幸いです。
この記事が気に入ったらサポートをしてみませんか?