Upgrade to Pro — share decks privately, control downloads, hide ads and more …

北米のソフトウェア開発

mahata
July 21, 2017

 北米のソフトウェア開発

「BPStudy#119」の発表資料

mahata

July 21, 2017
Tweet

More Decks by mahata

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. 自己紹介

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  7. 気持ちの変化

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  13. View Slide

  14. View Slide

  15. シリコンバレー

    View Slide

  16. シリコンバレー

    View Slide

  17. バンクーバー

    View Slide

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

    View Slide

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

    View Slide

  20. 唐突ですが

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. なにそれ
    最高じゃん?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  35. 復習
    しましょう

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  64. 北米の技術者面接

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  71. SmartNews の最近の取り組み

    View Slide

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

    View Slide

  73. まだ道半ば

    View Slide

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

    View Slide

  75. 開発拠点間の時差の壁

    View Slide

  76. 開発拠点間の時差の壁

    View Slide

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

    View Slide

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

    View Slide

  79. View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  83. まずは気軽にランチでも

    View Slide

  84. View Slide

  85. Thanks!

    View Slide