世界を動かす技術を、日本語で。

生産性の蜃気楼

2026年7月30日原文(frantic.im)

概要

  • Facebookの伝説的エンジニアBobの逸話紹介
  • 生産性オタクだった筆者の驚き
  • Bobのシンプルな開発スタイル
  • 本質はツールよりも課題解決力
  • 新しい働き方への考察

Facebookの伝説的エンジニアBobの開発スタイル

  • Facebook Groups をはじめ様々なプロジェクトを手掛けた伝説的エンジニアBobの存在
  • 社内ハッカソンで 連勝を重ねた実績
  • 筆者自身は 生産性重視のカスタムVim環境 を構築
    • 独自のシンタックスハイライトやHack用スニペット
    • tmuxやmosh、hphpdショートカット、gitエイリアスを駆使した開発環境
  • ハッカソンでBobと隣席した際の 期待感

Bobの驚くべきシンプルさ

  • Bobが使用したのは プレーンなSublime Text
  • シンタックスハイライトも不完全で、 コードの色分けも間違いだらけ
  • ライブリロードやデバッガも未使用
    • printfを埋め込んで ログを確認 しながら開発
  • 筆者の 衝撃と困惑

本当に重要なもの

  • Bobはその日も ハッカソンで優勝
  • 筆者はBobの開発手法ばかりに気を取られ、 彼のプロダクト内容を見逃す
    • 後にFacebook Marketplaceへと発展した Groupsの売買投稿機能 が題材
  • エディタやツールよりも、プロダクトの直感や課題解決力 が重要

ツールと本質的価値

  • X(旧Twitter)などで 新しい働き方やツールが日々登場
  • 革新的なものもあるが、 最終的に重要なのは「正しい問題を解決すること」
  • 手段より目的重視 の姿勢の大切さ

Hackerたちの意見

私が直接話した中で一番のアーティストは、今でもPhotoshop CS6を使ってるんだよね。(ディスプレイなしのWacomでね。)

プロフェッショナルって、道具に関しては保守的だと思う。マスターするまでに時間がかかるし、変えるのも難しいからね。

生産性のことじゃなくて、自分の道具で楽しむことが大事なんだよ。

OPは「生産性」って何のためにあるのか、暗に問いかけてるね。最近それについて考えてて、たどり着いた仮説は「苦痛を減らすこと」なんだ。プログラマーの生産性とか、パフォーマンス最適化の多くは、エンジニアが問題の曖昧さや政治、リスク、失敗の恐れなどの苦痛から逃げるための手段なんだよね。でも、世界から来る問題を解決するには、世界と向き合わなきゃいけない。例えば、ユーザーフローを頭の中で考えるのが面倒だったり、誰かに協力してもらうために戦略を提案するのが大変だったり。痛みのための痛みは信じてないけど、良い成果には運動能力が必要で、トレーニングするには痛みを管理するスキルが不可欠なんだよね。

これめっちゃ大事だよ。多くの技術者が、自分の環境にこだわりすぎて、実際に作ってるものよりもそっちに時間を使っちゃってるのを見てきた。コーダーとして「90%の時間はタイピングに費やしてるから、速く打てるように最適化すべき」って考え方は、ほんとに間違ってる。90%の時間は考えることに使うべきで、その大半は読書だよ。

90%の時間は考えることに使うべきで、その大半は読書だよ。 それが正しいかどうかはわからないけど、単なるCRUDアプリ開発者の私たちには当てはまらないかもね。

これはあくまで私の意見だから、あなたが見ていることとは違うかもしれない。私もそうだったけど、AIを手に入れてからは、今まで作れなかったクールなものを作れるようになったんだ。(でも、少しずつスキルが失われて、基礎コードについてあまり知らなくなってる。)知ってるコードについては、古いコードを修正したり改善したりして、新しいトリックやテクニックに驚いてるけど、深く学んでるわけではない。セットアップにこだわるのは、いつも頭が私を騙してるように感じてた。AIが「ハンプ」を越えるのを楽にしてくれたから、試してみるだけなんだ。これはセットアップを完璧にする別の形だと思う。セットアップに集中するのは、実際の問題に取り組むための難しい思考を避ける方法かもしれない。これは誰もが越えなきゃいけないハンプだし、簡単に越えられる人もいれば、そうでない人もいる。失業中にヨーロッパを旅してたとき、ソフトウェアエンジニアの役割に入りたいと思ってたけど、ずっとQAテストの役割に押し込まれてた。私はCSの卒業生で、大学でも同じことをやってたから、結局QAに行ったんだと思う。InterviewCakeにお金を払って、ヨーロッパのホステルやカフェで、セットアップやエディタを完璧にするような無駄なことに何日も費やして、問題セットに深く集中することができなかった。これもADHDの症状かもしれない。最近薬を始めて、ものすごい生産性の変化に涙が出るくらい、セットアップを完璧にすることに無駄にした人生の半分を悔いてる。

これめっちゃ大事だよ。多くの技術者が、自分の環境にこだわりすぎて、実際に作ってるものよりもそっちに時間を使っちゃってるのを見てきた。 https://www.youtube.com/watch?v=urcL86UpqZc&t=112s

コーダーとして「90%の時間はタイピングに費やしてるから、速く打てるように最適化すべき」って考え方は、ほんとに間違ってる。これは少し誤解を招く考え方で、実際に仕事をすることよりもセットアップを気にする人がいるのは確かだけど、「タイピングを最適化する」っていうのは、実際には「考えることに戻る速さを最適化する」ってことなんだ。経験豊富なプログラマーがシンプルなエディタをすごく早く使ってるのを見たこともあれば、IDEをすごく遅く使ってる人もいる。この短い記事では、「ボブはマウスを右クリックして正しい場所で「縦に分割」を選ぶ必要があるのか、それとも瞬時にそれを実現できるのか?」みたいなことには触れてない。キャリアの中でペアプログラミングをたくさんやってきたけど、多くの人は、たとえ優れた開発者でも、私が自分の親がコンピュータを使うのを見ているように感じる。もちろん、最終的には成果が全てなんだけど(この記事の主張でもあるけど)、自分の選んだツールを効率的に使えることには確かに意味があるよね(ボブがそうしてるみたいだし)。

なんか面白いけど、非技術系の人たちは、プログラマーは「メインフレームにハッキングしてる」みたいにタイピングしてるときだけ生産的だと思ってるんだよね。実際、これに関して風刺アートを作ったことがあって、企業がエンジニアにダンスさせるっていう偽ニュースリリースを作ったんだ。AIエージェントがコーディングしてるときに「士気を高めるため」って理由でね。でもそのデータを使って、今後のダンスボットのトレーニングデータセットを作るっていうオチがあった。

「コーダーとしての90%の時間はタイピングに費やされるから、タイピングを速くする能力を最適化すべきだ」っていうのは、本当に間違ってる。90%の時間は考えることに使うべきで、その大半は読むことだよ。 「90%の時間がタイピングに費やされる」と主張するソフトウェアエンジニアは、業界の二つの基本的な公理を理解していない。ソフトウェアは問題の解決策の具現化である。解決すべき問題を定義しなさい。ソフトウェアを作るときは、それが問題に対する理解のスナップショットであることを忘れないで。あなたのアプローチ、明確さ、そしてその問題に対する解決策の適切さを、未来の自分を含めて全ての人に示すものだから。発言は慎重に選ぼう。「コーディング」は、適切なタイミングで行われると、すでに理解している問題に対する解決策を具現化するだけのものだ。つまり「タイピングの練習」だよ。これを言いたいだけなんだけど、君の意見には賛成だよ。

90%の時間は考えることに使うべきで、その大半は読むことだ。君はどうかわからないけど、俺はコードをタイピングすることでたくさん考えてるんだ。実際、コードをタイピングしないと考えるのは難しいと思う。これはコーディングだけに限ったことじゃないよ。一般的なアイデアでも、書き出そうとすると洗練されるからね。

Hacker Newsで議論の続きを見る