見出し画像

がんばるとろくなことは無い

最近、頑張っても、どれだけ自分の時間をぶち込んでも成果が出ず辛い状態を過ごしていた。しかし、つい最近光が見えることになる事件があったので、そのことをシェアしてみたい

「何も成果がありませんでした」という辛さ

 私は趣味で自分用 AI のアプリを書いていたことで、AI の仕事がメインタスクになったのだが、いろいろなことがあって、文字通り私のアウトカムはほとんどゼロだ。正直毎日寝る直前まで頑張っていて、土曜日は勉強か、遅れている場合は仕事に充てている。日曜にしてない理由は、それをやるとマジで壊れるから。自分のPRのレビューが帰ってきたら遅くても速攻で反応している。でも、まるで成果が無い。しかも何カ月も。本当に周りの私にチャンスを与えてくれたり期待してくれた人に本当に申し訳ない気分だ。では、私が AI の事を周りに比べてわかってないか?というとそうでもない。周りの人はクッソ優秀だが、この AI のトピックに関しては私だけが1年以上前からやっていて、プロダクトにもコントリビュートしているので、正直断トツ知識と経験があるのに何故ゼロアウトカムなのだろう。

Bala による衝撃のレクチャー

 Bala は、自分のチームでもクッソ出来る男で、私もいつもお世話になっている。ただ、ちょっと前まで彼は AI は使いたいけどまだいいや的な雰囲気だった。私は上記の通り、AI に自分の時間を全部振り当ててる。彼は今回に関してはさすがにそんなことは無いだろう。
 うちのミーティングで、AIで何か作ったり、AIのノウハウをシェアするミーティングがあるのだが、彼がどうやって AI を使っているか?というノウハウをシェアすることになった。
 彼はプロダクションのコード書きに AI を使ってない様子だったが(きっとかれはそれをする必要がない。クソ高速なので)Design Doc から、技術調査、プロトタイピングから、ドキュメントのアップデートの連携、ツールの使い方など実に見事としか言えない使い方だった。思わず私はこうコメントした。

自分の AI の使い方は正直 Old Fashioned やったわ。勉強しなおさねば。

思わずコメントしてしまった(本当は英語で)

絶望の後に思ったこと

 この時自分は正直絶望的に思った。なぜなら、自分は何年も前から AI やっていて、プロトタイプ作って挙動を理解したり、エージェントをディープコードリーディングして構造理解したり、実際に動作するアプリ書いて精度あげたり、AI に全振りしている。自分が面白いと思っていることに、こんなチャンスを与えてもらったのに、ここで自分がうまくできなかったら、本当に自分に価値が無いと思ったから、ここ半年ぐらい、自分の時間全部ぶっこんでやってたつもりなのに、あきらかにあんまりやってないけど、技術的センスがとても優れた同僚が、いともあっさり、自分を上回ったのだ。

あかん、俺勝てないわ…

マジこう思った

アホみたいに時間ぶっこんだ自分が、センスの良い人に一瞬で敗北した。これが出来る人との差かよ。現実は残酷だなぁ。もちろん Bala は的じゃないし、勝つ負けるじゃないけど、自分のクソのようなセンスの無さ、努力してもなんも成果があがらない頭の悪さが正直嫌になってその日は結構イライラして荒んだ気分だった。言っておくけど、Bala は何も悪くないw 彼は最高にいいやつだ。

しかし、同時に思ったことがある。これは、明らかに自分の根本的な思考回路の問題でこの配線を変えない事には一生彼らに追いつけないどころか、AI時代の今、チームに貢献すらままならないだろう。自分を一旦ゼロリセットしよう。それでなければ自分は生き残れないと思った。

ゼロリセットの方針

 今回のケースは相当にショッキングなことだ。今回に関しては、経験も技術力も自分の方が本来上なのに、それでも負けるのだ。アウトカムが出ないのだ。本当に申し訳なさしかない。ではどうしたらよいのだ?自分でエンジニアとしての、センスと才能に明らかに劣っている自分の一体何が問題だったのか。そんな時に、たまたま雑談で、自分の横に座っているクリス話していた。彼は子供が三人いる。自分はそうではない。彼は、パートナーという役職で、プリンシパルの1つ上だからそういうレベルの人はほとんど見かけない。それぐらい彼は優秀で、責任も重くて、いつもクッソ忙しそうなのに、3人の子育てをとっても大切に頑張っている。私が彼に、結婚して、小さな子供が3人もいたら本当に大変やろう。どうやって時間を確保しているん?と聞いたら彼はこう答えた。

それが不思議なことに、こうやって時間が無くなると、どうやって「かしこく」やるかを考えるので、出来るようになってしまうんだよね

クリス曰く

そういえば、昔、むっちゃくちゃ優秀な、Paul が、あるプロトタイプを作った時に「半年ぐらいどうやったらいいかずっと考えていた」と言っていたのを思い出した。ちなみにそのプロト自体は1日でやっていた。自分はというと、絶対に今回は成果を出したいので、自分の時間全部ぶっこんでプロト書いたり、バリューがありそうな PR を全力で作ったり、めちゃくちゃいろんな事考えて実験して、最も効果のありそうな事をやったり、無限に時間をぶっこんでやっていた。才能の無い自分が出来る人々に近づくにはこれしかない。努力するしかないやん。これが間違いだった。

自分がどんだけ頑張っても成果が出なかった理由

 自分が成果が出なかった理由は「頑張ったから」また、「無限に時間をかける覚悟があり、実際そうした」から。自分は一体どうなったか?というと、現在の既存のサービスのアーキテクチャを見て、こうなっていたら精度が出ない、自分が最初に構想したやりたいことを実現するには、こういうコントリビューションをしないといけないということで、ディープコードリーディングをしたりして、がっつりコントリビュートしていた。
 ところが、サービスが成熟するにつれて、「スピード開発」モードから、「品質重視モード」に代わって来て、外部からのコントリビューションを制限するようになった。
 そうなると、外部コントリビューターである私の PR の優先順位は落ちるので、なかなかマージされなくなってくる。自分の書いたコードの部分を変更したくても、ものすごく時間がかかることになる。しかも、なかなかマージがされないと何回もリベースとかしたり、頻繁ではないコメントに対応したり、マージまでの期間があると大きなリファクタリングとかあったりして、コードの分析から再開など、何週間も前にテストしたものを何回も、何回も非生産的な事をしないといけない。でもそれこそが、チームの開発のブロッカーであったりもした。
 その問題は、マネージメントの人が私を助ける人々をアサインしてくれたから物事が進むようにはなった。しかし、それこそが問題なのだ。私は時間をぶち込む覚悟があるから、どんだけ時間をつかってもやってやると思っていたが、それだと、結局やる物量が増えているのだ。

Be Lazy 再び

最近本を出版した Drew Robbins という私の元上司のような立場の人が居る。彼は、「Be Lazy」という言葉を教えてくれた。しかし、彼の素晴らしい本を読んだこともあって、それに対する解像度が上がっていた。Drew にこの前久しぶりに会ったが、彼の本にも書いてあった次のようなことを言っていた。

楽に出来るように一生懸命働くんだよ

Drew Robbins曰く

自分は、AI に関しては、実力と経験がある。独身なので、使える時間がある。だから、他の優秀な人に対抗するために、全部の時間とエネルギーをぶち込める。でもこう考えたら絶対に勝てない。
 私は技術的に難しいけど、上手くいけば中期的に成果が大きく出ることを頑張っていたが、それは自分のこだわりであり、誰でもできるような、自分でコントリビュートもしなくて良い、小さく確実に成果が上がることをやっていたら数百倍楽に成果が出ていたのでは?
 Bala は、AI ツールを使いこなしていたが、自分は、AIツールをもっとうまく使うことに時間を費やしていれば、もっと楽に成果を出せていたのでは、ああ、これって、Drew が言ってた Be Lazy やん。自分でやる「物量」増やしてたら、ただでさえスーパー優秀な人に並べるはずもないやん。神原って美しいけど、4カ月考えて、たった1日だけ実際にコーディングしてバリューを出した Paul。自分は毎日のように時間がかかるソフトウェア開発、そして、自分のソリューションにこだわり、他チームへのコントリビューションをしてそのメンテや対応を全力でやって、時間を消費して、本人も疲弊した。

 そら勝てるわけないやん。

自分の新しい口癖

 それから、私は自分の習慣、考えを完全に転換させた。重要なことは、何かのバリューを出すことを、どうやったら「一番楽に」出来るか考えることだ。物量を減らして、きっちりバリューを出すために、何かをやるときに自分で「どうやったらもっと楽にできるかな?」と口に出して言うようにした。普段なら、時間をかけると出来るから、やってしまうことでも、立ち止まって「どうやったら楽に出来るかな」と考えることで、先に GitHub Copilot のより効率的な使い方を調べてから、それを実践して丸ごと Copilot にやらせている間に、自分は人間でないとやれない簡単なタスクを実施した。

「楽」こそが、本当に達成したいことに近づけてくれる。

かつての自分は、がんばれることに「楽」をすることに若干の罪悪感があったが、それではダメだ。「楽」は生産性を高めてよりバリューを出すための強力な最終兵器だった。達成したいことを達成するために、「楽」を追求するのが新しいストラテジーだ。自分をどんどん「楽」にする努力をして、無駄なことをしないことに敏感になると、余裕も生まれて安定するし、より「バリュー」的に多くの事が出来るようになる。
 自分をメンションして質問をしてきている人に対しては、「これをどうやったら楽にできるかな?」と考えた。普段だったら、調べてメッセージを沢山書くところでも、「楽」になるように、最小限のメッセージで彼らが欲しいだろう情報だけをペーストして終わりにした。そしたら、彼らにとっても
読むのが「楽」だろうから。

楽をすると、相手も楽になることを考える

 こういうことをしていると気付いたが、自分が無限に時間を使ってもよいと思っていると、鏡の法則で、他の人がメッセージを沢山読むだろうことに無頓着になるのだが、自分が「どうやったら同じことを楽にできるだろう」「何をやらなくて良いだろう」とか「楽になる」方法を考えていると自然と相手も楽になる方法を考えていることに気が付いた。

 そうやって実践してみると、昨日まで死ぬほど頑張っていても成果がでず苦しんでいたのに、今は全然「楽」だ。そして、昨日よりバリューが出ている感がある。「そもそも、これは自分がやらなくてもよいのでは?」「自分一人で考えるよりも、良く知っている人にレビューしてもらった方が良いのでは?」「ChatGPT と壁打ちして、翻訳してもらったら楽ちゃう?」そんな感じで、業務が終わるまで、一切「忙しさ」を感じず、頭の CPU 使用率 80% ぐらいのまま業務を終えることが出来た。

終わりに

 この習慣はもしかすると、自分が苦しんできたかなり根本原因にヒットしているのではないかと感じている。これからも継続してみよう。

ちなみに、私の本はありがたくも11万部ぐらい買っていただいたので、あと1万部いって切りよくなりたいところです。本当にありがとうございます。




いいなと思ったら応援しよう!

ピックアップされています

おすすめ

  • 80本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
米マイクロソフトの Azure Functions プロダクトチームのシニアソフトウェアエンジニア。シアトル在住。Serverless, DevOps, Agile などソフトウェア開発のよりよいやり方に興味があります。ブログは個人の意見であり所属会社と関係ありません。
がんばるとろくなことは無い|牛尾 剛
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1