経営者が自社ライブラリの開発に予算を割きたくない理由

http://d.hatena.ne.jp/Nagise/20090117/1232156470

 利用頻度の高いライブラリは量産効果が顕著にあらわれるから相応の予算をかけることができる。つまり高品質になるわけだ。プロジェクト個別に車輪の再発明をするよりも遥かに効率が良い。

 予算をかければ高品質なものができる。 という仮定を受け入れたとしてもなお、会社として自社利用ライブラリに対して予算を割きたくない理由がある。

それは税金

 1億のプロジェクトが2本あって、それぞれの予算から2000万、つまり合計4000万わりあてて「今後も使い回せるライブラリ」を作るとすると、当然、資産計上しなければならなくなる。
 予算はすべて人件費とし(つまり全額が資産として計上され)たうえで、当期内にライブラリが完成した場合、法人税率を小さめに30%程度とみてもライブラリに対する課税額は1200万となってしまう。

 当期内に完成しなくても工事進行基準の場合、かけた人件費分は資産として課税対象。 引き渡しまでお金がもらえない契約であっても、税金は払わなければならない。

 まあライブラリ開発は「管理会計」上の話として、財務会計的に内緒にできなくもないが、次の理由のため難しい。

ソースコードの所有権

 受託開発の場合、成果物の所有権については「本件以前に所有していたものを除き」クライアントに引き渡す。
 それじゃぁ再利用できない。
 ライブラリの部分に限定して引き渡さない? その場合のクライアントのメリットは?

 そもそもSIer的な仕事はプロジェクト単位で採算を考えるわけで、プロジェクト単体で採算が取れないライブラリを作ることは通常出来ない。

 採算云々よりもお客さんに堂々と言える?「今回の開発費用のうち????万円は自社ライブラリ作成に充てさせていただきます」って。

業界外の人にわかりにくいところを補足

 となりのプロジェクトでも必要とされている機能があったとき、その部分だけ括りだして双方のプロジェクトから予算をひっぱってきて潤沢な資金で高機能に仕上げるということができない。複製のコストは0なのだから、ソフトウェアは量産効果が劇的に効く。
 これは、現場のプログラマには再利用の効果が知れ渡っているが、カネの流れを握っている経理や、経営側の無理解からくる問題だと言える。プロジェクト単位で予算を割き経費を計上するという経理システムしか存在しない会社に、再利用されるライブラリの作成や回収に予算をよこせといっても、扱いにほとほと困るわけである。

 おそらく暗黙に「プロジェクト=受注」としているのだろうが、それ以外の経費計上ができない経理システムなどあり得ない。*1
 労力=経費であり、経費を計上するには予算が必要で、予算はプロジェクトにのみ割り当てられる?
 じゃぁ「ライブラリ開発プロジェクト」を立ち上げれば良いだけ。

でも結局は

 所有権をあやふやなままにしてもライブラリ開発はできる。(特にコンパイル言語なら)
 そして管理会計でこっそり予算割りしてしまえば良い。


 それでもなお予算が割かれない理由は「プログラマーですらクライアントにメリットを説明できない」ところにある。
 なぜ説明できないのか? おそらくはプログラムの再利用について以下のように考えているからだろう。

 通常は、ある既存の設備から機械をひっこぬいて新しい設備に流用したとすれば、資産価値を持つ機械の移動したということになる。工場Aに設置されている機械を工場Bに移動して工場Aがもぬけの殻になったら工場Aの固定資産の価額は減る。ここで減らないようなら機械を移動させることで機械の固定資産価額分だけ錬金術のように資産を増やせることになる。

 ところが、ソフトウェアに関してはそれができる。

 このような考え方から脱却したうえで、堂々とクライアントにライブラリ開発に費用を充てることのメリットを説明して、納得してもらえるようでなければならない。*2

*1:受注なかったら経費も0?

*2:実際に説明しろ って訳じゃなくて、それくらいの気持ちで経営者に説明しろってこと。