Velocity

方向を定めて

AI 時代の自己表現のあり方に悩むソフトウェアエンジニア

芸術とは無縁な人生を送ってきたが、自己表現なるものを大事にする性分ではあると思う。

外界のあれこれをインプットして咀嚼し、自分の考えを整理した上で何かをやってみる、そして他者に伝える。アウトプットには確かに自分という存在が写し出されており、他者のものと比較して優れていたり劣っていたり、あるいは比較さえ出来なかったりする。

自分×問い というかけ合わせの結果は1種の自己表現であり、他者からの評価の対象である。結果に至るまでの思考の過程は創作活動とも呼べるだろう。

日常の中で、自己を表現するための創作活動に時間を費やせるというのは幸せなことだと思う。単純にこの時間を増やそうと考えた時に、人生という時間の中で大きなウェイトを占める仕事に思考が移る。ソフトウェアエンジニアリングという仕事における創作活動とは何だろうか、そして誰のニーズを満たし、どのように社会と繋がるのだろうか。

ソフトウェア開発における自己表現って何だろう

今までのコーディングやシステム設計においては、「与えられた制約や要求の下で、どのような設計・コードで、どの範囲の問題を解決するか」というのが自分にとっての自己表現になっていた。自分が優れた解を導き出したいという知的好奇心なのか、承認欲求なのか、それとも違う何かなのか、正体は分からないけれどとにかく自己の考えが形として具現化されるということが自分にとって大事なのである。

「コードの美しさ」という表現があるように、人々は無機質なコードの中に、コンセプトだったりアイデアを見出すことができる。それは誰かの存在を感じることに繋がる。コーディングとは、解決空間をコンセプト化したものなのだから。

設計やコーディングという作業は、開発において必ず必要な工程であり、人間が一定の時間をかけることが当たり前だった。この時間が確保されていることは、仕事上での自己表現の場が一定確保されていることを意味する。設計やコーディングを自らの手で進める上で、何かしらの気づきを得て、思考が揺れ動くこともある。こうしたプロセスを経ることで、自分のアウトプットにより自信を持つことができるようになる。

しかし、AI の普及によって、これらの前提は変わりつつある。

AI が自己表現をどう変えたか

創作活動の場であった設計やコーディングという作業が、1人で淡々と思考を積み上げるものではなく、AI が生成したものに対して自分の意図を反映させていくという協業的なスタイルに変化した。

自分で思考を積み上げた結果と、AI が生成したものを修正した結果。これらが仮に全く同じ結果であったとしても、後者を自己表現の1種として捉えることが自分はできない。つまるところ、自分にとっての自己表現とは、結果の良し悪しではなく思考の揺れ動きなどを含む一連のストーリーを圧縮したものなのである。

しかし、このストーリー性が重要なのはあくまで自分の中であり、社会からは求められていない。社会は、可能な限り早く良いものを作ることを求めている。

つまり、ソフトウェアエンジニアとして働く以上、今までのような自己表現の喜びを得たいのであれば何か思考やフィールドを変えていく必要がある。

何を変えるか?

では、自分はどのように思考を変える必要があるのだろうか?どうすれば今までのような自己表現の喜びを感じつつ、社会からのニーズに応えることができるのだろうか?

今の考えとしては、2つの案がある。1つは「結果ではなく過程こそが自己表現だ」という考え方である。

1. 結果ではなく過程こそが自己表現だ

今までは、成果物であるコードや設計に自分が写し出され、過程はストーリーの一部であるという考え方をしていた。しかし、Agentic coding において人間が主に関与するのはプロセスの設計である。自分の仕事をやり方を言語化して、ハーネスを作り上げ、要求を与えると AI が期待されているアウトプットを出力する — 間接的ではあるが、そのプロセスには確かに個々人の意思が反映されている。実際、ハーネスを作り上げていく過程は非常に楽しい時間だ。キャリアの中で一番面白い時期だと感じたこともあった。

しかし、ハーネス整備が進むにあたり、開発のボトルネックは設計やコーディングではなくその前後の開発プロセスに移行する。要件・要求の定義や、組織内での成果物のレビューなど、そういった類のものだ。これは合理的で健全なシフトだ。

問題は、この状態で設計やコーディングのハーネス整備に投資し続けても、投資対効果が目減りしていくということだ。組織の帽子を被った自分が「他に移ったボトルネックを解消しろ」と言ってくる。チューニングの基本だ。

他に移ったボトルネックの解消には、今までとは異なる領域についての専門性が必要になることがある。プロダクトマネジメントやプロジェクトマネジメント、QA や組織論など多岐に渡るだろう。開発プロセスを自己表現の場として選ぶには、ソフトウェア開発にまつわる広範な物事を学んで、血肉としていくしかない。なぜなら、AI に相談してその結果を採用するだけでは、自己表現と呼べないからだ。

2. プロダクトこそが自己表現の発露だ

2つ目のアプローチは「プロダクトこそが自己表現の発露だ」という考え方にシフトすることだ。1つ目の「結果ではなく過程こそが自己表現だ」という考え方は直交関係にあり、それが仮に横方向のシフトだとすると、これは縦方向のシフトになるだろう。

人類皆プロダクトマネージャーという世の中の潮流 (要出典) を踏まえると、こちらもあり得るように感じている。「ユーザーの抱えているペインをどのように解決するか?」という問いに対して、自分が考える最善の一手を世の中に出し、顧客からのフィードバックをその評価とする考え方だ。

こちらの難しさは、1つ目同様にプロダクトマネジメントの専門性が必要なのに加え、組織の中で1人でプロダクトないし機能を作り上げてリリースするという機会を得る必要があるという点がある。1人で作り上げるのは理想ではあるが、組織の中で働いている以上、チームでプロダクトを作る時に自分の意思をどれくらい込められたかが重要になる。

また、作ったプロダクトが顧客の課題が解決できていなければ価値がないという点も難しさの一つである。そのような状態は健全ではないため、自己表現の場として長続きしないだろう。

結論

ということで、今の自分の考えとしては、自己表現の場を大切にするのであれば今までとは思考を変えて越境していく必要があるという結論に至った。ハードな道のように感じるというのが正直なところだが、ソフトウェア開発の最前線で戦っていくためには必要なことである。自己表現の場がないということは、もはや自分ではなく他人に任せれば良いのだから。

3ヶ月後にはまた思いが変わっているかもしれないが、今の時点でのスナップショットとしてここに記録しておく。