Slide 1

Slide 1 text

北米のソフトウェア開発 (BPStudy#119) 真幡 康徳 @スマートニュース株式会社

Slide 2

Slide 2 text

お品書き 1. 北米でソフトウェア開発者として働く方法 2. 北米のエンジニアリング文化 3. 地理的に分散した開発拠点を作る方法

Slide 3

Slide 3 text

自己紹介

Slide 4

Slide 4 text

略歴 ● 2005年: Yahoo! Japan 入社 (新卒) ● (転職3回) ● 2010年: VOYAGE GROUP 退社 ● 2011年: 渡加 (BC州バンクーバー) ● 同年: Hootsuite, Inc. 入社 ● 2015年: Hootsuite, Inc. 退社 ● 2017年: SmartNews 入社

Slide 5

Slide 5 text

略歴 ● 2005年: Yahoo! Japan 入社 (新卒) ● (転職3回) ● 2010年: VOYAGE GROUP 退社 ● 2011年: 渡加 (BC州バンクーバー) ● 同年: Hootsuite, Inc. 入社 ● 2015年: Hootsuite, Inc. 退社 ● 2017年: SmartNews 入社 気持ちの変化

Slide 6

Slide 6 text

気持ちの変化 ● 国内に「転職したい」企業がなくなった ● シリコンバレーへの憧れが強くなった

Slide 7

Slide 7 text

気持ちの変化

Slide 8

Slide 8 text

お品書き 1. 北米でソフトウェア開発者として働く方法 2. 北米のエンジニアリング文化 3. 地理的に分散した開発拠点を作る方法

Slide 9

Slide 9 text

北米とは ● すなわち「アメリカ合衆国」

Slide 10

Slide 10 text

北米とは ● すなわち「アメリカ合衆国」 ● そして「カナダ」

Slide 11

Slide 11 text

北米とは ● すなわち「アメリカ合衆国」 ● そして「カナダ」 ● さらに「メキシコ」

Slide 12

Slide 12 text

北米とは ● すなわち「アメリカ合衆国」 ● そして「カナダ」 ● さらに「メキシコ」 今回お話する対象

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

シリコンバレー

Slide 16

Slide 16 text

シリコンバレー

Slide 17

Slide 17 text

バンクーバー

Slide 18

Slide 18 text

えっ... ● シリコンバレーで働きたいのでは?

Slide 19

Slide 19 text

えっ... ● シリコンバレーで働きたいのでは? ● そうなんです (´・ω・`)

Slide 20

Slide 20 text

唐突ですが

Slide 21

Slide 21 text

北米で働くために必要なのは?

Slide 22

Slide 22 text

北米で働くために必要なのは? ● もちろん英語力

Slide 23

Slide 23 text

北米で働くために必要なのは? ● もちろん英語力 ● ...ではなく、就労許可証 (就労ビザ)

Slide 24

Slide 24 text

就労ビザを取得する正攻法 ● 現地の企業にスポンサーしてもらう ○ 1. 日本支社 (本社?) からの転勤 ○ 2. 日本から現地企業への転職 ● 現地の大学を卒業する ● 現地国籍の配偶者を作る

Slide 25

Slide 25 text

就労ビザを取得する正攻法 ● 現地の企業にスポンサーしてもらう ○ 1. 日本支社 (本社?) からの転勤 ○ 2. 日本から現地企業への転職 ● 現地の大学を卒業する ● 現地国籍の配偶者を作る 全部難しくないですか... (´・ω・`)

Slide 26

Slide 26 text

簡単にビザを 手に入れたい

Slide 27

Slide 27 text

ご存知ですか? ワーキングホリデー ● 海外で「ワーク」と「ホリデー」を楽しめる制度 ○ ワーク: 「就労ビザ」 ○ ホリデー: 「観光ビザ」 ● (言い換えると...) 高性能ビザ発行制度

Slide 28

Slide 28 text

なにそれ 最高じゃん?

Slide 29

Slide 29 text

ワーキングホリデーの実際 ● 年齢制限あり (おおむね30才) ● ワーキングホリデー協定参加国のみで有効 ○ カナダ ○ オーストラリア ○ イギリス ○ etc.

Slide 30

Slide 30 text

ワーキングホリデーの実際 ● 年齢制限あり (おおむね30才) ● ワーキングホリデー協定参加国のみで有効 ○ カナダ ○ オーストラリア ○ イギリス ○ etc. アメリカ合衆国は対象外

Slide 31

Slide 31 text

ワーキングホリデーの実際 ● 年齢制限あり (おおむね30才) ● ワーキングホリデー協定参加国のみで有効 ○ カナダ ○ オーストラリア ○ イギリス ○ etc. 当時は消極的な選択だった

Slide 32

Slide 32 text

ちょっと待ってほしい ● 年齢オーバーなんだが... (´・ω・`)

Slide 33

Slide 33 text

(再掲) 就労ビザの取得方法 ● 現地の企業にスポンサーしてもらう ○ 1. 日本支社 (本社?) からの転勤 ○ 2. 日本から現地企業への転職 ● 現地の大学を卒業する ● 現地国籍の配偶者を作る

Slide 34

Slide 34 text

最短で大学を攻略 ● 社会人向けの短期コース ○ がんばれば9ヶ月で卒業可能 ○ e.g. UC Berkeley Extension

Slide 35

Slide 35 text

復習 しましょう

Slide 36

Slide 36 text

北米で働くために必要なのは? ● もちろん就労許可証 (就労ビザ)

Slide 37

Slide 37 text

北米で働くために必要なのは? ● もちろん就労許可証 (就労ビザ) ● ...だけではなく、英語力

Slide 38

Slide 38 text

英語学校の選び方 ● 総合大学付属の語学学校がオススメ ○ 各専攻の学生と仲良くなるチャンス ■ 技術的な文章を添削してもらえるかも

Slide 39

Slide 39 text

英語学校の選び方 ● 総合大学付属の語学学校がオススメ ○ 各専攻の学生と仲良くなるチャンス ■ 技術的な文章を添削してもらえるかも 英語の先生が 必ずしも技術用語に 明るいわけではない

Slide 40

Slide 40 text

英語学校の選び方 ● 総合大学付属の語学学校がオススメ ○ 各専攻の学生と仲良くなるチャンス ■ 技術的な文章を添削してもらえるかも

Slide 41

Slide 41 text

お品書き 1. 北米でソフトウェア開発者として働く方法 2. 北米のエンジニアリング文化 3. 地理的に分散した開発拠点を作る方法

Slide 42

Slide 42 text

ソフトウェア技術者は 尊敬の対象 ● 例)「俺、プログラマやってるんだ」

Slide 43

Slide 43 text

ソフトウェア技術者は 尊敬の対象 ● 例)「俺、プログラマやってるんだ」 ○ 日本: 「そっか、大変だね... (´・ω・`)」 ○ 北米: 「すごい! カッコいい!!」 (一部誇張あり)

Slide 44

Slide 44 text

ソフトウェア技術者 in 北米 ● 難しいことを理解していると思われている ○ いわゆる文系プログラマは少ない ○ (一般に) 採用ハードルは高い ■ 新卒一括採用もない ● インターンからの入社はありえる ● 高給取りだと思われている

Slide 45

Slide 45 text

北米企業のつらいところ ● 解雇が非常にカジュアル ○ 生存戦略が必要 ■ 自身の成果を周囲にアピール ■ 替えのきかない仕事の選択

Slide 46

Slide 46 text

北米企業のつらいところ ● 解雇が非常にカジュアル ○ 生存戦略が必要 ■ 自身の成果を周囲にアピール ■ 替えのきかない仕事の選択

Slide 47

Slide 47 text

私の Hootsuite でのロールの変化 ● 2011~2012: アプリケーション開発者 (PHP/JavaScript) ● 2012~2014: ローカライズ技術者 (Python) ● 2015: DevOps エンジニア

Slide 48

Slide 48 text

私の Hootsuite でのロールの変化 ● 2011~2012: アプリケーション開発者 (PHP/JavaScript) ● 2012~2014: ローカライズ技術者 (Python) ○ (少なくとも) 二ヶ国語の理解が必須 ○ (社内で) 非主流のプログラミング言語の理解が必須 ● 2015: DevOps エンジニア

Slide 49

Slide 49 text

私の Hootsuite でのロールの変化 ● 2011~2012: アプリケーション開発者 (PHP/JavaScript) ● 2012~2014: ローカライズ技術者 (Python) ● 2015: DevOps エンジニア ○ 色々な “歴史的経緯” の理解が必須

Slide 50

Slide 50 text

北米企業の給与 ● (基本的に) 交渉しなければ昇給しない ○ 例えば 1 on 1 などで主張する ● 入社時の給与交渉も普通に行われる

Slide 51

Slide 51 text

私の北米時代の給与の変遷 ● (オフレコ)

Slide 52

Slide 52 text

北米の技術チームの典型的構成 ● プロダクトマネージャ ● エンジニアリングマネージャ ● ソフトウェアエンジニア ○ テックリード ○ シニア / ジュニア

Slide 53

Slide 53 text

北米の技術チームの典型的構成 ● プロダクトマネージャ ● エンジニアリングマネージャ ● ソフトウェアエンジニア ○ テックリード ○ シニア / ジュニア ディレクター相当? チームリーダー相当?

Slide 54

Slide 54 text

北米の技術チームの典型的構成 ● プロダクトマネージャ ○ プロダクトに責任を追う ● エンジニアリングマネージャ ● ソフトウェアエンジニア ○ テックリード ○ シニア / ジュニア

Slide 55

Slide 55 text

北米の技術チームの典型的構成 ● プロダクトマネージャ ● エンジニアリングマネージャ ○ チームビルドに責任を負う ● ソフトウェアエンジニア ○ テックリード ○ シニア / ジュニア

Slide 56

Slide 56 text

北米の技術者採用 ● スキル要求がかなり限定的 ○ 日本: 「要プログラミング経験3年」 ○ 北米: 「要Rails経験3年」 ■ チームごとに採用するため

Slide 57

Slide 57 text

北米の技術者採用 ● カバーレター文化 ● リファラル文化 ● 電話文化

Slide 58

Slide 58 text

北米の技術者採用 ● カバーレター文化 ○ 画一的なレジュメでは相手にされない ○ 募集要項に即したレターを書く ● リファラル文化 ● 電話文化

Slide 59

Slide 59 text

北米の技術者採用 ● カバーレター文化 ● リファラル文化 ○ 人気企業はリファラルがないと面接にたどり 着けない ○ Meetup などであらかじめツテを作る ● 電話文化

Slide 60

Slide 60 text

北米の技術者採用 ● カバーレター文化 ● リファラル文化 ● 電話文化 ○ 現地面接の前に電話でふるいにかけること が普通

Slide 61

Slide 61 text

北米の技術者採用 - 事例紹介 ● (オフレコ)

Slide 62

Slide 62 text

北米の技術者面接 ● ほぼ間違いなく技術者が面接する ○ 入社したら同僚になる人間 ○ 入社したら上司になる人間 ● ほぼ間違いなく技術的なトピックが聞かれる ● かなり時間をかけて面接される ○ まるまる数日かけて選別されることもある

Slide 63

Slide 63 text

北米の技術者面接 ● ホワイトボードコーディングはある程度のパター ンがある

Slide 64

Slide 64 text

北米の技術者面接

Slide 65

Slide 65 text

北米の技術者面接 (例) ● 一般的なスタックのように、push() と pop() が可 能で、さらにスタック中から最大の要素を返却す る getMax() が実装されたスタッククラスを作成し てください。なお、getMax() は O(1) で動作する ものとします。

Slide 66

Slide 66 text

お品書き 1. 北米でソフトウェア開発者として働く方法 2. 北米のエンジニアリング文化 3. 地理的に分散した開発拠点を作る方法

Slide 67

Slide 67 text

大前提 ● 開発拠点の分散は とても 難しい ● 前職でも開発拠点は分散させていない

Slide 68

Slide 68 text

開発拠点を分散させる難しさ ● 言語の壁 ● タイムゾーンの壁 ● 空気感 (?) の壁

Slide 69

Slide 69 text

開発拠点間の言語の壁 ● 歯を食いしばってがんばるしかない

Slide 70

Slide 70 text

開発拠点間の言語の壁 ● 歯を食いしばってがんばるしかない ● ...が、仕組みでカバーできる部分も

Slide 71

Slide 71 text

SmartNews の最近の取り組み

Slide 72

Slide 72 text

まだ道半ば ● たとえば、ボットはどうローカライズする?

Slide 73

Slide 73 text

まだ道半ば

Slide 74

Slide 74 text

開発拠点間の時差の壁 ● Google Calendar は優秀 ○ 設定次第でかなり時差を吸収できる

Slide 75

Slide 75 text

開発拠点間の時差の壁

Slide 76

Slide 76 text

開発拠点間の時差の壁

Slide 77

Slide 77 text

常に相手のタイムゾーンを意識 ● たとえば Clocker

Slide 78

Slide 78 text

便利ツールまじ便利 ● とはいえ... ○ 同じ空間を共有する方が相互理解は深まる ■ 交流を促す仕組みが求められる

Slide 79

Slide 79 text

No content

Slide 80

Slide 80 text

今日お話したこと 1. 北米でソフトウェア開発者として働く方法 2. 北米のエンジニアリング文化 3. 地理的に分散した開発拠点を作る方法

Slide 81

Slide 81 text

今日お話したこと 1. 北米でソフトウェア開発者として働く方法 2. 北米のエンジニアリング文化 3. 地理的に分散した開発拠点を作る方法 道半ば (´・ω・`)

Slide 82

Slide 82 text

一緒にやって いきましょう

Slide 83

Slide 83 text

まずは気軽にランチでも

Slide 84

Slide 84 text

No content

Slide 85

Slide 85 text

Thanks!