- Facebookの伝説的エンジニア Bob は、精緻な開発環境がなくてもFacebook Groupsをリリースし、ハッカソンで次々と成果を出していた
- 基本設定の Sublime Text と
printfログだけを使っており、シンタックスハイライトは不正確で、ライブリロードもデバッガもない環境だった - 一方、周囲の開発者たちはVimのシンタックスハイライトやスニペット、
tmux、mosh、hphpdのショートカット、Gitエイリアスなど、複雑なツール構成こそが生産性の核心だと考えていた - Bobのハッカソン優勝には、エディタ設定よりも プロダクト感覚と直感、つまり何を作るべきかを判断する能力のほうが大きく作用していた
- 新しい作業方法が変化を生むことはあるが、最終的な成果は 正しい問題を解くこと から生まれる
複雑なツールと実際の成果の違い
- Bob はFacebook Groupsをリリースした多作なエンジニアであり、ハッカソンで次々と成果物を出していた伝説的な人物だった
- 当時、生産性に没頭していた同僚は、FacebookのPHP方言である Hack のために自作したVimのシンタックスハイライトとスニペットを使っていた
mosh上でtmuxを実行し、カスタムのhphpdショートカットやGitエイリアスまで設定していた
- Bobの作業スタイルは、それとは対照的に非常にシンプルだった
- 追加設定のない Sublime Text を使っており、コードの色分けの半分ほどが誤って表示されていた
- ライブリロードやデバッガの代わりに、コードに
printfを入れてログが出るのを待っていた
- その日のハッカソンでBobは優勝し、その成果物はFacebook Groupsで売買投稿をサポートする機能だったと記憶されている
- この機能は後に Facebook Marketplace へと発展した
どのように作るかより、何を作るか
- 複雑なツールに集中すると、作業方法である どのように に埋没し、作業対象である 何を を見失いかねない
- Bobの高い生産性を生んだ核心は、エディタ設定ではなく プロダクト感覚と直感 だった
- Xには毎日のように、すべてを変えそうな新しい作業方法が登場しており、その一部は実際に変化を生む可能性もある
- しかし最も重要なのは、ツールや作業方法そのものではなく 正しい問題を解くこと である
1件のコメント
Hacker News の意見
道具を大切にする職人と道具に執着する人を二分するのは誤り。良い道具はおもちゃではなく目的のための手段であり、自分も作業フローに合わせたシェルスクリプト、Emacs 関数、ウィンドウ配置ツールなどを作るのに何日も費やしてきた
その結果、構文ハイライト、コードの探索・分析、画面配置、Git 操作が数回のキー入力だけでできるようになり、集中を妨げる要素が消えた。椅子、シェルプロンプト、エディタのような作業環境に投資しつつ、快適になった後はそれを忘れて実際の問題に集中すればよい
ただし終わりのない道具調整は、しんどくて面白くない課題を避けようとしているサインかもしれず、これは道具自体のせいという単純な話ではない
特に LLM 時代の道具は複数のエージェントやターミナルを行き来し続けることになる。この頻繁なコンテキストスイッチは楽しさとフロー状態を奪うので、誰かが解決策を見つけてほしい
実際に作ることより環境設定の最適化に多くの時間を使う技術者をたくさん見てきたし、自分もそうだった。コーディング時間の 90% がタイピングだから入力速度を上げるべきだという考えは誤りで、時間の 90% は思考に、その大半は読むことに使うべきだ
適切な時点でのコーディングは、すでに理解した解法を具体化するタイピング作業に近い
AI は始める際のハードルを下げてくれたという点で、別の形の環境改善でもある。以前 QA から開発者に移ろうとしてヨーロッパを旅しながら InterviewCake を勉強していたときも、問題を解くよりエディタ設定をいじることに時間を無駄にしていた
これはADHD の症状かもしれない。最近薬物治療を受けてから生産性が大きく変わり、実際の仕事をするより設定を完璧にすることに人生の半分を浪費していたのではと、涙が出るほどだった
実際に使われたり、お金を払ってもらえたりする製品を作れない VC 投資先企業は存在する。彼らは企業価値を正当化するために、どれだけ忙しく生産的かを見せようとし、AI ブームも何を作るかより生産性や方法論にばかり集中している点で同じ文脈かもしれない
https://components.news/the-gamer-and-the-nihilist/ は、こうしたニヒリスティックなスタートアップと、人々がお金を払って使う製品を作るゲーム開発会社を比較している。生産性アプリが Product Hunt の成果物のほぼ 40% を占める経済では、実際に何かを作るより、作っているように見せることに労力が投じられることもある
遅れを取らない程度にだけ生産性ツールを作るか使い、それ以上は罠だと見ている。以前は四半期に一度見直していたが、AI 以後は週に 1〜2 日を道具改善というメタ作業に使っており、関連ツールが標準化されれば減ると予想している
道具の専門家というイメージが強くなると、実際に価値ある仕事を逃すだけでなく、秘密の生産性ノウハウを持つ人だと評価されるようになる。期待ほど差がなければ、ほかの判断まで信用されなくなるかもしれない
コンピュータの前にいる時間が短いほど、より多くの仕事を片づけられたし、モニターを 3 台から 1 台に減らしたら生産性が大きく上がった。野菜を切ったり芝を刈ったりしているときに大半の問題を解決しており、光る技術の前に座っているからといって、より速くより良い判断ができるわけではない
顧客企業の開発チームより良い成果を出せる理由も、正社員ではなく、十分に立ち止まってゆっくり考えられるからだ。Teams のステータス表示を緑のまま保とうとする圧力のような生産性の演技が、多くの組織で愚かな意思決定を生んでいる
生産性が存在する理由を考えた末に、苦痛を減らそうとする試みだという仮説に至った。プログラマーの生産性を含むさまざまな性能最適化は、問題領域の曖昧さ、組織政治、不明確さ、失敗リスクといった苦痛を避けるための、エンジニアの逃避先になりがちだ
しかし現実の問題を解決するには、ユーザーのワークフローを退屈なくらい細かく検討し、共同戦略を明確に提案して他人の協力を得るなど、現実と向き合わなければならない。苦痛そのものを美化する必要はないが、良い成果物にはアスリートのような訓練が内在しており、競技場で必要な苦痛を管理する能力を育てるべきだ
核心は評価されやすいかどうかにある。きらびやかな道具は誰が見ても感嘆できるが、空のエディタや骨組みコードの中に優れた新製品や機能を見る人は少ない。だから目に見えやすい道具に関心が集まり、難しく不明瞭な「何を作るか」は顧みられない
道具には Marie Kondo 式の基準を適用している。使っていて楽しくもなく、暮らしを楽にもしてくれないなら捨てるし、そうでなければ残す
2004 年、ほとんどが初級開発者で構成された小さなチームが、優れた大規模な Java 研修を受けることになった。研修前は IntelliJ と Eclipse の設定に執着して激しく議論していたが、講師は意外にも基本のJDK ツールと Notepadだけを使うよう勧めた
内部で何が起きているかを学ばせるのが目的で、生産性にもおそらく大差はないと言っていた
環境最適化に執着するのは、注いだ努力と報酬のつながりが目に見えて具体的で、物理的だからだ。一方で抽象的な学習はそうではない。椅子を最適化する作業より学習課題のほうがはるかに多いのだから、抽象的な学習ももっと具体的に感じられる方法があるとよい
生産性ではなく、おもちゃで遊ぶ楽しさの話だ