Spinach Forest

Outcome and Process

A quote from Ben Werdmuller

a real split in the tech industry (and everywhere code is written) between people who are outcome-driven and are excited to get to the part where they can test their work with users faster, and people who are process-driven and get their meaning from the engineering itself and are upset about having that taken away.

休み明けの朝、またバグを直している。

去年後半は、ひたすら同じ類のバグを押し付けられ、しかもそれはなぜかいつも締め切り直前で、仕方なく理想を捨てブランチにあてやすい秘孔パッチを書くことを強いられ続けた。苦痛だった。

新年からまた似たようなバグがやってきてトラウマが蘇りかかったが、今はまだリリースブランチが遠いのを思い出し真面目に直そうと考える。レガシーコードの構造の歪みを嗅ぎ分け、それがすこし良くなるようにリファクタリングして、それをすこし拡張して、いい感じのコードに直す。テストも書く。

こういう仕事は満足感がある。すっかり忘れていた、やんわりとした幸福を感じる。バグを直すのは嫌いでない。でもバグを直す以外の仕事もしないといけなくて、というか「以外」がメインという建前になっていて、時間のなさに胃を痛めて、押し付けられたバグを本来の持ち主に渡したのに言い訳つきで押し返されるのにうんざりして、バグなんてエーアイに調べさせ直させればいいみたいな空気に息が詰まり、そのうち何も楽しくなくなってしまう。

自分はいわゆる「成果」を「ユーザに届ける」ことにあまり興味がない。昔からなく今もない。成果をユーザに届けないと金にならないので気にはしているが、内的な動機づけにはなってない。いい感じのコードをかける方がよほど満足がある。

むかしある時までリファクタリングばかりしていた時期があり、けれどあるとき「本当にリファクタリング『しか』しない人」の存在を目撃し、これは個人にとってもチームによっても良くないと考えを改め、コードの綺麗さの追求を過大評価しがちなインフラ・ライブラリ・フレームワークなどの仕事を避けるようになった。「ユーザの価値」を自分に突きつけた方がいいと、アプリのしごとをするようになった。それでも結局あまり興味は湧かなくて、性能の仕事ばかりするようになった。まあ速いというのは程度の差はあれ価値じゃないですか。

性能の仕事がコードをいい感じにすることは少ない。(たまにある。でもそれは「たまに」なので話題になるんだよ。)悪くする程度を最小化することはできるが、良いコードだと思える瞬間は稀で、そもそもアプリのコード以前に telemetry のデータ相手に SQL を書いてる時間が一番多いような有り様。データ分析とか SQL にも面白さはあるけれど、いいかんじのコードとか、あんまりないんだよね。SQL のせいではなく、仕事が探索的なのでコードを積み重る機会が少ない。

結果として、チーム内のテニュアのせいで回ってくる本業とは関係なく成果に数えられることもないレガシーコードのバグ修正に、リリース三日前の火消しでなければ、一番満足を感じる。あるいは出世と同時に他所の部署にいってしまった誰かが捨ていったゴミコードの保守を押し付けられる理不尽の中に、リファクタリングの愉悦を見出す。

上司の視線が冷たい、給料はあがらない。

それでも、バグを直しながらコードを綺麗にしていく仕事だけやらせてくれないかなと思う。高速化が頭打ちになったコードの最後の一滴を搾り取るために壊れやすいショートカットを足して再現不能エッジケースバグを埋め込むとか、そういうのもう疲れた。やりたくない。チームをまたいて解決策が曖昧な性能問題の解決のため提案調整尻叩きとか、そういうのもやりたくない。叩かれるのも嫌。やらないと給料上がらないのわかってるけど、もういいです。ダメですかね。

自分は outcome に興味がなく process を楽しむ人間で、これはエーアイ以前から仕事に向かない性格だった。エーアイは単にそれを加速し、ごまかしや曖昧さを消し去っただけ。

そんなエーアイの書いたイマイチなコードをチマチマ直して綺麗にする仕事はあり得るだろうか。今はあることになっているが、コードの生産量を考えると持続性は無さそうに思える。残るのは、それこそリリース前に秘孔をつくバグ修正を繰り返すような火消し仕事ではないのかな。でも火消しばっかりやってると肺がんになっちゃうぜ。

澄んだ空気の静かな朝に綺麗なコードを書くだけの仕事がしたい。それは仕事ではなさそうだけれど。