説明会の話を思い出した

 今日の電車で、ふと1月末に母校で会社の説明会(?)をしたことを思い出した。

 

 その中の質問で「会社で技術的に苦労したことは何か」みたいなものがあって、自分はsvnとgitの話をしたと思う。

 あの大量のコードをsvnで管理するのは限界があると自分では思ったのだけど、会社はsvnで管理していて、あの時はブランチ一つ切るのが手間だった。そんな回答をしたはず。(もちろん今はgitに移行されている)

 

 もしかしたらこの話を聞いて「やっぱり大企業は頭固いし機転が利かないよなぁ。何もわかってないわー」って思った学生の方がいるかもしれない。というか、恐らく自分が学生の時にこの話を聞いたらこう考えたと思う。

 でも社会人になった今としては、なぜそうなってしまうのか自分なりに考えて、納得がいった気がしている。理由は以下。

 

1. 企業は「利益を出す」ことが目標になっている

 実際のところ、企業は利益を得るためのモノである。例えば便利なSNSで世界を豊かにしよう!という目標があってサービスを展開したとしても、赤字ではそのSNSは存続できない。仮にそのサービス単体では利益を追及していなかったとしても、会社単位で例年赤字という経営は破たんするので、全体でみるとやはり「利益を出す」ことが目標の一つにあるはずだ。

 企業は利益のためのみに存在しているという考えは個人的には賛同できないが、どの企業も持っている共通の目標であることは間違いないと思う。

 

2. 利益とは「売上 - コスト」

 経常利益だとか粗利だとかの話は省くが、利益の出し方の一つとしてコストを抑えるという考えがある。それはちょっと考えればわかる話だと思うので詳細は割愛。

 

3. 大企業と中小企業ではあるものを変更する為に必要なコストが違う

 ここがキーポイント。今回は言語移行の話をしよう。javaC#の話を例とする。

 javaに慣れ親しんだ人たちの中には、C#なんて触ったことないという人もいる。そのような人は、移行後の最初のほうは作業効率が落ちてしまう。

 たとえば2割ほど効率が落ちるとする。単純に仕事量が100から80になる。

 一人で仕事をしていれば20の損失で済むが、100人の企業だと2000もの仕事量が失われることになる。この数字だけでも結構変わってしまうように感じる。

 しかし、実はパーセントで話をすればここまでの話は変わらない。何人いても8割だし、移行後で慣れてきて2割の効率UPがあるのだとすれば、一人の場合100から120に対して、100人だとやはり10000から12000になる。

 

 しかし、ここからが自分で一番感じている部分で、実はその企業が積み重ねてきた資産の損失もコストにつながるということが、就職してみないと実感しにくい。

 そしてこの「資産」の量が企業の規模や存続年数によって大きく違っている。

 

 今までjavaを使っていた企業は、javaのコードが腐るほどあるだろうし、実際のところずっとsvnを使っていた自分の会社も、svnに関するスキルや運用テクニック、あるいはアドオンのようなものまで「資産」と呼べるようなものはいっぱいあった。それを破棄、または流用して新しく移行後用のものを作るにしても、一度失うことには変わりない。その損失がコストとして重くのしかかってくる。

 それに反して、スタートアップ企業などは今から作り上げるところなので、この資産はないに等しい。失う資産はないし、得られるメリットが大きいとあれば、それの導入を止める理由はない。

 

 結局のところ、上記のような理由もあって、大企業と中小企業ではそのへんの小回りのしやすさに違いが出るのはごく当然なのでないか、というのが最近の考え。

 常に最新の何かを使いたい!と思ってる人は「やっぱり大企業はわかってないわー」ではなく「やっぱり自分は大企業にあってないわー」と考えるのが正しいのではないかと思う。