北米のソフトウェア開発
by
mahata
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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!