雑文その1 「個人事業主に仕事を頼むってのはどうなんだ!?」

1.個人事業主への発注というのは...

個人事業でシステム開発を生業としている者として一番懸念するのが、
「システム開発を個人へ発注すること自体がどうなんだ!?」
という感覚です。

お客さんの側にこれがあるとハナから勝負にならない面があるので、 こちらの立場としてはなんとかこれを払拭したい思いがあります...が、 自分が客としてものを考える時にも実は同じような感覚があるのです。

ただし、私自身はIT業界に身を置いています。業界内の事情については ある程度は分かった上での話ですので、他業種の方が同じような感覚を 口にするのとは若干その中身が違うような気もしています。

そこで、私自身の目線から考える個人への発注に対する考えを書いてみたいと思います。 長い文章なのでヒマつぶしとして読んでいただければ。

2.明らかなデメリット

明らかなデメリットはあります。
以下のような事柄です。

  1. ハードウェアも含めた一切合切のサポートを一手に引き受けてもらえない
  2. 大きな規模の案件に対応できない
  3. 24時間対応のようなサポートは無理

いずれも実際には「法人 or 個人」か、という事業形態にまつわる事柄ではないのですが、 一般的に言って上のような要件で個人に仕事を依頼することは無理だと思います。

この点については業界にいる私のような人間とそうでない人とで 大きく考えに違いは出ないと思われるのですがいかがでしょう?

3.個人を信用できるか?という問題

個人相手に掛け売りでモノを売るような場合にこういった懸念があるのは当然でしょう。 では逆に個人に発注する場合はどうでしょうか。

この業界では

という流れになることが一般的です。

見積作成までの打ち合わせで頼りないなと思えば発注しなければ良いですし、 納品物が要件を満たしていない場合は検収印を押さなければ良いだけの話です。

発注する側でのチェックポイントはあるので、お金だけ払って成果物がまったく 無いような極端なケースはほぼ無いと思います。

現実には検収や支払の段階でトラブルになるケースはたまにあります。 出来上がったソフトが仕様通りでないために
「あの時に言った(言わない)」
の論争になるケース等です。

ただ、これは契約する相手が法人か個人かには関係ありません。
(現に会社勤めをしている間にもこういったトラブルはいくつか見聞きしていますし)

これとは別に、品質・納期に対するリスクが法人以上に存在しているのは事実だと思います。

例えば発注した相手が無理な量の仕事を抱えこんでしまっているような場合は
「出来上がったモノがボロボロ。結局、納期も大幅オーバー。」
のようなことは十分ありえます。

リソースを多く持っていない分、個人の方がこのような状況になるリスクは高いのです。 それなりの企業規模がある場合に追加の人員を投入して解決できるような場合でも個人ではなかなかそうはいきません。この点は念頭に置いてもらっても良いでしょう。

4.サポート体制に対する不安

案件の規模にもよりますが、法人(特に大手メーカー)と契約した場合は かなり立派な(図1のような)サポート体制図を提示してくれたりします。

(図1)

サポート体制図1

それに対して個人相手の契約の場合のサポート体制はせいぜい下のようなものです。
(図2は当方の場合...)

(図2)

サポート体制図2

図1のような体制があることは状況によっては非常に有効です。

例えば車を購入したような場合がそうです。 車が故障しても部品のストックがあり、修理する工場も持ち込む窓口もある、 という体制は買う側に大きな安心感があります。

この場合、重要なのは体制そのものであり、例えば部品倉庫の担当者が誰であるとか、 工場の修理担当者が誰である、ということは買う側は気にしません。

車のような工業製品の世界では体制に組み込まれた個人が持っているべき スキル・情報が明確で、ある一定水準を満たしていれば顧客が困ることは少ないのです。

一方、これがソフトウェアになると話が大きく違ってきます。
(ソフトウェアと言っても顧客毎の要件に基づいて作成するソフトを指します。 パッケージソフトはこの限りではありません)

早い話が
「作った人間にしかわからない」
事柄があまりにも多いのです。

例えば、気がつくと担当者が変わっていた、というケースがよくあります。

IT業界では退職や転職が多く離職率が高いですし、そうでなくても できる技術者は儲かる案件から引く手あまたです。 いきおいサポートに当てられるのはあまりできない人間だったり、 というのもこれまたよくある話です。

このようなケースで、ソフトの仕様や開発中のいきさつまで含めて しっかり引継ぎしてくれている...という状況はまず期待できないと 考えていただいて良いと思います。

引継ぎが不十分な場合は
「前に言った話なのに...」
という苛立ちをしばしば感じることになります。 逆に十分な引継ぎ時間を取っていればいるで、その分の工数は価格にきっちり計上されているはずです。

ソフトウェアの開発を依頼するのは工業製品を購入するのとは状況がかなり違っているのです。 例えばですが、資産運用を依頼するようなケースに似ているのではないか、と私は考えています。

この場合、担当者の運用スキルそのものが重要ですし、 お気に入りの担当者には継続して担当してもらいたいと思いませんか。
(担当者を変更しない、と謳っている資産運用のCMを見た記憶もあります...)

ソフトウェア開発では仕様そのものや決定に至るいきさつを含めて 担当者個人に蓄積される「知」が占めるウェイトが大きいのです。

これとは別に、もう一つ困る問題があります。

ある法人に自社のソフトウェアを開発してもらった後に、メインの担当者が転職をしたとします。 より好待遇の会社に転職することなどはありそうな話です。

では引き続いて転職先の会社で自社のソフトの面倒を見てもらえるかというとそれは難しいでしょう。 開発元の会社と保守契約などしている場合はなおさらです。

確かに個人の場合でもその当人が商売をたたんだりした場合はサポートが なくなる可能性はあるので、同じような状況は起こりえます。

ただ、体制に基づいてサポートしてもらえる場合も、ことソフ
トウェアに 関してはそれが100%顧客側の利益にならないケースが多々ありうることは 知っておいていただきたいのです。

5.規模に関する幻想

個人に発注する際に気になる点として、いったいどの程度の規模の案件までこなせるものなのか、という疑問があります。

知っていただきたいことなのですが、

の間には興味深い法則があります。

直感的には 「案件の規模が2倍→2倍の人員が必要」
「2倍の人員→開発期間が半分でOK」
のように予想されるのではないでしょうか。

しかしソフトウェアの開発にはこれがまったく当てはまりません。

十分な根拠を持って数式化されるほどの研究はまだされていないようなのですが、 実際に仕事をしてきた感覚からしても上の3つの要素は比例の関係にはないのです。

例えば「画面を1つだけ作成する」という非常に小規模な案件があったとします。

これの見積金額が20万円だったとして、では画面が2つだったら金額は倍かかるか? といえばおそらく倍もかかりません。

開発する上で必要な事柄として
「実際に画面を作成する時間」
があるのはもちろんですが、他にもそれに関わらず必要な作業があるからです。


...等々。

これらのオーバーヘッド分が追加の1画面には必要なくなるので、2倍にはならないと考えられるのです。

では次に、金額にして1000万円規模の案件があったとします。
仮に画面が50あるとしましょう。

同じように規模を倍にして画面が100あるようなシステムの開発は同じように2倍以内の金額でできるのか?

これは逆に2倍をはるかに超える金額を要してしまうのです。
ここが面白いところです。

ここでは前の例の画面数1→2の増加時にはあまり問題にならなかった「複雑さ」という観点が大きな影響を持つようになります。

画面数が1→2の場合に増加する複雑さはせいぜい2倍です。
要素の数が1→2に増えても組み合わせのパターンが2倍にしか増えないからです。

しかし50→100では大きく異なってきます。
(昔に「順列と組合せ」というのを数学で習った方はピンときましたか?)

50のモノから2つを選ぶ組み合わせは1225通りなのに対して、100からの場合は4950通りになります。

このように、規模の増加とともに作成するプログラム間の相互作用を考慮する手間が爆発的に大きくなっていくという特性があるのです。

さらに、このように増加していく規模に対応するためには1人では限界があります。 開発期間にも制限があるでしょうからいきおい人員を増加することになります。

開発メンバーが増加するとメンバー間の調整が必要になりますが、この調整にも同じように組み合わせによる手間の爆発が起こります。

実際、私自身の経験でも受注金額で数千万規模までの案件はせいぜい数人程度で開発していました。

それが、作っているモノだけを見ればせいぜいその2倍程度の規模しかなさそうに 見える案件では金額がいきなり数億円規模になり、開発の最盛期には20人も投入されたりしていたのです。

逆に、ある一定の規模を超えるまではソフトウェアの開発にかかるリソースはゆるやかにしか増加しない、とも言えるわけです。

私自身、世の中の案件の大半は数人程度で開発できる規模のものだ、という実感があります。 この感覚はこういったことと関係しているのでしょう。

結論として、案件の規模と開発にかける人数があるしきい値を超えると開発費用が 爆発的に増えるのだ、ということを覚えておいていただきたいと思います。

つまり、同じ金額をソフトウェア開発に投入する場合、少人数で開発期間を長めに取る方が多くの成果が得られるのです。

大手企業の開発単価が高いことは本稿で述べた事も少なからず理由になっていると思います。 これを妥当と感じるかは価値観にもよるのですが、小さいところでできる仕事は 小さいところにやらせることで効率よく成果を得る、というのは一考に値すると思うのですがいかがでしょう?

6.ではメリットは

逆に個人に依頼することによるメリットがあるかという点です。

  1. 開発する人間の顔が見えている

    「個人」事業主というくらいですから大仰な体制で開発していることはまず考えられません。 ほぼ間違いなく、打ち合わせしている当人が開発やサポートをしてます。
    (少なくとも当方ではそうです)

  2. 費用的に...

    まず一般的に言って法人の方が、それも会社規模の大きい方が工数単価が高いのは間違いないです。

    これはSEやプログラマの単価を比較してみれば一目瞭然でわかります。 技術者の単価を見ればほぼ会社規模がわかると言っても良いくらいです。

7.結局どうなのか?

ここまで読んでいただけた方にはわかっていただけると思うのですが、要するに
「ケースバイケース」
なんです...。

そこそこ名のある企業に依頼したほうが良いと思われるケースはすぐに思いつきます。
前にもあげたように


というケースを個人に依頼するのは馬鹿げていると私も思います。 がんの治療に近所の開業医に行くようなものです。

一方で、ちょっとした腹痛なら近所の開業医に行けばいいじゃないかという感覚もあります。 良い医者を見つけられればかかりつけ医として非常に頼りになります。

ソフトウェアにおける個人事業主もこの位置づけで認知されれば良いのに...と考えているのですが。