数年前、まだ生成AI、LLMなんかがこれほど騒がれるより前から、私は「今の形のエンジニアリングはいずれ終わる」という直感を持っていた。
最近のニュースで、「AIがコードを書けるようになったからITを避ける」という就活生が、Twitterなんかで話題になった。それに対して、現役エンジニアたちが「コーディングなんて開発の極一部だ」「設計や要件定義こそが本質だ」と反論しているのも見た。noteにこんなブログ記事もあった。
こんな議論を見つめながら、私は自分のかつての予想…というか直感が的中したことを実感しつつ、同時に業界に対してどこか違和感を抱く。
もちろん、うえで挙げたニュースに掲載された就活生が、どれくらいのスキルセットで、どれくらいエンジニアリングのことを知っているのかはわからない。ただ、これまで10年くらいエンジニアリングの世界を目にしてきたけれど、少なくとも、私にとってのエンジニアリングは「本当につまらないものに変質してしまった」ように思う。
QiitaとかZennあたりにこんな記事を書くと、最近のエンジニアリングの界隈の人、というか、最近のエンジニアリングに適応している人たちに怒られてしまいそうなのでここで色々考えてみたいと思う。
剥ぎ取られた「オタク神話」の仮面
少し前までは、世間でもてはやされたIT人材といえば、「子どもの頃からコードを書き、技術そのものを愛してプロダクトを作る若いオタク」だったように思う。
小学生の頃からプログラミングとかをしてて、大学生くらいになってスタートアップを立ち上げて、新しい技術で社会に貢献する、みたいなモデルがよくニュースに上がってきたように感じられる。
けれど、最近は急に生成AIが発達して、実用に耐えうるコードの断片を、たくさん生成できるようになった。「エージェント開発」とか、「AI駆動開発」なんて言葉も当たり前になった。ずいぶんエンジニアリングの現場は変わってきた。こんなふうに世界が変わって、SNSや現場から聞こえてきたのは、意外な本音だった。
例えばこんなものである。
- コーディングなんて誰もやる人がいないから嫌々人間がやっていただけだった
- 面倒な実装から解放されて、本来の仕事に専念できるようになった
- 知識のない人が、品質の悪いコードをたくさん生成するがために、コードレビューのしごとが増えて人材が足りない
結局の所、技術そのものに手触りや美学を感じていたり、こだわりを持っていた人間は、最初から圧倒的な少数派で、コーディングというものを「事業や成果を出すための退屈な作業」と見ていたひとが大半だったのではないだろうか。
確かに、ビジネスにとって、「要件定義や監査がエンジニアリングの本質」というのは、明らかに正しいかもしれない。だから、生成AIの登場で「オタク神話」は完全に剥ぎ取られてしまって、その本質だけが残ってしまったんだと思う。でもそれは、私が夢中になっていた「ものづくりの楽しさ」とは全く別のものである。
エンジニアリング、というかクリエイターという仕事
10年近く、個人からチームまでいろんなプロジェクトに関わってきた。ビギナーばかりがいるチームもあったし、環境はいろいろだったが、それでも要件定義とか設計も担当したこともある。
その点で考えても、生成AIの発達自体は面白いし、今後、世界がどうなっていくのか、気になる部分もある。生成AIにもポジティブな部分とネガティブな部分はあるけれど、世界がこうなれば酸いも甘いも噛み分けていかないといけない世界に、良くも悪くもなったんだと実感する。
しかし、私の開発のスタイルにはどうしても馴染みきらない。
現在のエンジニアリングで「正しい」とされるスタイルにおいて、人間がやるタスクは「要件定義をして、それをもとにAIに指示を出し、吐き出された大量のコードにセキュリティホールや破綻がないかを神経を尖らせて粗探しする」というものになりつつある。監査業務や検閲業務の割合がいっきに増えている。(だからこその、先に例を挙げた「人が足りない」になるわけで。)
自分で土をこねて陶芸すること、あるいは粘土をこねて彫刻を削り出す―そんなことが好きだった人間が、「機械で作った大量の既製品の見張り役」にされている。認知不可の高い他人のコードの添削を強いられている現状に、業界に残った職人肌のエンジニアの中にも、この「新しい形のエンジニアリング」に適応できず、静かに苦痛を強いられている人が確実にいるように思う。
そこで私は初めて気づいたことがある。私はどうやら、エンジニアリングをしていたというよりは、クリエイターをしていた、ということだ。実は私は、前からエンジニアと自称するよりも、「デベロッパ(developer)」という単語を意図的に使ってきた。昔からエンジニアというよりはデベロッパだと思っていたのは、どこかdeveloperという単語に「クリエイター」と共通するものを感じていたのかもしれない。
課金して生成AIを「使いこなす」個人開発
個人開発の場合には、なおさら生成AIを使うエンジニアリングは、私にとってはあまり理解ができない。個人開発のことを考えたとき、もちろん今はもう生成AIを使う場面はあるのだが、それでも手動でコーディングすることも多い。きっと、「生成AIを使いこなせないのはレガシーだ」「時代遅れで淘汰される」と言われてしまうのだろう。
もちろん、個人開発で生成AIを活用することは、もはや避けられない部分も多い。というかむしろ積極的に使うべき場面も多々ある。しかし、だからといって、何でもかんでも課金した生成AIにすべてを肩代わりさせる風潮には、私の中で疑問が残る。
自分で思う設計を、自分の中で、コーディングしながら研ぎ澄ませていく過程は、今の時代だからこそよりその重要性を増してきている気さえするのである。自分の中での設計があるなら、それを打ち込んだほうがはやいこともあるし、わざわざ課金して認知不可の高いコードレビューに回らなくても、と思ってしまうのである。
これは「生成AIを使いこなせるかどうか」という問題とはまた別である。構造を学び、理解して、組み立てることができ、それを「やりたい」と思うのに、それをわざわざお金を払ってまで「作る手触り」を明け渡す必要もないと思う。
ビジネスにするか、ということ
ビジネスの世界では、生産性がすべてだ。成果を出せるか。マネタイズできるか。そこが重要で、それ以外のことは本質ではない。ビジネスという枠の中で、資本主義の道理の通りで動けば「手で書くこと」は非効率の烙印を押され、排除されていくのだろう。
いま、エンジニアをしている多くの方々にとっては、先に挙げた「人手不足」のような、また別の苦痛が蔓延しているのかもしれない。実際に、世の中の一般の方々のITスキルや知識の少なさは、エンジニアリングをしている中の人にとっては驚くべきもののこともあり、それもまた最近話題になっていた。
ただどれだけレガシーでも、私はコーディングをやめない気はする。世の中の流れに圧されて、また私も他の仕事に圧されて、ずいぶんエンジニアリング…というか、「クリエイター」をしている時間は減ってしまったし、気持ちもずいぶん削がれてしまったのもまた事実ではあるのだが、それでも、きっとこれからも、個人開発においてはAIをつまみ食いしていくかたちになるだろう。それが個人開発の醍醐味だと思う。
就活生がエンジニアを避ける必要はない
エンジニアの仕事がなくなることは今後もないはずである。ただ、これまでと「エンジニアを目指す」ということの意味が大きく変わっていると思う。その意味では、「エンジニアという仕事がなくなってしまった」という表現は、正しい部分もある。こう考えれば、エンジニアを今から避ける就活生がいるのは不思議ではないし、別に批判されることでもおかしなことでもないと思う。ただ、「仕事がなくなるかもしれないから」という単純な理由で避けるのはそれはそれで問題である。
特に、「コーディングという作業の中でOJT的に要件定義や設計を学んでいく」という従来のプロセスは急速に陳腐化していっているし、どうやって新しいタイプのエンジニアを育成するかというはまた大きな問題の一つなのではないだろうか。ポスト生成AI時代の、新しいタイプのエンジニアをどれだけ育成して、どれだけ世間…というか就活生の興味を惹けるか。そんな時代になったような気がする。そして今後もエンジニアという職業の形は変化し続けるかもしれない。そんな変化を楽しめる人材こそが、今必要なのかもしれない。
コメント
コメントを投稿
コメントを自由に追加することができます。
スパムコメント等は削除いたしますのでご了承ください。