優秀なエンジニアは「コードが汚いから読めない」なんて言わない【ひろゆき×安野たかひろ】
ひろゆきが聞く!
ひろゆきさんが「今、話したい人」と対談する本連載。今回のゲストは、先の東京都知事選に出馬したAIエンジニアの安野たかひろさんです。
日本のAI研究をリードする松尾豊教授の研究室出身で、AIスタートアップ2社の経営者としての顔も持つ安野さんに対する一つ目の質問は
ひろゆきさん:コードを書けることと、会社が儲かることは違いますか?
エンジニア兼経営者という共通点を持つ、お二人ならではの「コード談義」から、日頃感じている苦悩やジレンマも聞けました。
目次
コードが書けるのと、会社が儲かるのは違う?綺麗なコードより「done is better than perfect」が効率的汚いコードの解読と、推理小説を楽しむ感覚は類似している
コードが書けるのと、会社が儲かるのは違う?
ひろゆきさん:コードを書けることと、会社が上手く儲かることは結構違いますか?それは予測可能な範囲内ですか?
安野さん:コードを書けることと、会社が上手く儲かることはかなり違うと思っています。
例えば、誰もが使うような有名なサービスであっても裏側のコードはとんでもなく汚くてツギハギだったりしますし、めちゃくちゃコードが綺麗でも誰も使ってないソフトもたくさんあります。
なので、コーディングの能力だけから会社が上手くいく可能性を予測するのはかなり難しいという感覚です。
安野さん:ただ、コードが書けると、特に事業の立ち上げ期などに開発工数を自分で負担できるので、コスト面で有利になる面はあると思いますね。
安野さん:ひろゆきさんは2chやニコニコなど、いくつもの成功サービスを立ち上げていますが、ひろゆきさん自身がコードを書けたことはプラスに働いていますか?
ひろゆきさん:やっぱり「こういうサービスがあれば」と思いついた時すぐにプロトタイプを作れるのはコードができる人の特権じゃないですかね。
安野さん:そこは大きいですよね。ちなみに、2chやニコニコのコードって綺麗だったんですか?
ひろゆきさん:ニコニコは、コーディング部分には関わっていませんが、2chではエンジニア泣かせなコードばかり書いていましたね。
安野さん:え、そうなんですか?
ひろゆきさん:おいらの場合、1980年代からプログラムを書いてたので、forには$iとかの1文字変数使っちゃうんですよね。$piyoとか書いちゃうので、2chの初期コードはかなり読みづらいものでした。
forループの中で作られた変数$aが有用だと後で気付いて、グローバル変数として使っちゃうとか。
安野さん:一文字のグローバル変数が重要になっているのはアツいですね(笑)しかも$aって……! そこまでではないですが、私も雑に書くときは一文字変数が多いです。
綺麗なコードより「done is better than perfect」が効率的
ひろゆきさん:でも、おいらが知ってる優秀なエンジニアで「コードが汚いから読めない」って言う人は見たことがないんですよね。
安野さん:優秀な人で「コード汚いから読みたなくない」って言う人はたくさんいますが、「頼む!」と頭を下げると皆ちゃんと読みこなせますよね。
時々、「汚いコードを読み解くことが好き」というレアな方も居ますが、そういう方はどんな現場でも重宝されている気がします。
ひろゆきさん:まあ、他人のコードを読む事になるエンジニアは、同僚に綺麗なコードを要求するのは当然ではありますけどね。
ひろゆきさん:サービスが流行るにつれて、想定と違うボトルネックが発生して、アルゴリズム自体を変える必要が出てきた時などにコードを綺麗にするのはアリだと思いますが、コードを読むのが下手なエンジニアのためにコードを綺麗にするのは時間の無駄かな、、と。
ただ、エンジニアからは「コードは綺麗に書け」という圧力が出てくるのは当然なので、上位の人が「どんなコードでも動くコードを作るのが正しい」「done is better than perfect(完璧を目指すよりも、まずは終わらせることが重要) 」のスタンスが効率的だろうなぁ、、と思うおいらです。
安野さん:私もスタートアップの経営をやっている時にエンジニアチームから何度も新機能開発ではなくリファクタリングに時間を使わせてくれと要求されていました。
結果、お客さんに「この機能のリリース遅れます」と頭を下げ、エンジニアチームには「ここまでは耐えてくれ」とお願いし、経営陣に「リファクタリングやらないとマズイっす」と強弁し、ほうぼうで調整をかけていた覚えがあります。
そういう意味ではひろゆきさん推奨の「done is better than perfect」を貫き切れなかった側の経営でした。。。
ひろゆきさん:なるほど。
安野さん:ただ、リファクタリング工数を経営的なロジックで正当化するのは本当にしんどいと思います。
例えば、
1)短期的に売上を産まない
2)長期的にもどれくらいペイするのかよく分からない
3)何をどれだけ整理すべきかエンジニアごとに色々な意見がある
4)決して終わらないし、成果も定量的に測定できない
と、やりづらさが勢ぞろいです。
ひろゆきさんが言うようにデグレしてお客さんからブチ切れられるリスクもあるわけですからね。
ひろゆきさん:実際は、どう乗り切っていたんですか?
安野さん:経営的な理屈として「これはエンジニアのための福利厚生であり、採用費に効果のある施策だ」と割り切っていました。採用時に「リファクタに時間を取っているよ」と言えるようになるし、実際、従業員エクスペリエンスが良ければ定着もしてくれやすいと感じています。人にこそ投資をすべきではないか、という理屈は経営陣も納得しやすい。
汚いコードの解読と、推理小説を楽しむ感覚は類似している
ひろゆきさん:ただ、汚いコードって、「必ず解けるパズル」と認識してやってみたりすると面白かったりするんですよね。デバッグも時には楽しかったりするので、、、
ミステリーナイトという、会場で役者さんが事件の演劇をして、観客が探偵として解くという老舗イベントがあるんですけど、デバッグに似てる気がしています。
目の前で起きた出来事の情報から、裏で何が起きているのかとか、その原因がバグとして出てきてるんじゃないかとか、どこに原因があるのか推測していく点が、デバッグと推理小説の楽しみ方に似てるなと思うんですよね。
安野さん:ミステリーナイトはすごく興味があります。エンジニア界隈で脱出ゲームやマーダーミステリーが流行っていたりするのも同じような感じですよね。
ひろゆきさん:はい、論理パズル的な要素があるものはエンジニアに向いていると思います。人間関係と違って、正しいコードは必ず動きますからね。正義感が強い人もエンジニアに向いてる気がするんですよね。
正義感が強すぎると、文系営業の清濁併せ呑む感じとか、嘘をついても結果オーライみたいなスタンスは受け入れづらいですし。。
安野さん:推理小説といえば、昔同じ会社で働いていたエンジニアが最近、なぜか連続で推理小説の賞を取っていたりします。昨年の「このミステリーがすごい」大賞の白川さんと、今年の江戸川乱歩賞大賞の日野さんという方です。
スパゲッティコードに長く接しているエンジニアは実は推理小説を書けるスキルを知らず知らずのうちに獲得しているのではないか、という仮説が自分の中でホットです。
ひろゆきさん:毎日論理構成の中に浸ってる人は、推理小説は向いてるかもしれないですね。初期にちょろっと設定したグローバル変数が、最終的な結果に大きく影響してくるとか、「ここで使われてるのかー」みたいな感慨とか。
安野さん:東野圭吾さんも森博嗣さんも理系ですし、理系の推理作家は多いですね。
ひろゆきさん:結果として、恋愛小説とかは全く向いてない気もしますが、、
安野さん:ははは。理系の恋愛小説家はぱっと思い浮かばないです(笑)
安野さん:私も自分で小説を書き始めて分かったのですが、良い小説を書く技術と汚いコードを書く技術って結構似てるんですよね。
良い小説って最初から終わりまで全ての段落(モジュール)がお互いに無秩序に密結合しているなと思います。張り巡らされた伏線(依存関係)が思わぬところで回収される、みたいな。疎結合高凝集が良いとされるソフトウエア開発とは真逆です。
ひろゆきさん:確かに。ごちゃごちゃしていて、最初の頃のことを忘れて読み進めるうちに伏線回収されて気持ちいいみたいなのって、綺麗なコードと真逆ですよね。コードと小説構造の類似性は考えたことなかったですけど、相関は高そうっすね。。。
安野さん:ほんとそうで、たぶん、綺麗なコードみたいな小説読んだら全然味気なくてつまんないと思います。ソフトウェア工学の手法で統計的に小説の文章を解析してみたらどうなるか、みたいなテーマは面白いかもしれません。
【後編はこちら】小学生でも開発できる時代なのに、なぜ小粒のサービスしか生まれない?https://type.jp/et/feature/26799/
AIエンジニア&起業家&SF作家
安野たかひろさん(@takahiroanno)
1990年、東京生まれ。開成高校を卒業後、東京大学工学部システム創成学科へ進学。「AI戦略会議」で座長を務める松尾豊教授の研究室を卒業。外資系コンサルティング会社のボストン・コンサルティング・グループを経てAIスタートアップ企業を二社創業。デジタルを通じた社会システム変革に携わる。日本SF作家クラブ会員。
●デジタル庁デジタル法制ワーキンググループ構成員 ●英国王立美術院にて準修士 ●未踏スーパークリエイター ●ハヤカワSFコンテスト受賞 ●星新一賞受賞 ●アジアデジタルアートアワード・インタラクティブ部門大賞 ●M-1グランプリ出場
ひろゆきさん(
@hirox246)
本名・西村博之。1976年生まれ。「2ちゃんねる」開設者。東京プラス株式会社代表取締役、有限会社未来検索ブラジル取締役など、多くの企業に携わり、プログラマーとしても活躍する。2005年に株式会社ニワンゴ取締役管理人に就任。06年、「ニコニコ動画」を開始。09年「2ちゃんねる」の譲渡を発表。15年に英語圏最大の匿名掲示板「4chan」の管理人に。著書に『働き方 完全無双』(大和書房)『プログラマーは世界をどう見ているのか』(SBクリエイティブ)『1%の努力』(ダイヤモンド社)など多数。ABEMAで配信中の『世界の果てに、ひろゆき置いてきた』も好評
安野たかひろさん写真/安野たかひろ事務所提供
ひろゆきさん写真/赤松洋太
編集/玉城智子(編集部)
【姉妹サイトから記事をご紹介】実業家・ハヤカワ五味が生成AIで「企業就職」を選んだ理由https://woman-type.jp/wt/feature/35754/?utm_source=social&utm_medium=wt&utm_campaign=014