「コードを書くこと」と「開発すること」

2025/06/01 14:01

※ 商品のリンクをクリックして何かを購入すると私に少額の報酬が入ることがあります【広告表示】

生成AI時代のプロダクトとエンジニア

5月末、ローンチされたとあるサービスがセキュリティや倫理観に大きな問題を抱えていると指摘され、「これぞ生成AI時代のプロダクトだ」といったツイートがありました。生成AIの力を借りれば、システムの内部構造や利用規約、さらにはサービス設計に関する深い知識がなくとも、一見それらしいものが「開発」できてしまう時代へ警鐘と言えるでしょう。

生成AI、特にコードアシストエージェントの進化は目覚ましく、まるで人間と対話しているかのような自然なやり取りでコードが生成される様子には、日々驚かされます。現時点ではAIが一度に処理できる情報量(コンテキストサイズ)の限界でした。大規模で複雑なシステム全体の情報を把握し的確な判断を下すことは難しいだろうとは思います。

しかし、技術の進歩は止まりませんので、コンテキストサイズはいずれ拡大し、システム全体を俯瞰した上でのコード生成や修正提案も可能になるでしょう。この先おそらく定年の延長が続く我々おっさん世代エンジニアはどう生きていくべきか、五里霧中である。

「コードを書く」だけでは見えない景色

しかし、本当にそうでしょうか。先日、私は自宅で使うための小さなツールを開発していました。愛用しているGoPro Hero 9は、長時間の録画を行うとファイルが4GBごとに分割されてしまう仕様があります。純正アプリで結合は可能ですが、再エンコードが発生するため画質が劣化し、時間もかかります。そこで、ファイル名から分割情報を読み取り、SDカードからPCへコピーしつつffmpegで無劣化結合するコマンドラインを生成するスクリプトを書くことにしました。

最初はターミナルに貼り付けて実行するだけの単純なものでしたが、どうせならとGUIを付け、サムネイル表示から動画を選択し、指定場所に結合済みファイルを出力するmacOSのデスクトップアプリへと発展させました。

YouTubeで紹介し「もし欲しい人がいたら」と呼びかけたところ、一人だけコメントをくれました。使い勝手の良いアプリにするには、ffmpegやexiftoolのインストールが不要でなければなりません。

ffmpegのgpl無しオプションを使うのは良いとして、h264にはパテントがあります。回避する方法を調べていると、Ciscoが開発したH.264コーデック「OpenH264」がライセンス料を負担してくれていることを知りました。これにより、開発者はロイヤリティフリーで利用できるのですが、重要な制約として「Ciscoがビルドしたバイナリを使用する」必要があります。

ここで生成AIに「OpenH264を使ってmacアプリを作るには?」と尋ねてみました。するとAIは、OpenH264をソースコードから自前でビルドする方法を提示してきたのです。

ここに至るまでに、開発者として知っておくべき、ないしは経験から知っていることがいくつか登場しました。

作りたいものをAIに伝え、AIの指示通りに進めてしまうと、意図せずライセンス違反をしてしまう可能性がありました。

この経験は、「コードを書く」ことと「システムを開発する」ことの間に横たわる、決定的な違いを浮き彫りにします。AIは超特急でコードを書いてくれます。しかし、それが実用に耐えうるのか、法的な問題はないのか、セキュリティは担保されているのか、といった判断を下すには、依然として人間側に知識と経験が必要です。現在のところは、ですが。

なぜ「謎システム」は生まれ続けるのか?

少し話は変わりますが、私は長年、Webサイトなどで見かける不可解なパスワード入力制限(極端に短い文字数制限、謎の禁止記号など)に疑問を抱いていました。先日、Threads でシステム開発をしている方に理由を教えてくれるように呼びかけてみたところ、以下のような回答が寄せられました。

これらの回答は、期せずして「なぜそのようなシステムが生まれ続けるのか」の一端を示してくれました。

現代のシステム設計において、これらの理由は必ずしも正当とは言えません。適切なハッシュ化やパラメータ化クエリ、フレームワーク標準のCSRF対策などを知っていれば、ユーザーに不便を強いるような制限は回避できるはずです。

ここにもまた、「コードは書ける(かもしれない)が、最適な開発ができていない」という現実が見え隠れします。もし、このような知識のアップデートを怠ったまま生成AIに頼りきり、「なんとなく動くもの」を作ってしまったらどうなるでしょうか。その先に、エンジニアとしてのキャリアはあるのでしょうか。

※ 徳丸さんやIPAがどれだけ頑張っても、声が届くべき人に届いていないのです。私も末席を汚すエンジニアですが初心者向けの技術書を書かせてもらうことがあり、認証部分を自前で書くのは良くないことなどを書いていますが、何の力にもなれていない無力感を感じます

生成AI時代の羅針盤は「問いを立てる力」と「本質を見抜く力」

生成AIの台頭は、私たちエンジニアに「コードを書く」という作業そのものの価値を問い直させています。しかし、それは決して悲観すべきことではありません。むしろ、私たちが本来注力すべき、より本質的な領域へとシフトする好機と捉えるべきです。

システムがどうあるべきか、どのような構成で、何に注意を払い、どのような価値を提供するのか。生成されたコードが本当に目的に合致し、長期的な運用に耐えうるものなのか。これらの問いを立て、判断し、実現していく力こそが、これからのエンジニアに求められるのではないでしょうか。

それは、まるで航海術のようです。AIという強力なエンジンを手に入れたとしても、どこへ向かうべきか、海図を読み解き、天候を予測し、船を安全に導く船長の役割は、依然として人間が担うのです。

穴だらけのサービスが「生成AI時代のプロダクト」と揶揄される現状は、裏を返せば、真に「開発する」ことの価値が高まっている証拠です。AIを使いこなし、その提案を鵜呑みにせず、深い知識と経験に基づいて最適な解を導き出す。その先にこそ、私たちのキャリアは拓けていくのだと信じています。

ITエンジニアの皆さん、この変化の時代を、どう捉え、どう歩んでいこうとされていますか?

※ この記事は、書き殴ったものを生成AIに文章にしてもらったものです。羅針盤などという小洒落た言い回しは一切していなかったのですが、言い得て妙だなと思いました

Prev Entry

Next Entry