AIにコーディングをさせるようになったことで、8-9割とは言わずとも、少なくとも半分くらいは自分がこれまでにやっていたコーディングの作業を減らすことができるようになった(気がする)。しかし、いまだに残りの5割くらいは手作業でコードを書いているわけで、ここ最近これにすごくフラストレーションが溜まる。そこまでやれるなら、もう全部やってくれないか?と。
難易度や抽象度の違いはあれど、自分がこれまでやっていた作業が20-30秒かそこらで実現できている中、引き続き自分が手を動かして試行錯誤せざるを得ない状況になると、相対的にとてつもなくスピードが落ちたように感じられる。これは気持ちの問題ではなく、実際めちゃくちゃ遅い。早歩きでオートウォークを通過し終わったあとの、なんとなく体が重くなるあの感じに近い。
もともと遊びで始めたくらいにはコーディングは好きで、そこから関数型プログラミングをやってIOを抽象化した純粋なコードの美しさとか、TypeScriptで型安全性を追求した型パズルの面白さとか、そういったものもわりかし好き寄りであったのだが、自分にとってそういうものは、単にその"難解さ"が心地良かった。
理解することが難しくて、それ故に分かった(解けた)ときに心地いい。岩波文庫で哲学の本を読んでいるような、クイズを解いてるような、そんな感覚。それに、その難解さに根気強く取り組めて、楽しめることが、ソフトウェア・エンジニアとしての資質だと思っていた。実際、それでだいぶ良い評価をされるし、そこそこのお金も貰える。
いまは、そういうものの美しさや面白さは引き続き分かるが、それを自分の仕事にはし続けられないな... という感覚のほうが強い。というか、仕事にしてもいいが、昔ほどは心地よく感じられなくなってきたのと、その心地よさが資質というのも疑わしい。エッジケースはあれど、AIのほうが圧倒的に作業をこなすスピードが速いし、それを自分がいちいち手作業で仕事としてやっているのは、自己満足な職務怠慢に感じられて、自分自身に対して不快な気持ちを催してくる。敢えて遅い道を選んでるんじゃないか?と。
今まで自分がやっていた仕事は全部遊びだったという解釈のほうが、納得できる。
こういう思考に至った背景には、現職のTailorで働いて得られた経験も大きい。
唐突に過去の話をするが、前職では機能開発ではデザイナがPdMを兼任するという開発体制で、ソフトウェア・エンジニアはある程度固められた仕様に対して技術的なレビューを行い、開発に入るという流れで回っていた。当時の自分は、このプロセスが社内受託開発のように見えていて、設計やコーディングだけに集中できるというメリットを感じつつも、結局は単なる作業者以上にはなれないのでは?という行き詰まり感を感じていた。
当時の自分は20代の若者だった故技術的に尖りまくっていることがソフトウェア・エンジニアとしてイケているんだ!という思想があり、コードを書かないロールに入ってしまうと、自分の尖りが失われてキャリアのマイナスになると思っていた。が、Tailorに入りPdMとSWEなどの職能/プロセス分けをせずソフトウェア・エンジニアがワンストップで直接フィーチャーを考えて作り、デリバリするというスタートアップらしいスピード感のある流れを体験すると、プロダクト開発の本筋とはリリースノートや仕様書、ドキュメントなど、最終的に顧客へデリバリーされる理想の像が描かれ、実現されることがメインで、そのうちコーディングというプロセスが占める割合の、躊躇せずに言うならその"無駄さ"はとてつもなく大きく感じられる。極端な言い方だが、無ければ無い方がいい。
今振り返ると、前職でデザイナがPdMを兼任するのはUIプロトタイプ(というかデザイン)と仕様を最も高速に作れるのがFigmaを操れるデザイナだったからで、自分含め開発者が同等かあるいはもっと速いスピードでそれらをカバーするプロトタイプを作れれば、なにかブレイクスルーがあったかもしれない。
しかし、当時の自分にとっては「ソフトウェア・エンジニアはやっぱ技術力鍛えてナンボでしょ」みたいな考え方が支配的で、根本的な開発プロセスの刷新にはモチベーションがあまりなかった。仮にあったとしても、そもそも一人の開発者として分業体制に甘えていたし、PdM≒デザイナという組織の前提を覆すだけの覚悟もなかった。