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

北米のソフトウェア開発

6ad76bc77bb3205732ce31c3d2d25b29?s=47 mahata
July 21, 2017

 北米のソフトウェア開発

「BPStudy#119」の発表資料

6ad76bc77bb3205732ce31c3d2d25b29?s=128

mahata

July 21, 2017
Tweet

Transcript

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

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

  3. 自己紹介

  4. 略歴 • 2005年: Yahoo! Japan 入社 (新卒) • (転職3回) •

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

    2010年: VOYAGE GROUP 退社 • 2011年: 渡加 (BC州バンクーバー) • 同年: Hootsuite, Inc. 入社 • 2015年: Hootsuite, Inc. 退社 • 2017年: SmartNews 入社 気持ちの変化
  6. 気持ちの変化 • 国内に「転職したい」企業がなくなった • シリコンバレーへの憧れが強くなった

  7. 気持ちの変化

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

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

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

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

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

  13. None
  14. None
  15. シリコンバレー

  16. シリコンバレー

  17. バンクーバー

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

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

  20. 唐突ですが

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

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

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

  24. 就労ビザを取得する正攻法 • 現地の企業にスポンサーしてもらう ◦ 1. 日本支社 (本社?) からの転勤 ◦ 2.

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

    日本から現地企業への転職 • 現地の大学を卒業する • 現地国籍の配偶者を作る 全部難しくないですか... (´・ω・`)
  26. 簡単にビザを 手に入れたい

  27. ご存知ですか? ワーキングホリデー • 海外で「ワーク」と「ホリデー」を楽しめる制度 ◦ ワーク: 「就労ビザ」 ◦ ホリデー: 「観光ビザ」

    • (言い換えると...) 高性能ビザ発行制度
  28. なにそれ 最高じゃん?

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

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

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

    ◦ イギリス ◦ etc. 当時は消極的な選択だった
  32. ちょっと待ってほしい • 年齢オーバーなんだが... (´・ω・`)

  33. (再掲) 就労ビザの取得方法 • 現地の企業にスポンサーしてもらう ◦ 1. 日本支社 (本社?) からの転勤 ◦

    2. 日本から現地企業への転職 • 現地の大学を卒業する • 現地国籍の配偶者を作る
  34. 最短で大学を攻略 • 社会人向けの短期コース ◦ がんばれば9ヶ月で卒業可能 ◦ e.g. UC Berkeley Extension

  35. 復習 しましょう

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

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

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

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

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

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

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

  43. ソフトウェア技術者は 尊敬の対象 • 例)「俺、プログラマやってるんだ」 ◦ 日本: 「そっか、大変だね... (´・ω・`)」 ◦ 北米:

    「すごい! カッコいい!!」 (一部誇張あり)
  44. ソフトウェア技術者 in 北米 • 難しいことを理解していると思われている ◦ いわゆる文系プログラマは少ない ◦ (一般に) 採用ハードルは高い

    ▪ 新卒一括採用もない • インターンからの入社はありえる • 高給取りだと思われている
  45. 北米企業のつらいところ • 解雇が非常にカジュアル ◦ 生存戦略が必要 ▪ 自身の成果を周囲にアピール ▪ 替えのきかない仕事の選択

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

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

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

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

    (Python) • 2015: DevOps エンジニア ◦ 色々な “歴史的経緯” の理解が必須
  50. 北米企業の給与 • (基本的に) 交渉しなければ昇給しない ◦ 例えば 1 on 1 などで主張する

    • 入社時の給与交渉も普通に行われる
  51. 私の北米時代の給与の変遷 • (オフレコ)

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

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

    シニア / ジュニア ディレクター相当? チームリーダー相当?
  54. 北米の技術チームの典型的構成 • プロダクトマネージャ ◦ プロダクトに責任を追う • エンジニアリングマネージャ • ソフトウェアエンジニア ◦

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

    テックリード ◦ シニア / ジュニア
  56. 北米の技術者採用 • スキル要求がかなり限定的 ◦ 日本: 「要プログラミング経験3年」 ◦ 北米: 「要Rails経験3年」 ▪

    チームごとに採用するため
  57. 北米の技術者採用 • カバーレター文化 • リファラル文化 • 電話文化

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

    電話文化
  59. 北米の技術者採用 • カバーレター文化 • リファラル文化 ◦ 人気企業はリファラルがないと面接にたどり 着けない ◦ Meetup

    などであらかじめツテを作る • 電話文化
  60. 北米の技術者採用 • カバーレター文化 • リファラル文化 • 電話文化 ◦ 現地面接の前に電話でふるいにかけること が普通

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

  62. 北米の技術者面接 • ほぼ間違いなく技術者が面接する ◦ 入社したら同僚になる人間 ◦ 入社したら上司になる人間 • ほぼ間違いなく技術的なトピックが聞かれる •

    かなり時間をかけて面接される ◦ まるまる数日かけて選別されることもある
  63. 北米の技術者面接 • ホワイトボードコーディングはある程度のパター ンがある

  64. 北米の技術者面接

  65. 北米の技術者面接 (例) • 一般的なスタックのように、push() と pop() が可 能で、さらにスタック中から最大の要素を返却す る getMax()

    が実装されたスタッククラスを作成し てください。なお、getMax() は O(1) で動作する ものとします。
  66. お品書き 1. 北米でソフトウェア開発者として働く方法 2. 北米のエンジニアリング文化 3. 地理的に分散した開発拠点を作る方法

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

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

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

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

  71. SmartNews の最近の取り組み

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

  73. まだ道半ば

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

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

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

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

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

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

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

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

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

  84. None
  85. Thanks!