三流プログラマがなぜ米マイクロソフトの開発者になれたのか? ガチ三流プログラマが超巨大クラウドの中の人に転生した話。Regional Scrum Gathering Tokyo 2022
代表的なアジャイル開発手法であるスクラムをテーマにしたイベント「Regional Scrum Gathering Tokyo 2022」が、1月5日から7日までの3日間、都内およびオンラインのハイブリッドで開催されました。
そのクロージングセッションとして行われたのが、現在シアトル在住でMicrosoft Azureの開発を担当している牛尾剛氏による「アメリカの超巨大クラウドの中の人に転生したガチ三流プログラマが米国システム開発の現実をリークする話」です。
子供の頃からプログラマになることを目指しながらも、同僚からは「プログラミングの才能がない」とはっきり言われるなど、自分はガチの三流プログラマだと称する牛尾氏。
その牛尾氏はなぜ、どうしてMicrosoft Azureのプログラマというポジションを獲得できたのか、そして3年間米国でプログラマとして働いた経験から、日本と米国(マイクロソフト)の開発現場にはどんな違いがあるのか、なぜ米国は優れたソフトウェアを作り出せる組織を作れるのかなどを、会場とのQ&Aとともに赤裸々に語りました。
本記事ではほぼ90分におよぶセッションの内容を、前編、後編(1)、後編(2)の3本に分けて紹介したいと思います(この記事は前編です)。
ガチ三流プログラマが超巨大クラウドの中の人に転生した話
牛尾と申します。
私のバックグラウンドはこんな感じです。ももと大手SIerでアジャイルコンサルタントいうかコーチをやっていて。今は米国シアトルのエリアに住んで、マイクロソフトでAzure Functionsっていうサーバレスのサービスのクラウドの中の人をやってます。
今日は残念ながらグリーンカードのプロセス中でそちらに行けなかったんですよね、超行きたかったんですけど。
最初に、僕が何でクラウド開発者になったかという話をします。
僕の子供の頃っていうのはシャープのポケコンから始まってX1とかMZ-2500とか研究室ではSunのSPARCとかを触っていました。コンピュータが好きだったんですよね。
こんな子供の頃からコンピュータに触っていても、実はプログラミングはそんなできかったんですよ。雑誌に載っていたゲームのコードを丸写しするみたいな。
でも僕はプログラマにすごくなりたかった。NECの入社面接のときに「UNIXのコマンドを担当したいです」って言いました。それはSunのSPARCがすごいかっこいいなと思っていたので、そういうのを担当したいなと思ったんです。
けれど、結果どうだったかっていうと、ほぼ営業配属みたいな感じで残念でした。だから僕は5年ぐらいは営業みたいな仕事をしてました。
でも僕はプログラマになりたかったんですね。
で、あるときに、吉田さんという人が僕をシステムエンジニアにしてくれたんです。最高の気分でした。
システムエンジニアになって、吉田さんや他の人の下でも働いたのですが、システムエンジニアとしては役立たずでした。チャンスを与えてもらっても全然プログラムが書けず、最悪でした。
だから僕はこの頃から、どうやったらできるエンジニアになれるのかな、というのをすごく考えてきました。
どうやったらできるエンジニアになれるか考える中で、あるきっかけになったのがこれです。「アジャイル」ですね。
アジャイルなら「僕でも出来るかも」って思った
2001年ぐらいのときに、オブジェクト指向とアジャイル。当時はアジャイルという名前もなくて「エクストリームプログラミング」(XP)でしたけど、それに出会って衝撃を受けたんですね。
ウォーターフォールをやってるときは、できる気がせえへんわって正直って思ってました。もう絶対無理やなと。
で、このXPというかアジャイルに出会ってから、「僕でも出来るかも」って。自分が間抜けであっても、普通の人と戦えるようになるんじゃないかなと思いました。
自分に武器が欲しかったんですね、多分ね。武器が欲しくて、コミュニティに参加したり、事例を自分で実際作ってみたり、そういうことをしていって、アジャイルを、結構好きで、すごいやってきたんですよね。
そこで僕は、人にプレゼンをするとか、人に何かを伝えてコーチをするとか、コンサルティングをするとか、教育を行うとか、そういう分野ではだいたいうまいこといったんですよ。
だから僕は、何をやっても才能がない、というわけではなかったんです。
でも僕は、本当はプログラマになりたかったので、スキを見つけてはプログラミングができるようなジョブを自分にアサインするのですが、これがまた才能がない。ほんまにうまくいかないですね。
こうはっきり言われたこともありました「牛尾さん、PMなら才能があるのに、なんでプログラミングするんですか? そこは才能ないのに」って。もう何回も言われました。
たぶん僕と一緒に仕事をした人はみんな知ってると思いますね。
仕方がないのでまたコンサルティングに戻っていく。というのが僕の人生のイテレーションでした。
アジャイルをやっても、自分は薄っぺらいなと思っていた
だからアジャイルのコーチやコンサルティングに仕事を絞ろうかなと思った時期もあるんです。
けれど、アジャイルのコンサルタント、コーチとしての「壁」みたいなものもずっと感じていました。
自分が十何年かくらいアジャイルをしていて思ったのは、自分は薄っぺらいなと。
自分とほぼ同時期にアメリカの方でアジャイルを始めた人たちは、ものすごい事例を発表するとか、新しいやり方をみんなとシェアするとか、すごいプロジェクトを経験して、ものすごい進化をしていたんですよね。
ところが僕はというと、もう十年以上アジャイルコーチとかやってるのに、ずっと入門です。毎回「アジャイルとは」「アジャイルの導入」「TDDとは」みたいな、ずっとずっと同じことばっかりで。
仕事はたくさんあるし、うまいこと行ってるんです。でも、自分の同期のアジャイルコーチとかはすごく活躍していて、彼らと比べると自分は明らかに薄っぺらいな、というのをすごい思ってたんです。
彼らが自分とは何が違うんだろうと考えたときに、自分が最初に憧れたケント・ベックという人を思い浮かべてみたりとか、平鍋さんだったり、川口さん、永瀬さん、KKDさん、Ryuzeeさんとか、いろんな人の顔を思い浮かべて。
彼らと僕の大きな違いがあって、彼らはそもそもテックの世界で成功しているんですね。そもそも技術力が高い。
僕はというと、プログラマ失格でアジャイルをやった人、そういう人なんですよ。
自分のキャリアを見直して、再びプログラマに挑戦を決意
これ平鍋さんが2011年か12年ぐらいにブログで、発表したやつなんですけど、アジャイルにはレフトウィングとライトウィングがあって。
参考:アジャイルの「ライトウィング」と「レフトウィング」:An Agile Way:オルタナティブ・ブログ
レフトウィングは人系。プロジェクトを回す、マインドセットみたいな話。
もう1つのライトウィングが「TDD」であるとか「CI/CD」であるとか技術系のプラクティスですね。
この技術系の進化はすごく激しいので、クラウドがやってきたり機械学習がやってきたり激しいじゃないですか。ここはつねにアップデートしていくことが、現在の人たちがアジャイルを使って生産性を高める、よりよい開発を行っていくために欠かせないじゃないですか。
僕はこの部分が技術的に弱い。他の人はここの部分が完璧で、例えばケント・ベックはJUnit書いた人ですからね。
そこにすごい違いがあるわけですよね。
だから技術力の必要性を感じたこと、そして子供の頃から僕は理屈抜きにずっとプログラマになりたかった。
だからこの2つを持って、僕は自分のキャリアを見直して、プログラマになろうと思ったのです。
マイクロソフトのエバンジェリストになる
でもいきなりプログラマになれる技術力は、当然ないわけです。だってPMとかコーチとかやってた人が、急にプログラムを書けるわけがないです。
で、マイクロソフトにちょうどエバンジェリストという職種があって、マイクロソフトに入社します。
これは技術力はそんなに必要ないんです。どちらかというと、いかに技術を分かりやすく人に伝えるとか。だから僕が今までやってきたようなプレゼン力であるとか、コンサルティングであるとか、そういうのが試される。
自分にとってはそこで会社にコントリビュートしつつクラウド技術を学べるなあと思って、自分にとって技術力を高める良いステップだと思ったんですね。
あとはエバンジェリストがインターナショナルのチームだったので、アメリカに出張する機会ってのはすごく多かった。
僕はアジャイルコーチだったので、僕は日本とアメリカって何が違うんだろうってものすごい興味があったんです。
だってほとんどのソフトウェアプロダクトがアメリカから来ている。新しいコンセプトもほぼアメリカからですよね。彼らがそういうものを生み出している背景に何があるんだろう、というのはすごい気になってたんです。
三流プログラマでもクラウドの中の人になれた理由は「偶然」
だから、僕はアメリカでエンジニアをやりたかったんです。
そう言っていたらですね、何年後か、忘れた頃に自分のマネージャがそれをかなえてくれて、リロケーションすることができた。
それで3年ぐらい前にシアトルに移住しました。
その後、アメリカでクラウドのエンジニアになる方向で、マイクロソフト社内での転職なんですがジョブインタビューを受けて、普通の手続きをして、今のこのAzure FunctionsというMicrosoft Azureのサーバレスのプラットフォームの開発者になれたんですよ。
どうやって転職したかについては今日のイベントの本題ではないので、もし興味がある人はブログに書きましたので、見ていただければと思います。
ただその中で今日は一番重要だなと思うのを1つだけ紹介しておきたいと思います。
それは河野さんの一言という話です。河野さんというのは、何年か前のこのイベントでキーノートをされた人です。
河野さんは僕と同じ組織にいます。Ph.D.(博士号)持ちで、ものすごいスキルなんです。
で、マイクロソフトの制度でMVPというのがあって、そこで表彰される人は本当に技術力が高い人ばっかりなんですが、そのMVPの人とかが河野さんに「どうやったらクラウドエンジニアとして中の人になれるんですか、どうやったらそうなれるんですか?」と、すごい質問してたんですね。僕もその現場に何回か立ち会ってるんですけど。
で、河野さんがいつも言ってたことがあって、どんなこと言ってたかっていうと「(転職の面接を)受けましょうよ」って言ってるんですよ。
でもみんな、「僕には難しいです」とか「英語が……」とか、みたいなことを言ってました。で、僕より明らかに技術的に優れた人たちでも誰一人クラウドエンジニアへの面接を受けなかったんですよ。
河野さんがそう言い始めてから初めて実際にクラウドエンジニアの面接を受けたのが僕で、それで、受かりましたと。
僕は何度も言ったとおり、プログラマとしてはマジで三流ですよ。でも、受かったんですよね。なんで受かったかっていうと、正直偶然ですね。
というのも、当時マイクロソフトはアトランタに拠点を広げるときに大学を出たての人をたくさん雇う必要があったんです。そこで、技術力よりもそういう人たちに技術を分かりやすくレクチャーしてくれるような能力を持ったエンジニアを探してたんです。
だから元エバンジェリストの僕としては、そこに最高にフィットして採用されたんです。技術力じゃないんですよ。
僕は正直、受かると思ってなかった。でも、自分の憧れ、夢でしたからね。偶然でも受けたら受かったんです。それだけなんですよね。
だから僕も、他の人から同じ質問されたら多分、河野さんと同じように「受けましょう」って言うと思います。
≫後編に続きます。「超巨大クラウドのシステム開発現場を行動観察。ガチ三流プログラマが米国システム開発の現状をリークする話」へ。
(追記 2023年8月4日 牛尾さん本人からの申し出で、一部の表現をより正確に変更しました)
関連記事
2016年に行われたエバンジェリスト時代の牛尾さんの講演も非常に大きな反響がありました。あわせてお読みください。
- 「本番環境などという場所はない」マイクロソフトがSaaSの失敗と成功から学んだ、アジャイルからDevOpsへの進化(前編)。Regional SCRUM GATHERING Tokyo 2016
- 「本番環境などという場所はない」マイクロソフトがSaaSの失敗と成功から学んだ、アジャイルからDevOpsへの進化(後編)。Regional SCRUM GATHERING Tokyo 2016
Regional Scrum Gathering Tokyo 2022
あわせて読みたい
超巨大クラウドのシステム開発現場を行動観察。ガチ三流プログラマが米国システム開発の現状をリークする話(1) Regional Scrum Gathering Tokyo 2022
≪前の記事
eBPFプログラムを手軽にコーディング、ビルドし、コンテナ形式にパッケージングしてシェアできる「Bumblebee」オープンソースで登場