55 ポイント 投稿者 GN⁺ 2025-05-07 | 21件のコメント | WhatsAppで共有
  • 些細な自動化を繰り返していると、ある瞬間からあらゆるツールやシステムが直すべき対象に見えてくる認知の臨界点に達する
  • 技術力が積み上がるほど、問題を単に認識するだけでなく、責任のように感じてしまう感情の重みを抱えるようになる
  • 直したいという欲求は、単なる生産性向上を超えて感情を調整する手段にもなり、ときには自分が作ったシステムに自ら閉じ込められる結果を生む
  • システムは時間が経てば必ず壊れ、完全な解決という幻想は存在しない
  • 結局本当に必要な技術は、すべてを直す能力ではなく、何かを直さずにいても耐えられる心の余裕である

始まりは些細な自動化

  • ファイル名を変えるPythonスクリプトやgitコマンドの短縮など、小さな生産性向上の作業から始まる
  • システムの不便さを自分で直してしまうと、世の中のあらゆるものが改善対象のように見え始める
  • ある瞬間から「できる」を超えて「やるべきだ」という道徳的な強迫観念へと変わる

技術力の重み

  • プログラミングを始める前なら不便なソフトウェアもやり過ごせたのに、今では問題点がはっきり見える
  • 開発者が作った粗いコードやハードコーディングされた設定が非難のように感じられる
  • あらゆるシステムやソフトウェアが直すべきTODOリストのように見える認識の転換が起きる

終わらないリファクタの日々

  • 毎回「これは自分ならもっとよく作れる」と考え、自分専用ツールの開発にのめり込む
  • 整理されていないコードディレクトリ、無数の試行と放棄、終わりのない構造の再設計は、自己拘束的な労働にもなりうる
  • Kafkaの「鳥かごを作って鳥を待つこと」という比喩のように、目的のないツール作りに沈み込むことがある

ソフトウェアは朽ちる

  • 完璧に見えたスクリプトも、いつか外部の変化によって役に立たなくなる
    • Webサイトのレイアウト変更、パッケージのバージョン変更、依存関係のエラーなど
  • 問題が起きたとき、単なる不便さではなく罪悪感を覚えるようになる
  • 結局は継続的なメンテナンスが必要だという現実に向き合うことになる

自動化という幻想

  • 「一度だけ設定すれば、もう触らなくていい」という偽りの希望をたびたび抱く
  • プログラミングを問題解決の勝利だと考えがちだが、実際には終わらない戦争にすぎない
  • 完成という概念はなく、いつも水浸しになる塹壕を掘り続けているだけ

感情を整える手段になったコーディング

  • ツールを作る行為は、ときに人生の混乱を制御しようとする心理的な反応である
  • システムが複雑であるほど、むしろ自分自身は整っているように感じる
  • 複雑な人生から逃れるために新しいアプリやリファクタリングを試し自己慰撫を得ることがある

前触れなく訪れるバーンアウト

  • バーンアウトは単なる過労よりも、過剰な責任感から生まれる
  • 「自分が直せるものを、なぜ直さないんだ?」という自己非難がストレスを増幅させる
  • 終わりのない技術的責任感は、自己破壊的な重荷として作用する

手放す技術を学ぶ

  • すべての問題を解決する必要はない
  • ときには直さなくてもよいと知ることのほうが、より大きなコントロールである
  • 欠陥を認め、そのまま使うことも意識的な選択になりうる

本当の技術は感情の明晰さ

  • 直せる技術よりも、直さなくても平気でいられる心の技術のほうが重要だ
  • いつ止まるべきか、どのプロジェクトが自己慰撫のためのものなのかを見分ける力
  • 何もかも直そうとする強迫から離れ、不完全さの中でも心地よさを見つける姿勢が必要である

> 結局、プログラミングで最も難しい技術は、
> 「壊れたものをそのままにしておく方法」 を学ぶことだ

21件のコメント

 
ndrgrd 2025-05-10

あらゆるものには目的があります。目的を達成したなら、もう直し続ける必要はありません。ですが、目的を達成できていないなら、直すべきです。
プロジェクトの目的を明確に把握することが出発点になりそうですね。

 
techiemann 2025-05-08

世の中には、銀行や決済会社のめちゃくちゃなAPIをまとめて整理してあげるだけで、数千億ウォン規模の価値を持つ企業もあると気づくと気が楽になります(笑)

 
dkang 2025-05-08

クx..

 
techiemann 2025-05-08

VB 6.0 と COM + OLE + ActiveX で作られたシステムが今でも問題なく動いているのを見て、ぞっとして書き直したくなる衝動に駆られるなら、あなたは苦しむことになる人です

 
wedding 2025-05-08

結局、プログラミングで最も難しい技術は、
「壊れたものをそのままにしておく方法」を学ぶことだと思う。

共感します。自分は仕事を広げてしまうタイプなので、いつも苦労しています……

 
techiemann 2025-05-08

ただのプログラマーがその場しのぎで組み上げた自動化なんて、壊れるのは当然ですよね

 
bluekai17 2025-05-08

良い内容

 
kgh1379 2025-05-07

バーンアウトのトーテム
: 苦労して業務を自動化したのに、その恩恵は隣の同僚が受け、自分自身は別の業務の自動化作業に投入されるとき;

 
bungker 2025-05-10

15分で終わる仕事を2日かけて自動化した、給料泥棒の一人です

 
loblue 2025-05-07

過剰な責任感は、プログラマーの職業病のようなものなので、システムで解決してあげるべきです。
Quality Assurance チームが assurance してくれるべきでしょう。

 
roxie 2025-05-08

QAは開発者の過剰な責任感を抑えてくれるということでしょうか? よく理解できなくて。

 
loblue 2025-05-08

開発者に対して過失の有無を問いつつ「お前のコーディングが悪かったんだ」が積み重なると
開発者は責任感に押しつぶされて新しい試みを避けるようになり、
結局は進歩のない安全なコードしか書かなくなります。
QAがAssureしなければならないというのは、そういう意味です。
発展的なコーディングをするには、ある程度のリスクは負うものですし、
それを検証して責任を持つのがQAであるべきなのです。

 
roxie 2025-05-08

そんなふうにも読めるんですね? 私はこの記事は、あえて言うならヤクシェービングを批判する文章だと思っていましたね

 
loblue 2025-05-08

roxie さんのおっしゃる通り、本文についての話はヤクシェービングの話で間違いないのですが、
私個人の経験に照らしてみると、本文の内容とは少し方向の違う話になってしまいました。

 
savvykang 2025-05-07

NIH(not invented here)現象でも説明できるのではないでしょうか。保守運用はすなわち固定費であり、そのコストには人の労力も含まれることを忘れてはいけないと思います。

 
ztaka 2025-05-07

これを長く続けるには、過度な責任感で報酬心理の呪縛にはまってしまう前に
ときには責任と感情の重さを下ろす練習も必要なのだと思います。
私もなかなかうまく調整できない部分でもあるのですが、笑…いい内容ですね

 
roxie 2025-05-08

これは良いポイントだと思います。責任感とは文字通り責任を感じることなので、それ自体は見返りを求めないものですよね。ですが時間が経つと、心身は疲弊していく一方で責任感は簡単には消えず、そのギャップを埋めるために(本来そう結びつけるべきではないのに)見返りを求め始めてしまうのだと思います。本人も気づかないうちに。

 
madsyntst 2025-05-07

まあ、「壊れたものをそのままにしておく方法」よりは、まだマシな妥協点は「壊れるまでは触るな」でしょうね :)

 
GN⁺ 2025-05-07
Hacker Newsのコメント
  • 演劇をしていたときに学んだ言葉がある。芸術のプロセスとは、難しいことを習慣にし、習慣になったことを容易にし、容易になったことを美しくすることだという

    • 俳優としては台詞を暗記し、キャラクターの動機を理解し、観客が感情と意味を共有できるように舞台を整える
    • ソフトウェアでは、コンピュータを望みどおりに動かすための魔法の呪文を学び、その呪文がなぜ機能するのかを理解し、問題をより美しく解決する方法を探す
  • UIの問題について個人的な意見を述べている

    • インターフェースは(再)レンダリングが完了してから数ミリ秒の間は操作できないようにすべきだ
    • 通知を誤って押し間違えると、通知を失ってしまうことがある
  • 個人プロジェクトの難しさをこぼしている

    • 新しい言語を学びたいが、毎日ドキュメントを読むのが難しい
    • AIを使ってコードを生成したくない
  • ソフトウェアエンジニアへの敬意を表している

    • データセンターで育ち、ソフトウェアの問題は決して解決しきれないと気づいた
    • システム管理者は、あらゆるものに最初から問題があると受け入れている
  • 完璧主義への批判を述べている

    • チームメンバーとの協業で、完璧主義が非効率だと実感した
    • 「十分に良い」解決策を見つけることが重要だ
  • 個人的な洞察を共有している

    • すべての問題を解決する必要はなく、完璧は幻想だ
    • 感情的な成熟と自己愛の重要性を強調している
  • 家族や子どもが完璧主義を和らげる助けになると述べている

  • ソフトウェアを自分で書くほうが、より楽しく、よりシンプルな解決策につながる

  • 新しいものに執着する文化こそが問題の根源だと主張している

    • 長期的に安定していてシンプルなものを構築することが重要だ
  • 心理学者は人を、最大化を目指す人と、十分に良いものを探す人に分類している

    • 最適化を追い求める人はより多くを成し遂げるが、十分に良いものを探す人のほうがより幸せだ
 
beoks 2025-05-07

「壊れたものをそのままにしておく方法」よりも、「重要でないものを手放す方法」のほうが、より適切な表現のように思います
必ず直さなければならないものは、直すべきですね

 
ethanhur 2025-05-08

共感します。自分が庭をよりきれいに手入れしているのか、それとも重要な作業をしているのかをよく理解したうえで、手放すべきだと思います。