定住生活が必要だって言ってるだろうが!

「定住生活が必要」というエントリを書いてから9年も経っていた。しかし僕らはまだ流浪の旅をつづけさせられている。

 

naoya2k.hatenablog.com

この9年で僕はGUIのプラットフォームを3つ作っているのを見た。1個の製品の寿命が3~4年くらいしかなくて毎回作りなおしているからだ。これは具体的には同じ機能を3回作りなおしているということだ。カレンダーが表示される機械だったらカレンダーの表示処理を3回作っている。日本やアメリカでは1週間は日曜日からはじまるけど欧州は月曜日はじまりで表示しないといけないんだぜとか週番号のはじまりの日が国によってちがうんだぜとかそういうことを毎回バグ指摘されて修正してをやっている。Bluetoothのペアリング機能がある機械でペアリングするときのUI (機器発見をやって一覧を表示して選んでもらって6ケタか4ケタの番号を交換して画面に表示してOKボタンを押してもらうやつ)を毎回つくっている。そんなところを新しくしてもエンドユーザにはなにもうれしくないので顧客価値には全くつながっていない。でも毎回新しいUIを作っているからバグが出て修正をするのに金がかかっている。

傭兵たちは無駄な作業でも賃金が貰えるので集まってくるが社会にインパクトを与えることができるような仕事ではないので儲からない。儲からないから生産性を上げろといいつつ単価を下げてオフショアとかに出したりショボい奴らを雇ったりしてダメなコードが量産されてしまいまた捨てることになる。一般的なソフト開発をやっている会社の場合ソフトは売りものだからすぐに売ってしまい自分たちの資産にするという考え方をしない。ソフトウェア開発の会社をいっぱい見てきました、みたいなコンサルなんかは完全にそういう考えかたで成功を収めてきた例ばかり見ていてプラットフォーム企業になるような方向性は打ち出さない。だからコンサルの言うとおりにするといつまで経っても失敗つづきになる。当然だ。

 

 

ソフトウェアをわかっていない偉い人は「なんでそんな基本的な機能を動かすのにこんなに金がかかるんだ」って言うけど、基本的な機能でも目を引く新機能でもソフトの開発工数はあんまりかわらないんだよ。AppleGoogleが新しいものを作れているのは彼等がAndroidiOSを延々と使いつづけているから、僕等が苦しんでいるような基本的な機能を作り直したりしていないからだよ。

どうして日本はハードウェアでは強かったのにソフトウェアは全然だめなのか?という質問がよく出てくるが、そりゃ当たりまえだ。モノを製造している会社は工場をそんなに頻繁に建て変えない。もちろん気合の入った新製品のために工場を拡張するとかそういうのはある。でも生産するものに合わせて毎回工場を全面刷新したりしない。しかし本邦のソフトウェア開発の教科書は違う。要件分析をしてそれに合わせて最適な部品やプラットフォームを選ぶのが正しいとかいう奴らが居る。でもそれは遊牧民族の生き方であって、それではいつまでたっても巨大な都市も荘厳な建築物もつくられず高度な文化が醸成されることもないのだ。

 

「全面刷新する」みたいなことが大好きなやつらが居るんだ。そのくせ「どうしてiOSAndroidのようなものが作れないのか」と聞いてくるのは本当に意味がわからない。iOSは12年間ずっと基本的な部分は変わってないんじゃないのか。僕等も全面刷新せずに12年間ソフトウェアを育て続けていれば、そしてそのソフトウェアとともに熟練技術者を抱えていればもっと状況は良かったはずじゃないか。それを何度も同じようなソフトを新しい開発者を雇って作りなおし、同じようなバグを出して金を浪費した結果がこの惨状だ。

 

ソフトウェアファーストと言う掛け声が好きな偉い人が居る。そのくせそいつがやろうとしていることは過去のソフトを捨ててまったく新しいソフトウェアプラットフォームをベースにしたなにかを作ることだ。ソフトウェアファーストというなら昔の会社の名前をひきづっている識別子がイヤだからぜんぶ書き換えていまの会社名にするとかそういう生産性のない作業をやるのもやめてほしいし、「xxのフレームワークは古くさいから最新のyyで書きなおしましょう」とかいうのもやめるべきだし、RenderScriptみたいな一時期の気の迷いみたいなやつを最近まで残していたAndroidを見習えと思うし、Appleを褒めるんならNEXTStepMacOSiOSの歴史をとりあえず舐めてからにしてほしい。