ソフトウェアの不条理さから抜け出させてくれる木工
(alinpanaitiu.com)- macOSアプリで生計を立てる開発者が、繰り返される否定的な要求とオンライン作業の孤立感から抜け出すため、手で触れられる木工を心理的な逃避先にしている
- Docker CLIのIssueにあるEric Divenのコメントが開発者たちの共感を呼んだのは、ソフトウェアの仕事がしばしば範囲外の要求や終わりのない抽象的な問題へ流れていくからである
- 最初のプロジェクトである磁石付きチェス盤は、Kaval作り、ベッドサイドテーブル、ベッド用ノートPCテーブル、本棚、窓辺のベンチ、丸太のコーヒーテーブルのような生活用木工へとつながっていった
- 安価な道具と拾った木材、長いネジ、サンドペーパー、手鉋、ドリルのような限られた道具だけでも作業は進み、失敗がケーブル穴・コースター・装飾のような機能に変わることもあった
- バーンアウト、AI/ML中心の技術的空気、腰や指の痛み、オンライン労働の非物質性から離れ、物理的な成果物を作ることがより直接的な満足を与えてくれる
開発者が「木工に逃げたい」と感じる瞬間
- Docker CLIのIssueに残されたEric Divenのコメントは9,000件を超える反応を集め、その大半は好意的だった
- 要点は、もうソフトウェアを作るのではなく木で家具を作りたい、というものだった
- 長時間労働、低賃金、テーブルソーで指を失う可能性はあっても、「DBMSにRSSフィードを追加できるか」という要求はされない、という冗談が含まれている
- 多くの開発者が「ノートPCを窓から投げ捨てて農場を始める」といったことを口にした経験がある
- 以前のチームリーダーも、protobufがこの3年間きちんとデシリアライズしていたデータをなぜ突然読めなくなったのかを調べるより、バーを経営して客の話を聞きたいと言っていた
- ソフトウェア開発は、ときに
package.jsonの衝突解決のような問題を一生避けたくなるほど不条理に感じられる
意味のない仕事に耐えにくくなった背景
- 子ども時代から大学に入るまでの時間の大半は、やりたくないことに占められていた
- 学校は1日6時間で、5年生以降は通学にさらに1〜2時間かかった
- 放課後には、親の生業である農作業を手伝って畑や100mの温室で働いた
- 残った時間は、夜遅くまでのギター練習、ボディビル、詩作、黒鉛による肖像画に使っていた
- 大学で親元から数百km離れて自由を得てからは、意味がないと感じることを続けるのが難しくなった
- 授業に落ちることも受け入れられるようになり、役に立たない仕事を任されたと感じれば、職を辞めることにも大きな未練はなかった
- 官僚主義は避けるべきものとして定着した
- 前職でAgile会議がJIRAタスクの作業時間をTシャツサイズで見積もれと言い出すほど不条理になったとき、安定して高給な仕事を辞め、macOSアプリで生計を立てる道を選んだ
- 当時持っていたアプリは1本だけで、最新のApple Siliconチップでも動かず、収益は0ドルだった
最初の木工プロジェクト: 磁石付きチェス盤
- 最初の木工は磁石入りのチェス盤と駒のセットだった
- 駒は一般的なチェスの駒のような見た目ではなかった
- 子どもや犬がテーブルにぶつかっても駒が散らばらず、磁石で定位置に留まるようにしたかった
- チェス盤は安価で重い松板から始めた
- サンドペーパーで角を丸くし、濃い色のマスは妻が塗るのを手伝ってくれた
- 着色には木の床用マーカーを使った
- YouTubeにあるチェス盤製作の大半は、色の異なる木材片を交互に貼り合わせる方式だが、そうした技術も道具もなかった
- ネオジム磁石を埋め込むため盤の裏から穴を開け、表面を突き抜けないよう極力近くまで攻めた
- 2マスは失敗したが木工パテで埋めた
- 駒は何日もバルコニーで、あまり研がれていないナイフとDremelを使って彫った
- モダニズムのチェスセットに着想を得ており、幾何学的な形状のおかげで彫る量は少なかった
- クラフト店で買った木の球と立方体はポーンとルークに使い、残りは角材や円錐状の木材から削り出した
Kaval作りと「万能フルート」の実験
- ルーマニアのバンドSubcarpațiが無料の「自分でKavalを作る」講座を開き、フルート職人が1週間かけて基礎を教えてくれた
- Kaval、または“caval”は、穴が5つある長いフルートである
- 低音域がはっきりしており、小さな羊飼いの笛の薄く明るい音とは違って、遠くから聞こえるような憂いのある音色を出す
- Kaval作りはネット上に情報がほとんどなく、プログラミングに慣れた世界と比べるとほとんど神秘的に感じられた
- 講座では2人1組になり、電動工具なしで全工程を手作業で進めた
- 70cmのニワトコの枝を貫く長い穴も手回しドリルで開け、手を休めるため交代しながら作業した
- 職人は子どものころから羊飼いで、試行錯誤を通じて良い音のフルートの作り方や音程を合わせる穴の位置を身につけていた
- ただし、各スケールでなぜ特定の距離や長さが必要なのかは知らなかった
- 複数のスケールの曲に合わせて演奏するには、A minor、B minor、C minorのようにスケールごとのKavalが必要で、合計12種類の長さが必要になる
- フルートを開管または閉管として捉え、振動する空気の節と腹が穴の位置と一致しなければならない、という形でフルートの原理を学んでいる
- 目標は、どのスケールでも演奏できる万能Kavalである
ソフトウェアの要求から玄関先の木工へ
- この10年、賃貸アパート暮らしで、たいてい3階か4階だったため庭に出ることができなかった
- 子どものころは2000m²の庭で暮らして遊び、騒々しい車より遅い馬車のほうが多い道に慣れていた
- 今年、小さな庭と舗装された中庭のある賃貸住宅に引っ越してから、環境の変化が精神と行動に与える影響を実感するようになった
- macOSアプリの開発で生計を立てる中で、否定的で要求の強いメッセージを多く受け取っている
- アパートの外は車の騒音、におい、プライバシーの欠如で耐え難く、散歩で落ち着くより、フィードバックに即応して夜遅くまで働く流れになりがちだった
- 最近のアプリへの要求は、範囲外であることが多かった
- 今回は玄関を出てブナの枝を手に取り、引っ越しのとき妻がフレンチめん棒を持って来られなかったと言っていたのを思い出して、ポケットナイフで簡単なめん棒を削った
- メッセージをしばらく無視し、手で何かを作ることは解放感を与えてくれた
- ユーザーが、アプリにmacOS、Windows、Linuxのどこで動かすかを選ぶチェックボックスがないことに気づかない可能性があるのは理解している
- アプリがオーディオの音量や圧縮を少し扱うだけで、その関連作業を全部やるべきだと思う人もいる
- それでも、否定的な口調、繰り返し送られるメッセージ、メール・Discord・Twitter・問い合わせフォームなどあらゆる経路からの執拗な連絡は無視しにくい
- 技術界の空気にAIや機械学習のにおいが強く漂い、新しいLLMや画像生成モデルについての記事が10本中8本くらいに見えるようになると、新技術への関心は薄れていった
- 木の匂いのほうが心地よく感じられる
ソフトウェア開発者としての特権と消耗
- 時間の使い方を自分で選べることは特権である
- ちょうど良い時期にコンピュータサイエンスを専攻した運もあり、この10年で大きな半受動的収入につながった
- よく働いたが、運も大きな役割を果たした
- 未完成な状態に耐えにくい性格のため、消耗していても仕事を押し進めてしまう
- 食事を抜き、家事を後回しにし、周囲の人をいら立たせても、「この小さなところだけ直せばいい」と考える
- 実際には明確な締め切りがなく、今は半分終わった状態で置いておいてもよいと分かっていても、止まりにくい
- 特権があるからといって、不快な感情やバーンアウトが消えるわけではない
- 人は今の状態に慣れ、それより少し悪いものに不満を言うようになる
- 今のソフトウェア開発は、もうすぐ消えてしまいそうだという漠然とした感覚もある
- 来年には置き換えられるかもしれない新技術を学び続けることに疲れている
- 長時間座ってタイピングしたことによる腰痛や慢性的な指の痛みにも疲れている
- インディー開発のように、すべてがオンラインで、非物質的で、儚く、孤独に感じられる仕事に疲れている
安い道具と無料の木で作った家具たち
-
ベッドサイドテーブル
- 賃貸住宅は狭く、寝室は2階にあったが、夜に犬を3回外へ出さなければならず、階段の上り下りが嫌だった
- 1階の部屋をひとつ寝室にすることにし、ベッドと同じくらい高価なサイドテーブルを買う代わりに自作することにした
- 散歩中、近くの木が剪定されているのを見て、道端にあったシラカバの枝を持ち帰った
- 残っていた小さな松のパネルを天板にし、4本の枝を交差させて安定した脚を作った
- 粗めのサンドペーパーで角を丸く整え、マスクがなかったので木粉をかなり吸い込んだ
- 脚がぐらついたため3mmの穴を開け、フローリストワイヤーを編み込んで固定した
-
ベッド用ノートPCテーブル
- サイドテーブルを見た友人がベッドで使うノートPCテーブルが欲しいと言い、残っていたブナ材のデスク天板の一部を切って作った
- 完成したテーブルには、充電ケーブル用の穴、コーヒーカップ置き、そして少し驚いた顔のように見える要素がある
- 実際には、開け間違えた穴や何度も落とした跡を機能のように隠した結果である
- 当初は隠し真鍮製の円筒ヒンジを使って折りたたみ式にするつもりだった
- しかし穴の大きさと位置をうまく合わせられず失敗した
- 結局、側板を接着して長いネジを2本ずつ打ち、グルーガンでネジ穴を埋めて目のように見せた
- ダブテールのような木工継手ではなくネジと接着剤を使ったのは、そもそもそういう継手の存在を知らなかったからである
- 単純なヒンジすら合わせられなかったので、木工継手まで学ぼうとしていたらこのテーブルは完成しなかった可能性が高い
ripgrepを知らない同僚に「なぜそのままripgrepを使わないのか」と言った経験と同じで、道具を知らないと最適でない選択をしてしまう- 木工継手の比較動画によれば、5cmのネジは50kg以上の力に耐えられ、さらに長いネジを使ったので3kgのノートPCなら十分支えられると考えた
- コルクのポケットも追加して、ノートPC、タブレット、スマートフォンなどを入れられるようにし、内側はマイクロファイバー布で補強し、余っていたアルパカウールを木に縫い付けた
-
本のない本棚
- 2020年のパンデミック中、アパートに閉じ込められて新しい趣味を始めようと多くの物を買い、その後何年も使わない箱が積み上がった
- 使っていない階段下スペースに箱をまとめ、その大きさに合う大きな本棚を作れば散らかりを減らせると判断した
- 十分大きな本棚を安く見つけられなかったので、Freeformに線を何本か描いて寸法を測り、大きな松板と長いネジを注文した
- 室内で木粉を出したくなかったため、30ドルの最も安い携帯式バイス作業台も注文した
- 以前Lidlで買った日本式の引き鋸で棚板を切った
- 技術なしに長い板を手で挽くと端が曲がり、板を5枚重ねて切ってもなお曲がった
- 妻が寸法測定、穴位置、ネジ配置を大いに手伝ってくれ、2日かけて長いネジを打ち込み、望んだ結果を得た
- 長いネジを打ち込むのは思った以上に大変で、数日間右腕が痛んだ
作業台と道具
- 現在の作業台は、本棚作りのために買った30ドルのバイス作業台に、以前のコーディング用デスクの天板を前側へ取り付けたものだ
- 道具には、最も安かった8ドルのブロック鉋、古い家の物置で見つけた無銘の赤い鉋、錆びて一部壊れていた斧、折りたたみ式の日本式引き鋸、サンディング用グリップブロック、Osmo Polyxオイル、Beavercraftの彫刻刀セット、コンビネーションスコヤ、Kaval用のニワトコの枝が含まれる
- 無銘のノミを何本かとカードスクレーパーも持っているが、カードスクレーパーの刃付けはまだ難しい
- 電動工具は、Makitaのドリル、ランダムオービタルサンダー、古い物置で見つけた丸ノコ、たまにしか使わないDremelくらいである
- ドリルとサンダーには少しお金をかけた
- Dremelは電源コードが気に入らずあまり使わず、バッテリー工具のほうを好む
窓辺のベンチと丸太のコーヒーテーブル
-
犬のための窓辺拡張とベンチ
- 犬のCoraは窓辺に座って、通り過ぎる年配の人にうなり、子どもたちに吠えるのが好きだ
- 窓枠が十分広くなく、脚がラジエーターに“clang”という音を立てて落ちていたため、ラジエーターの上に松板を2枚貼って窓辺を広げた
- この過程で、手鉋は古い装飾用の道具ではなく、何枚ものサンドペーパーを使って木粉を吸い込む代わりに木目を滑らかにできる実用的な道具だと知った
- 熱を逃がすためForstnerビットで大きな穴を開けたが、裏側の木目が引き裂かれてしまった
- 解決策は、先に3〜6mmの小さな穴を中心に貫通させ、両側からForstnerビットを半分ずつ入れて中央で合わせることだった
- Coraと一緒に座るため、細いベンチも作った
- 松板2枚を横に貼り合わせて広い板を作り、近所の剪定で出た太い桜の枝を脚に使った
- 素朴な見た目を受け入れ、仕上げ、穴埋め、適切な木材乾燥にはあまり労力をかけなかった
-
ブナの丸太コーヒーテーブル
- 両親の家を訪れたとき、屋外で朝のコーヒーを置く場所がなく、小さな屋外用コーヒーテーブルを作りたくなった
- 近所の家に最近切られた大きなブナの丸太があり、1本買おうとしたが、持ち主はお金を取らず持っていっていいと言った
- 両親の家にはふだん道具がないため、その場で即興的に作業した
- 父がバーベキュー用薪を割るのに使っていた古い肉切り包丁を見つけ、できるだけ研ぎ、ハンマーで背にかえりを作ってスクレーパー代わりに使った
- ブナは樹皮の下が滑らかで硬く、ほとんどサンド掛けが要らなかった
- 父の電動鉋で上面を大まかに平らにし、クルミ油で仕上げた
- 生木なので、乾くにつれて割れて荒れることは確実だった
- 上部に溝を掘って平たい鉄の帯を巻き、過度な動きを抑えた
- 下側は自由に膨張できるようにして、夏のあいだ形がどう変わるかを見るつもりでいる
果樹園のベンチ
- 妻の実家の果樹園には寝転べるような芝生がなく、毎年土を掘り返したあと乾いた土塊のまま放置されているのが目についた
- 果樹園の外の薪の山に古く壊れたドアがあり、ベンチに使うのに長さも幅もちょうどよかった
- ドアを分解して大量の釘を抜いた結果、長くて細い板が2枚、腐った木の山、錆びた釘2袋が残った
- 壊れた端を切り落とし、義父の電動鉋で灰色に古びた表面を削って新しい木肌を出した
- 穴や溝が多く、ドライバーにサンドペーパーを巻きつけて手でこすらなければならなかった
- 想像より数日余計にかかった
- バッテリードリル用のベルクロ式サンドペーパーアタッチメントで腐った側面を整え、曲線的なlive edgeを作った
- 脚は薪の山から取ってきた太い枝を使った
- 斧で樹皮をはいで四隅にネジ止めした
- 脚だけではぐらついたため、より短く細い枝を脚と板の中央の間に追加して横方向を補強した
- ドアにあった菱形の穴は、解体した小屋から出た4x4材で埋めた
- その結果、ベンチは5本脚になった
- この脚は切りそろえず上に突き出したままにし、厚い再利用板を載せて肘掛け、コーヒーテーブル、チェリーのボウル置きのように使えるようにした
- 仕上げは、ベンチと脚の下部を焼いて蜂蜜色の茶色を出し、水に強くする方法だった
- 義父の物置で見つけた木部用ラッカーをごく薄く塗り、つやつやした木は好みではない
小さな木工作品と刃付け
-
水用カップの棚
- ダイニングテーブルのスペースが足りず、浄水ポットとカップを置く2段棚を作った
- いくつかのネジだけでも非常に強固に固定できることを確認した
-
Kavalスタンド
- 家の中でKavalがテーブルやソファの上を転がる問題を解決するため、スタンドを作った
- 長く細い板を横に貼り合わせて作り、ひまわり油で仕上げて金色とオレンジ色のトーンを出した
- もっと多くのフルートを置きたくなれば、横に板を足して拡張できる
-
自分用の刃付けブロック
- ポケットナイフ、斧、鉋刃、ノミなどをほぼ毎日研ぐので、自分に合った刃付けブロックを作った
- 片面には5ドルの
600gritダイヤモンドプレートを貼り、もう片面には5ドルの革ストロップを貼った - 革ベルトの切れ端も同じように使える
- 革は上部の小さなネジ2本で留め、彫刻用ガウジのように柔らかいストロップが必要なときに簡単に外せるようにした
- 革には宝石研磨のオンラインショップで安く買えるダイヤモンドペーストを塗った
- ナイフ専用ペーストはずっと高価だが、その理由はよく分からない
- 0.5ドルの緑色コンパウンド、つまり酸化クロムでもストロップには十分よく機能する
- ダイヤモンドより滑らかな刃を作ることもできる
- ただし革により頻繁に塗り直す必要があり、同じ結果を得るには刃をより多く往復させなければならない
- ダイヤモンドのほうが速く削れるように見えるが、劇的に速いわけではない
-
刃付け方法の選択
- 水砥石、天然石、セラミック砥石、引いて使うカーバイドシャープナー、電動ベルトシャープナー、ホイールシャープナーをすべて試した
- 引いて使うシャープナーとスチールロッドを除けば、残りは正しい技術さえあればどれもよく機能する
- ダイヤモンドプレートを選んだ理由は、安く、平面を維持し、メンテナンス不要で、どんな金属でも削れるからである
- 革ストロップと組み合わせると、最も単純な刃付け方法に感じられる
- 刃付けチュートリアルとしてはOUTDOORS55の動画を勧めており、顕微鏡下でさまざまな刃付け技法が刃に与える影響を見るにはScience of Sharpブログが役立つ
1件のコメント
Hacker News の意見
ソフトウェア開発の仕事をしながら創作・クラフト系の趣味を持っている知人たちは、たいてい名声と安定性を理由に有名な大企業を選び、結局仕事に満足感を得られないことが多かった
大企業の大半は、問題を解き、何かを作りたいときに良い環境ではない。特に「エンタープライズ」では、ソフトウェアをコストセンターとして見るので少ないほどよいと考えられ、上層部の管理に費やす労力が創造的な人の魂を削っていく
私は「社長/顧客」と直接話し、彼らの問題を解決し、自分の技術の市場価値に見合う報酬を受け取るという明快さが欲しい。責任はないのにプリンシパル=エージェント問題だらけの沼の中で、自分の利益に沿って行動しなければならない上級管理職のために、終わりのない PowerPoint を用意したくはない
だから、顧客やプロダクトについて率直に話せる急成長中の小さなテック企業で、とても満足している。他の人たちはこの問題にどう向き合っているのか気になる
最近の多くのプログラマーは、コードがすべて同じ見た目であるほど良いと信じている。一貫性は良いことだが、絶対であるべきだと期待されてはいけない
プログラミングも創造性を許容すべきで、どこに空白や改行を入れるかは、コードの特定の部分がどれほど重要かを、微妙だが大事な形で伝えられる。ここ6年ほど働いた場所の大半はツールに執着していて、些細なフォーマット規則を破るとプルリクエストをマージできないほど多くの lint ルールを付けていた
木工では、ただ作ればいい。自分で木工をするわけではないが、両親は二人ともやっていて、彼らが時間の大半を自転車置き場論争のような些細な議論や成果物の均質化に費やしていないことは知っている。道具は何かを成し遂げる助けになるためのものであって、何もできないように妨げるためのものではない
個人のソフトウェアプロジェクトなら好きなようにできるが、結局は「正しくやらなければならない」という現代的な強迫観念と、時間を浪費するツールを山ほど付けたくなる衝動に直面する。付けずにコードを共有すると、すでにうまく動いていて深刻な問題もないソフトウェアに、誰かが規則と官僚制を大量に追加しようとする可能性が高い
面接時に、自分の仕事は必ず顧客価値に沿っていなければならないと言ったことも高く評価してくれた。顧客価値は、私たちが行うすべての仕事の究極の目標だ。私は顧客からのフィードバックに頻繁に触れる一方で、顧客と直接接触したり、会社のはるかに大きなフィールド技術・営業組織と直接ぶつかったりしないよう、堅固なコミュニケーション上のファイアウォールで守られている
私の仕事は創造的・技術的欲求を十分に満たしてくれるので、業務外でプログラミングや高度な技能を要するクラフトをたくさんすることはない
この話をしても誰も信じない。ソフトウェア業界は低信頼の管理パラダイムにあまりにも深く汚染されている。高給の管理職ポストを正当化するために巨大な階層を作り、その結果、優れたプログラマーの効率と生産性を落とすことが、あまりにも当然のように受け入れられている
エンジニアが独立して判断し、自分の作業の進め方を決め、仕事に合ったツールを選び、顧客価値を念頭に置いて働くと信頼してはいけない、というようなものだ
もしかすると私が例外で、エンジニアは信頼される資格がないのかもしれない。だとすれば、社会的に非常に大きな問題があるということだ。私が知っているのは、私たちのソフトウェアチームは非常に独特なグループ面接を行っており、その方法が見栄っ張りや日和見主義者をふるい落とすのにかなり優れているという点だ
本当に腹立たしいのは、すでに解いたことのある問題をもう一度解けない状況だ。ある時点では、その計画が良いものだと他の人に説得しなければならない。新しいチームでは自分の論理が通じないかもしれないし、前回合意を引き出せた秘訣が何だったのか分からないこともある。あるいは、長い間自分のやり方でやっているうちに、あるアイデアを支えていた論拠の一部を忘れてしまうこともある
熟練とは結局、知的プロセスを直感に変え、より速く動けるようにすることだ。意思決定プロセスがうまく身体化されると、再び知的に解きほぐした経路は重荷になる
私たちの業界の内外には、ぼんやりと知的に怠惰で、倹約ではなく安っぽい思考をし、倫理的にも疑わしい人が多く、その集団としての重みが進歩への抵抗を生み出している
それでもこれは非常に主観的な話だ。中年に差しかかった立場として、時間とともに視点がどう変わるのかを理解するようになった。20代の私は2〜3年ごとに新しい職場へ飛び込んでいただろう。40代の私はワークライフバランス、安定性、そして大企業におけるより明確で、ときには機会にもなる成長経路の価値が分かるようになった
この段階になると、60代の開発者たちに時折見られる頑固さを完全に理解できるわけではなくても、彼らの考えを間違いだとは見なさなくなった。配偶者、家族、住宅ローンに責任を負わなければならないとき、小さく俊敏な会社の潜在的な利点が、企業の世界にある安心感を上回るのは難しい
これはすべて、Ted Kaczynski が “Industrial Society and Its Future” で述べたことに帰着すると思う。特に「産業革命とその結果は人類にとって災厄だった」という部分で、現代の産業社会では身体的な必要を満たすのに最小限の努力しか要らないからだ。
現代のほぼすべての仕事、99.999% は「代理活動」だと思う。人々がただ追求すべき目標を持つために自ら作り出した人工的な目標に向かう活動、という意味だ。
ソフトウェア開発のようなキャリア、あるいはどんな現代的な職業であれ、空虚で満たされないと感じるのは驚くことではない。本来なら身体的な必需品を探すために使っていたはずのエネルギーや感情的な没入を、そうした仕事に注いでいるからだ。
ソフトウェア開発者は特にこの問題が深刻だと思う。仕事があまりに抽象的で、物理世界から切り離されているからだ。生物学的に見れば、充足感は何か作り出した目標の追求ではなく、身体的な必要を満たすこと、つまり生存から来るべきものだ。
私の考えでは、「問題の特定は卓越しているが、解決策の提示は良くない」典型例だ。残念ながら解決策の部分があまりに不快で受け入れがたいので、前半の問題特定の部分を読む人はほとんどいない。
知らない人のために言うと、Ted Kaczynski は Unabomber で、技術の問題に対する彼の解決策は、基本的には人類が技術発展を再開する能力さえ残らないようにシステム全体を破壊することだった。暴力はその社会的破壊を始める手段だった。
純粋に理論的・哲学的に見れば論理は通っているが、慈悲や共感を持つほとんどの人にとって、その代償は極めて受け入れがたい。
会議に座り、抽象的な「仕事」をあちこちへ押しやりながら人工的な目標を達成しようとして一日を過ごしていれば、現代の仕事はすべて作り物で恣意的なものに見えるかもしれない。
しかし、そうしたばかげた企業の仕事の外へ出れば、「本物の」仕事をしている人は多く、その量も相当ある。巨大企業から小さな会社へ移り、自分の仕事が実際の顧客に影響しているのを見ると目が開かれる。自分の仕事が何かに及ぼす効果を間近で見れば、ずっと納得がいく。
HN で Ted Kaczynski の文章をロマン化する投稿を見るたびに、インターネットと企業生活の外にある現実世界がどう動いているのかから少し離れすぎた、慢性的にオンラインに閉じ込められた立場から出てきたもののように感じる。
それが正しいなら、10 万人に 1 人しか「本物の」仕事をしていないという意味になる。均等に分ければ、1 日の勤務時間のうち 3 分の 1 秒にも満たない。
その結果、技術的には 1 日に数分だけソフトウェアに費やせば十分になる。残りは全部余計なものだ。これは Kaczynski が言ったことと合っているように見える。
生存コストをかろうじて賄える程度のソフトウェア開発の仕事をしてみれば、その仕事に空虚さを感じる可能性はない気がする。
現代ソフトウェアの不条理から逃れるために、自分が好きなコーディングをしている。小さなゲームや、8ビットシステム向けのものなどを作っている。
現代的なもの、特に node、next、DevOps、「Web フレームワーク」地獄からできるだけ遠いものだ。効果はあるし、盆栽のようにとても落ち着く。
今ではコーディングは趣味としてだけやっている。燃え尽きでキャリアは壊れてしまい、今は LLM なしでPCB 設計と組み込みソフトウェアを書いている。
どれほど情熱的で、執着するほど好きな趣味であっても、それを仕事にすることほど愛情を壊すものはない。
私は自転車に乗るのが本当に大好きだが、自転車業界の中でその愛で生計を立てようとするくらいなら、ソフトウェア業界のあらゆるくだらないことのほうがまだましだ。
「アマチュア」という言葉には否定的なニュアンスがあるが、実際には「主な収入源ではない」と解釈すべきであって、腕がひどいという意味に見るべきではない。
「アマチュア」の否定的なニュアンスは比較的最近生まれたものだ。
ラテン語の amatorem、つまり “lover” に由来する言葉だ。実用的な理由ではなく、ただその活動自体の楽しさと愛ゆえに何かをする人、という意味だ。楽しさがあるなら、どれほど上手かは必ずしも考慮される必要はない。
探している言葉はまさに「趣味人」ではないか?
「愛好家」もある。
ときには報酬はなくても、「ただの次の専門家」よりはるかに深く関わっていることもある。
なぜもっと多くの大人が素敵な趣味を持たないのか理解できない。子どもの頃の友人の大半は、大人になった今、面白いことをほとんどしていないように見える
コンピュータ作業とのバランスを取るために、身体を使う物理的な作業が本当に好きだ。ウェイトトレーニング、木工、セーリングは私の人生に大きな価値を加えてくれたし、外に連れ出してくれて身体も良くしてくれた
今はガレージで息子と一緒に木製の帆船を作っていて、祖父から受け継いだ古い木工道具を使っている
私は10代になる前からコンピュータとともに育った。父は私が11歳のときに2000マイル離れた場所へ引っ越し、14歳以降に就いた仕事はすべてWeb/ソフトウェア関連で、今ではもうすぐ39歳だ
コンピュータ以外の実用的な技術がまったくないように感じるし、手で何かを作ったり電動工具を使ったりすることを考えるだけで不安になる。この考え方からどう抜け出せるのか知りたい
趣味が素敵ではないという意味ではない。木から始めてギターを丸ごと1本作った人も知っている。ただ私は、その時間を自分の主な仕事でさらに先へ進むために使いたい。「些細なことを専攻する」ような感覚だ
シグマ的な自己啓発の強迫観念のように聞こえてほしくはない。面白い趣味を持ちたい欲求を抑え込んでいるのではなく、あまり関心のない活動のために新しいアイデンティティを作るより、自分の主なキャリアを少しずつ積み上げていくほうが、より幸せで安定しているように感じる
素敵な趣味は素敵だが時間が必要で、場合によっては金銭的な余裕も必要だ
ビーチでのんびりしたり、午後に本を読んだりして休むのは、本当に難しく感じる。ただプロジェクトをやりたい
本当に面白いのは、私がプロジェクトをしていると、5歳の娘もしばしばプロジェクトモードに入って自分の作業をすることだ。私は自転車を修理したり何かを作ったりし、娘はテープや段ボールのようなもので自分のものを作る。それぞれ自分のことをしているが互いのそばにいる、とても楽しい連れ合いの時間になる
「私たちが知っているソフトウェア開発はまもなく消える」という言葉には少し反論したい
約束と、そのために働いている人たちは見えるが、まだ決定的なものは見ていない。LLMにもデータの量と品質という存在論的な脅威がある
最近、法律推論をLLMにやらせる記事では、前に進むには作業を非常に細かく分解しなければならなかった。私たちに分かっていないのは、そう分解してLLMに渡すことが、速度・品質・フィードバックの面で、人間がただ直接やるのと同じくらい有益なのかという点だ
すでにCopilotの相互作用ループが、問題を実際に考えるプロセスをショートカットしてしまうと言う人たちも見た
いずれにせよ、この不条理な時代には仕事の外の趣味が絶対的に重要だ。原文の著者は美しいものを作った
LLMは助けてくれるだけで、私にとってコーディングの楽しさを減らすものではない。ただし現代のWebのゴミのような領域は例外だ
巨大テック企業は法律を破り、人々の生活を壊しても、誰も処罰されたり規制されたりしない
ソフトウェアはユーザーの市場での選択肢がほとんどないため、底辺への競争をしている。LLMは口実にすぎず、実際には後期資本主義経済が何らかの形でこうしたことを要求している。安い労働であれ自動化された労働であれ、形が違うだけだ
企業を持続可能にするには、企業に対して政治的・物理的なてこを持たなければならない
興味深いことに、Glenn Reidもソフトウェア作りから離れて、Touchtype.app、PasteUp.app、「The Green Book」、PostScript Language Program Design の後、手で蟻組みの家具を作るようになった
私はいつも「Maker」ムーブメントを「工作の授業を受け損ねたギークたち」と説明してきたし、木工のスロイド体系が基礎教育の構成要素として広く普及していたなら、世界はもっと良くなっていただろうと主張してきた
https://rainfordrestorations.com/tag/sloyd/
私は工作の授業が嫌いだったギークで、数十年後もソフトウェアを書くことで食べていけることに感謝している
新しい趣味を探すこと自体はまったく問題ないが、これは技術労働者に対する典型的なステレオタイプだ。木工でなければ養蜂か、ほかの悪くないサイドクエストにすぎない
ただ、こういう趣味に入っていく人たちがあまりにも苦々しさに染まっているように見える点は少し気になる。どんな職業にもこういうことはあるし、私たちが特別なわけではない
笑ってしまうのは、ほとんどすべてのプログラマーがこういう傾向を持っているように感じること。たいていは何かを作るのが好きな人たちで、音楽家も多い。
DIYも似ている。物理的な成果物があり、手で何かを作り、満足感はほとんどいつも、自分が求める感覚を自分で満たすところから来る。もちろん妻もいるけれど。
何かをすごく上手にできるわけではなくても、何とか扱えるという感覚もいい。そして実際に上達する。ベーキングや料理も似ているかもしれない。
パンをもっとよく焼けるようにしたり、巾木をきちんとはまるようにしたりする「コツ」を学ぶと、本当に気分がいい。
年齢、家族構成、居住地、家族の影響のほうが、テキストを修正するという職業そのものより、趣味の選択に関係している可能性が高い。
この数十年が私たちをある程度例外的な存在のように見せてきて、人々はその満足感のある考えで遊びたがっている。だがプログラマーは電気工事士、配管工、建築技術者などと変わらない。
手順に従い、本番環境でバグが出たら、たとえば塩辛すぎる、濃すぎる、風味が足りないといった場合に、中に入ってデバッグして直そうとする。ここで比喩は少し崩れるかもしれないが。
ITの作業を細かく分解するのが得意な人なら、複数のコースからなる大きな食事を準備できると思う。機能をデプロイするのに似た考え方が必要だと感じるからだ。
若いころバーで働きながら人々の話を聞いていたが、いちばん腹の立つprotobufのデシリアライズ問題や「アジャイル会議」でさえ、バーで聞けるたいていの話に比べれば本当に面白い部類だ。
これはリンゴとオレンジを比べるようなものだ。木工であれ他の趣味であれ、楽しんでいる趣味は、実際に就くどんな仕事よりも楽しい可能性が高い。
プログラミングは楽しいし、だから始めたのだろう。だがソフトウェア開発者として働くことは、それほど楽しくないかもしれない。
それでも、ある分野は他の分野よりはきれいだ。小さな川のほうが澄んでいるように、食品店や整備工場で働いていた記憶を振り返ると、ソフトウェアエンジニアリングと同じ種類の疲労はなかった。
刺激がより多様で、少し深く、没入に役立つし、文化も助けになる。インデントのような浅いことについての議論が少ない。
たとえばファストフードはリアルタイムの仕事なので、綿密な計画と実行が必要で、だらしなさが入り込む余地がない。汗はかくが、作業は本当に速く、熟練していく。
一方でコーディングは、何年も同じ場所をぐるぐる回ってどこにも行けず、役に立っていないと感じ、燃え尽きて家に帰ることがあり得る。
しかし大学の友人の多くは、別の出発点から始めていた。コンピュータサイエンスを選んだ理由は、良いキャリアに見えたから、あるいは高収入だと聞いたからだ、と言うのを何度も聞いた。
そういう人たちにとって、「プログラミングが楽しくて始めた」に戻れる土台があるのかはよく分からない。
しかも別のバーテンダーが自尊心を満たすために些細な点にケチをつけながら、ドリンク注ぎの承認をしなければならないわけでもない。
数か月後には40歳になるので、最近は普段より少し考え込むことが多くなり、自分の人生でどのあたりまで来ているのかを振り返っている。これまでで最大の後悔の一つは、自分がいる場所ではないどこかにいたいと願いながら、あまりにも多くの時間を過ごしてしまったことだ。