SIerとの付き合い方

 こんにちは、DX Laboです。とつぜんですが、企業には様々な業務委託者がいます。具体的にはフリーランサー、コンサルタント、ベンダー、SIerなどです。業務委託者の助力もあって、回っている業務もあると思います。感謝です。しかし、例えばベンダーやSIerなどのテクノロジー、開発、ITに関係する業務委託者との付き合い方がよくわからない、どのようにしたらもっと良好な関係を築き、自身の業務を飛躍できるかがわからない、という声をよく聞きます。

 今回は、特にSIerに焦点を絞って、SIerさんと良好な関係を築き成功を収める方策について書きます。今回はSIerのことを書いていますが、デザイナー、コンサルタント、ベンダーなどと付き合う際でも考えるべきことを書いているので、SIerとのお付き合いが無い方でもぜひ最後までお読みください。

 なお、今回のブログでは業種に敬称はつけていません。

SIerとは


 まずSIerとは何かということを説明します。

 SIerとは、システムインテグレーター(System Integrator)の略で、「エス アイ ヤー」と読みます。SIerはプログラミングなどの技術を駆使して、顧客に必要なシステムを作ってくれる業種です。

システムの作り方


 では、「顧客に必要なシステム」は、どのように作られるのでしょう。プログラミングによって動くものが出来る、は、正しい答えです。しかし、「なぜ」→「何を」→「どのように」作るかをその前に考えなければいけません。

 これらをステップに分けて図示するとこのようになります。

 実はプログラミングが必要な「実装」とはただの1工程に過ぎず、それより前にいろいろなことをやる必要があります。そして、上記のプロセスは、ソフトウェア開発のプロセスに限ったものではありません。

例えば…


企画:

・腹が減ったな、何か食べよう

要件定義:

・そろそろ昼なので、昼食を食べたい
・そこそこお腹が空いているからガッツリしたものにする
・家で食べよう
・冷蔵庫に卵と野菜、冷凍庫にご飯を使い切りたい
・一通り調味料や油はあるな
・鍋は昨日の残り物が入っている
・さくっと食事を済ませたいな
・さくっと調理できるのがいいな

設計:

・昼飯を作ろう
・チャーハンにしよう
・冷蔵庫の卵と野菜と、冷凍庫のご飯を使おう
・調味料や油を使おう
・ 鉄のフライパンを使おう

実装:

・(以下調理工程)

 このように、お昼ごはんを食べるときも、同じような工程を経ていることがわかります。

シェフを雇う


 それでは前セクションで挙げた例を用いて、シェフを雇いましょう。僕は料理ができません。

 とりあえずなんとなくシェフさんを雇ってみます。そして僕はお腹が空いていて、なにか食べたいので電話で頼みます。「お腹が空いているので、なにか作ってください」と。あなたがコックだったらどう思いますか?

おそらく:

・いつ? どこで?
・何が食べたいの?
・どんな材料があるの? もしくはなにか持っていく必要がある?
・誰が食べるの?
・どんなシチュエーション?
・あなたはどんな人?

と、なります。「お腹が空いているので、なにか作ってください」と、ただ頼まれても困るわけです。では、どうしたらよいでしょうか。上記に書いてある、企画と要件定義を教えてあげたらいいわけですね。そうしたら、あとはシェフが考えてくれるでしょう。

 身近なもので考えると簡単に見えますが、ソフトウェア開発をSIerに依頼するとなると失敗してしまうことが多いのです。

SIerに仕事を頼むとき


 では、仕事に話を戻して、SIerに仕事を頼むときの話をしましょう。今回は、SIerに仕事を頼むとき、としていますが、工程が少し違うだけでSIerに限らずどんな業務委託でも基本的には同じことが言えるかと思います。

要件定義をしっかり社内で行おう


 もしなにかうまくいかないな、と感じたら「要件定義」ができていないという場合が多いです。そして、多くが要件ではなく、要求や要望を伝えているということが多いです。

 要望、要求、要件はこのような関係性です。

 要望や要求を伝えても、何を作るか? が確定しないことがわかるかと思います。SIer視点で見ると、意思決定をするのは、SIerではなく顧客です。SIerが勝手に作りたいものを作ってお金を要求するわけにはいきません。もし、SIerが相談なく何を作るかを定義している状態があるとしたら、「SIerをコントロールできていない状態」と言えるでしょう。

 しかしこの状態に陥るのも珍しくありません。むしろ、とてもよくあることです。なぜなら「どのように要件を確定したらいいかわからない」ということが起きるからです。

なぜそんな事が起こるの?


 どのように要件を確定したらいいか、の前に、なぜ「どのように要件を確定したらいいかわからない」状態が起きてしまうのかをまとめます。

 というわけで、SIerに「ユーザがどのようにウェブサイトを閲覧しているかをモニタリングしたい」とSIerに伝えます。しかしこれは「要求」です。「要件」まで落ちていません。なぜなら、「ユーザがどのようにウェブサイトを閲覧しているかをモニタリングしたい」と言っても具体的ではないからです。

 あなたは自分の会社のWebサイトをリニューアルするミッションを担う従業員です。リニューアルするときに考えなければいけない観点や、イケてないところを色々まとめて考えた結果、ユーザがどのようにウェブサイトを閲覧しているかをモニタリングしないといけない、と言うことがわかりました。

 もしウェブサイト制作を担当された方なら、ユーザの挙動を閲覧したページを順番にデータで取得して分析したらよい、ということが思いつきます。よって要件に落とすことができます。しかし知らない場合はどうしますか? そもそも知らないので、要求しかできないわけです。よって要件まで落とすのはSIerが担うことになります。

 これが続くと、段々と顧客は「要求」ではなく「要望」を挙げて、SIerが「要件」に落とし込み、設計し、実装する、という構図が出来上がります。これをずっと続けていると、SIerと顧客の関係に「負の依存関係」が発生するわけです。なぜなら、そのような状態になってしまったらもう顧客のシステムはSIerなしでは成立しなくなってしまうからです。

じゃあどうしたらいいの?


 顧客がSIerと一緒になって要件を考える、また顧客側の担当者が要件定義が出来るぐらいの知識を溜めることが重要になります。よく「ベンダーコントロール」という言葉が使われますが、「ベンダーに命令する」(契約形態によっては顧客が直接指揮を執るのは違法なのでご注意ください)とか「ベンダーに要望を伝える連絡係」とか「予算を管理する」という間違った認識をされることがありますが、「ベンダーとともに良いものを作る」というのが、本当のベンダーコントロールという言葉の意味です。

まとめ


 今日のブログでは、SIerとどのように付き合っていくと、そのパワーを最大限に発揮してもらって、自分が必要なものを正確に素早く作ってもらえるかについて解説しました。

要件定義を自分でやるか、もしくはSlerに手伝ってもらいながらやる。SIer任せにしないように気をつける

これが成功のためのキーです。もしとか「どうしたらいいかわからんのだよなぁ……」という事がありましたら、ぜひDX Laboまでご相談ください。