2014年7月15日

シリコンバレーに行ってきた

こんにちは、開発部の溝江です。
6/16~6/20の期間にシリコンバレーに行ってきました。


シリコンバレー旅行の経緯


弊社ではMIJSという団体に加入しています。
MIJSがどういう団体なのか、ということについてはホームページを見てもらうのが一番良いと思いますが、簡単に言えば
「世界に通用するソフトウェア」
の開発を目指す団体です。

日本企業で開発されるソフトウェアは、日本国内ではそれなりのシェアを獲得することはあっても、その後他国で展開できるパターンは多くありません。そのうちに海外の製品が黒船のように現れ、国内のデファクトスタンダードの地位を奪われる、という展開になってしまうというわけです。
その中でもシリコンバレーには世界の時価総額ランキングに名を連ねる大企業がたくさん集まっています。すると日本で働いている身としては

「やはりシリコンバレーに行かないとだめなのだろうか?」
「日本とシリコンバレーは何が違うのか?」

といった疑問が湧いてきます。
今回はシリコンバレーのベンチャー企業とシリコンバレーで働く日本人エンジニアを訪問し、お話をしました。具体的にはRunWayZendeskBoxTreasure DataTwitterFacebookIP Infusionという豪華なラインナップでした。
日本とシリコンバレーでどのような違いがあるのか、感じたことを以下に書き記してみたいと思います。


開発プロセスの違い


Web系のクラウドサービスを展開している会社はアジャイル開発をやっているところが多かったですね。
例えばスクラムをやっている会社の場合、1~2週間のスプリントを設定し、
毎日スタンドアップミーティングを行う。
日本でも広く認識されている(であろう)やり方が実践されていました。
もちろん、別にアジャイルを知っているからエンジニアのレベルが同じというわけではありません。
アジャイル開発を実際に行うためには自分の組織にあった形態を探り、継続的に改善していく必要があるでしょう。知っていることと実行することは大きく違います。
しかし少なくともシリコンバレーでは日本で全然知られていないような開発手法が存在していて、
完全に時代遅れというわけではなさそうでした。

この件に関して印象深かったのは組込み系の製品開発を行っている会社の方の
「弊社では戦略的にウォーターフォールを採用している」
という話でした。
Webの場合、環境が自分の手元にあるので何か問題が起こった時には修正することができますが、組込みの場合はそうはいきません。最初にMarketing, Products, EngineerごとにRequirements Documentを作成し、中の項目を全てトラッキングしながら開発を進めているということでした。
アジャイル開発というのは別に全てを解決する銀の弾丸というわけではありません。
アジャイルとウォーターフォールは対極にある手法と捉えられがちですが、
両方勉強して自分の環境にとってどのような形が一番良いのかを模索していくべきなのでしょうね。


プログラミング能力の違い


ペアプログラミングなどをしたわけではないので、自身の目で確認することはできませんでした。
日本人エンジニアで15年シリコンバレーで働いている人のお話では、

「シリコンバレーと日本のエンジニアの能力平均は、少なくともコードレベルで言えば同等、
日本の方が高いかもしれない」

ということでした。


使用ツール


JIRAはほぼすべての人が使用していると回答していました。
その他は各社様々で、Review Board, Trello, gerrit, Hipchat, Campfireなどの名前が挙がりました。DevOps的な面でのツールについてはあまり聞けなかったのですが、例えばFacebookではJenkins、ZendeskではChefを使っているということでした。


非エンジニアの能力の違い


・営業

日本のスタートアップの場合、まず日本でそれなりのシェアを獲得し、ある程度の地盤が固まってから世界に売り出していく、いわゆる「グローバル戦略」を考えるという順序になることが多いのではないかと思いますが、シリコンバレーではそもそも「グローバル戦略」という言葉は使われないとのことでした。

なぜならグローバルに売るのが当たり前だから。

シリコンバレーにはグローバルに製品を売っていく経験豊富な人間が数多く集まっていて、さらにエンジニアと同じ場所を拠点に置いているため、製品への迅速なフィードバック・改善が行えるのが強みのようです。


・非エンジニア一般

シリコンバレーのIT企業で働いている人は、専門がエンジニアでなくてもある程度の話が通じるようです。
例として挙げられていたのは、法律関係を専門とする同僚がSHA-1ハッシュを理解していたというもの。
また、シリコンバレーではトップにComputer Scienceをやっていない人間が就くことはありえないと言っていました。
日本の企業ではエンジニアを管理するのは文系出身で技術畑ではないということがしばしばありますが、その場合エンジニアは技術のわからない人に対して説明・説得をするために余分な資料を作らなければいけません。しかもその資料は中間成果物なので、エンジニアの作業時間、資料の管理・修正などコストは膨らむ一方です。
今回は10数人ほどの方とお話していないので、シリコンバレー全体の傾向かどうかはわかりませんが、少なくともお話を聞いた範囲では日本よりもComputer Scienceに対する平均的な理解やリテラシーが高いように感じました。


生活の違い


まず給料についてですが、シリコンバレーでは新卒で約2000万、もしくは1000万+ストックオプションというベースがあるようです (もちろんこれより低い場合はあるのですが、優秀な人を雇おうと思ったらこのぐらい出さないと他社に獲られてしまう)。
この数字だけ見るとため息が出てしまいますが、シリコンバレーはIT企業が集中しているおかげで生活に必要な経費もかなり上昇しているようで、2LDKの月の家賃が約$3000ということでした。
結婚していて子供がいる場合はその分生活費も養育費もかかるし、シリコンバレーは郊外にあるので車を持つことも必須です。
それから解雇される場合、日本では「労働者を解雇する場合30日前に解雇予告をしなければいけない」のですが、シリコンバレーでは解雇通知の日に即日退去というリスクもあります。この辺の事情を考慮すると、給料の額面だけ見て日本と比較するべきではないようですね。

日本のエンジニアがシリコンバレーで働き始めることを考えた場合、上記のお金の面以外に考慮しなければいけない点として人間関係のことが触れられていました。日本からシリコンバレーに引っ越した時、エンジニア本人は会社に来れば同僚がいるのですが、家族は一から人間関係を作っていかなければいけません。
この点はお金以上に家族に負担をかけることになるため、もしシリコンバレーで働きたいのであれば、なるべく独り身の時に来るのがおすすめであるということでした。


まとめ


違いというか、項目ごとに私が感じたことを羅列してみたわけですが、全体の印象として残ったのは

「エンジニアがやっていることは日本とそんなに変わらない、しかしエンジニアを取り巻く環境があらゆる面で異なる」

ということでした。
この「取り巻く環境」というのは一企業の中で閉じるものではなく、シリコンバレー全体で巨大なエコシステムが形成されているもので、恐らく日本で完全に真似ることはできないし、部分的に真似たとしても片手落ちになってしまうでしょう。

私は東北の田舎出身で、東京に初めて来たのは就活をしていた23歳の時でした。
当時は東京に対して過剰なまでの恐れを抱いており、私のような「おしゃれ」にパラメータを割り振ってこなかった人間がひとたび渋谷を歩こうものなら即座に因縁をつけられてボコボコにされるかもしれない、と思っていました。今思えば意味不明ですが、自分の周りと何が違い、何が同じなのかを実際に体験しない限り、未知は未知のままです。
シリコンバレーについても(かなり強引ですが)同様で、シリコンバレーについてのWeb上の記事を見る度に「シリコンバレーという天上界ではこんなことが行われているらしい」「それに比べて自分は・・・」とか無駄に悩んでいたわけです。今回自分の足でシリコンバレーに赴くことで、上記に挙げたような話を聴くことができ、私にとってシリコンバレーは完全に未知の場所ではなくなりました。
開発プロセスの項でも書いたように、大事なのは手段ではなく目的です。シリコンバレーで行われていることを盲目的に取り入れるのではなく、自分にあったものを考えて選ぶということが、重要です。

これだけ書いておいて月並みすぎる結論になってしまいましたが、以上です。



おまけ


結構まじめな感じで書きましたが、私にとっては初めての海外旅行であり、観光面でも大変充実していました。全員でぞろぞろとサンフランシスコの市街に出て行って盛大に迷ったり、タクシーのおじさんにチップを渡しすぎてなぜかお返しにVHSビデオをもらうなど、いろいろありました。