理想と現実は別物:エンジニアが直面する痛い現実と向き合う方法
Punch yourself in the face with reality
Punch yourself in the face with reality
エンジニアとして働いていると、完璧な設計や理論が現場で通用せず、現実という名の強烈な「パンチ」を食らうことがよくあります。自分のコードが期待通りに動かない、あるいは複雑なビジネス要件に打ちのめされる時こそ、一度立ち止まって現実を直視してみませんか。この苦い経験こそが、エンジニアを一段上のレベルへ引き上げるための糧になるはずです。
フィリップ・K・ディックのこの言葉が刺さるな。
「現実とは、それを信じるのをやめても、消えてなくならないもののことである。」
「自分のやっていることが実際に機能しているのか、正直に向き合うこと」と「誰も信じてくれない中で勇気を持って突き進むこと」。この二つは正反対だよな。
すごく的を射た要約だ。ランディングページやプレゼン資料、ロゴといった「見栄え」の部分は、昔から成功の鍵になったことなんて一度もない。結局ずっと変わらない難しさは、ビジネスとは誰かの課題を解決するものでなきゃいけないってことだ。B2Bだって結局は特定の人たちが抱えるビジネスの課題を解決するもの。で、人間という相手は、解決するのがとてつもなく難しい問題なんだよ。
作業から「雑音(cruft)」を取り除いてくれて、より多くの作業ができるようになったよ。
LLMを使うようになってから、実は以前よりもコンソールの前で過ごす時間が「増えて」るんだ。
理由は、自分が「コーディング」よりも「リリース(ship)」が好きだからだね。それには退屈で面倒な作業がたくさん伴う。昔なら「取り掛かる前に一休み」ってテレビでも見て休憩したくなるような作業さ。
今はLLMがその辺をかなり片付けてくれるようになったから、わざわざ「休憩」するモチベーションが減っちゃってね。
別に悪いことじゃないんだけど、今は意識的に「休憩時間」をスケジュールに入れなきゃいけなくなった。前はそんなこと必要なかったのにな。昔は仕事の中に自然と「コンテキストスイッチ」のタイミングがあって、それが休憩のきっかけになっていたんだ。
そして、それがAIの最大の危険性だと思う。自分が有用なことをしていると信じ込んでしまうんだ、実際はそうじゃないのに。
納得感のある苦難や摩擦を乗り越えるためにテクノロジーを「構築」するのは、意味に満ちた価値ある挑戦だよ。
でも、他人が作ったテクノロジーを使って、人生から摩擦や苦難を消し去ることは、意味を損なうことにつながるんじゃないかな。
最悪な気分の時は、プログラミングやテクノロジー至上主義というのは意味の盗難じゃないかとすら思うよ。人間特有の問題を解決したという自己満足が、不格好にテクノロジーに落とし込まれて、その代償としてユーザーのデートや交流、あるいは不快感を伴う体験の機会を奪い、結果的に成長や意味の可能性まで奪っているんじゃないかってね。
AIを使ってクライミングアプリの仕様策定やインタラクション、アルゴリズム、ワークフローの整理に5時間単位のセッションを何度も費やしたよ。最終的に出来上がったのは、自分でも何がどう動いているのか把握できないフランケンシュタイン状態のものだった。コマンドラインはぐちゃぐちゃで、同じことをするコマンドが乱立して、似通った冗長な引数ばかり。やりたかったことはなんとなく形になっているように見えるけど、複雑怪奇で結局まともに動かない。まともな進歩があったのは、colmapやOpenMVSのドキュメントにちゃんと向き合って、それまで使ったことのなかった重要なツールを自分のワークフローに取り入れた時だった。
AIは実験のターンアラウンドタイムを飛躍的に短縮してくれたよ。昔なら1ヶ月以上かかる実験が、数日で済むようになった。それでも、自分の理解が現実と追いついた時じゃないと、本当の進歩なんてないんだよね。
現実という名のパンチを、自分自身にどれだけ強く叩き込めるか。AI時代に勝つのはそういう人間だ。
インドの政治家で、選挙キャンペーンに出る前に親族の年長者に強くひっぱたいてもらう人がいたのを思い出したよ。その平手打ちには、頭を冷やして誠実さを保つっていう意味があるんだそうだ。
教師なしAIがゴミの山を作るっていうのはその通りだけど、何百万ドルも稼いだプロダクトを支えていたコードだって、正直それと大差ないようなのも見てきたからね。
変わったのはスケールだけだよ。
昔、アプリをユーザーに見せたり、フィードバックを求めたり、拒絶されたりするのが死ぬほど苦手だった人間として言わせてもらうと。
こういう投稿を見ると、いつも自分が臆病者だと感じさせられていたんだ。「愛着のある機能を切り捨てない」とか「アイデアを検証しない」とか「撤退の決断が遅い」とか「プロダクトマーケットフィットを追わない」とか、そういうのをやらないのは不徳だ、みたいな。
報告しておくと、抗うつ薬やADHDの薬を飲み始めたら、プロダクトマーケットフィットを探すことや、リストにあった他のこと全部が、簡単にできるようになったんだ。
例えば、自分自身に現実を叩きつけるっていう決断だって、プロジェクトを諦めることが「大いなる裏切り」であり、「理論上はありえても、自分はどんな状況でも絶対にやってはいけないこと」だと感じない状態なら、ずっと楽にできるもんだよ。
自制心が強くて、少し厳しい真実を聞かされることで(1)自分の行動を見直し、(2)それが自分や成功の可能性を損なっていると気づき、(3)自分が現実に対して盲目だった場所を認識し、(4)変わることができる、という人たちはたくさんいるんだろう。
そういう人たちは、もし誰かが(4)をやっていないなら、それは(1)から(3)が足りないからだと推測する――たぶん多くの場合でそれは正しいんだろうけど――だから、これが叩くべき適切なレバーだと思い込むんだろうな。
このコメントの締め方が分からないや。
自分はクリエイティブな人間だから、毎日何かを作っていないと脳が落ち着かないんだ。出来が良くないものを作ることもある。昔の上司や通りすがりの人たちから「そんなの作るなんて無駄だ」って何度も言われてきたよ。そんな現実にパンチを食らって目を覚ますこともできるけど、そうしたら作るのをやめてしまうことになる。