これまで、「学習」を主軸にものを作ったり、AIを活用したりしていましたが、
「生成AIをフル活用してシステムを組んだらどうなるのだろう」と思い、試してみました。
技術的な勉強というよりは、行ってみての感想をまとめた記事になります。
1. メリット
① 圧倒的開発速度
やはり一番のメリットは、圧倒的な開発速度だと思います。
今回作成したシステムは、SESと案件のAIマッチングサービスです。
大まかな処理フローは次のとおりです。
- メール取り込み
- 案件 / 要員のメール振り分け
- AIによる要約
- DB取り込み
- ルール採点
- (選択した案件 / 要員の組み合わせでの)AI採点
機能数は 画面16・バッチ8の計24機能 で、技術選定を含め 約1か月半 で組みました。
正直、AIがなかったら中だるみして途中で諦めていたかもしれない規模です。
これを1か月半で形にできる。すごい時代です。
ここからは、速度が出た理由を細分化したものになる気がしますが……。
② わからないことをわからないまま進められる
これもメリットの一つかなと思いました。
今までは動かなかったら調べまくって、解決しないと進めなかったところが、サクッと進むようになりました。
技術選定や実装方式などは、一応AIに案を出してもらい、確認したうえで進めましたが、ぶっちゃけわからないことのほうが多かったです。
今回でいうと、Dockerでの環境構築、API周りなどなど……。
技術や知識不足を痛感する一方で、AIに「こういう感じでやって」と指示してしまえば、わからなくても進んでいきます。
これが①で挙げたスピード感につながったのかなと。
③ 一人での開発だが、チーム開発のように動ける。
スレッドを分けてしまえば、何機能でも同時に実装できます。
これも大きなメリットです。
指示を出す側に構想がしっかりあれば、複数チャットに実装を指示できます。
個人開発をする人間からすると、とてつもなくありがたい……。
2. デメリット
① 中身がさっぱりわからない……
今回、ほとんどソースを見ないでAIに実装を任せました。
障害調査もAI頼りです。
結果、自分が作ったものなのに、中身が全く分からなくなりました。
これは自分のポートフォリオとしていいのか、非常に悩ましいところです。
②保守性、性能面は考慮されない。
AIはやってほしいといったことを言葉通りに実装します。
指示の仕方が悪かったところもありますが、性能面や保守性は全く考慮されません。
ログの出力も結構雑になったりして、障害対応時などはAIすら原因特定に苦戦する場面もありました。
3. 総括
生成AIを使った開発、とてもいい。
個人開発を行うのであれば、やはり速度は正義です。
その点でいえば最高です。
一方で、これのみに頼っていると、SEとしての自分は死ぬだろうなとも思いました。
SEのレベルを示す指標のうち、その下のほうはすべてAIに取られるでしょう。
これからは「コードが書ける」「設計ができる」などは評価されず、
そこに付加価値をどれだけ付けられるかが試される時代になると感じました。
私自身もSE業界で働き始めて早7年目。
これまでいろんな現場で努力し、要件・設計・実装・テスト・管理と一通り経験させていただきました。
自分でも「新人を抜け、中堅に入ってきたな。ここから性能とか保守性とか意識していかなきゃな」と思っていたところではありますが、
7年分の下積みはこれからの時代、AIに取られて評価されなくなるでしょう。
これから先を見据え、AIの開発速度を生かして爆速で勉強を進めていかないと、きっと自分の仕事はなくなる。
そう感じました。
4. 次の学習について
非常に悩ましいところです。
Docker等の開発環境、AWSなどのインフラ周り、効率的な生成AIでの開発手法など、いろいろ学びたいものはありますが、
あえてここは一度、低レイヤーに手を出してみようかなと思っています。
どこまで生きるかはわかりませんが、現代の開発で意識しなくなったメモリ管理などを理解しておけば、1つの強みになるかと。
目標は、簡易OSを自分で作成すること。
いつになるかわかりませんが、また区切りが付いたら記事を投稿したいと思います。