はじめに
おそらく多くの開発者は、AIを「コード生成やデバッグといった自身のタスク効率化」に使っていることでしょう。
(もちろんここでいう「多くの開発者」には、筆者である自分も含まれています)
しかし、AIが生成するコードの量は爆発的に増え、多くの開発現場においてドラスティックな変化が求められているのも事実です。
AIが高速かつ大量にコードを生み出す今、開発のボトルネックは「コードを書く速度」から「生成されたコードをレビューし、正しく判断する人間の能力」へとシフトしています。
この状況で私たちが旧来のスキルのままでは、AIの進化に取り残され、文字通り”ボトルネック”になりかねません。
この記事では、私自身の体験から、AIを単なるツールではなく、人間の能力を拡張してくれる学習パートナーとして捉え直してみたいです。
AIの進化に合わせて人間も進化する必要があり、AIはそのためのパートナーとなりうる、そんな具体的な一例です。
きっかけ
ことの発端は、モックサービス作成を、GitHub CopilotのAgentモードにほとんど丸投げする形で依頼したことでした。
これ自体は単なる興味本位でした。
というのも普段は既存のプロダクトコードに対して機能追加したり、不具合修正したりするためにAIを使っていたからです。
そんな状況でふと「0からAIにサービスを作成させることはどれくらいできるんだろうか?」と気になったのがきっかけです。
すると、かなり雑な指示であったにも関わらず、Twitter(自称X)でみかけるようにかなりすごいスピードでモックサービスを作成してくれました。
「こりゃすごいなぁ、俺もAI驚き屋として食っていくしかなくなるのかなぁ」なんて思っていたところ、Copilotが生成したコードの中に、見慣れないURLが埋め込まれていました。
<img src="https://randomuser.me/api/portraits/men/41.jpg" alt="プロフィール" />
randomuser.me
との出会い
この https://randomuser.me
というドメインが気になって調べてみたところ、これは「RANDOM USER GENERATOR」という、テスト用のダミーユーザー情報を生成してくれる非常に便利なオープンソースであることがわかりました。
フロントエンドのUI確認や、アプリケーションのテストデータを作成する際に、リアルなダミーデータを手軽に用意することができます。
randomuser.me
の特徴
手軽さ
APIエンドポイントにアクセスするだけで、名前、メールアドレス、住所、電話番号、そしてプロフィール画像まで、リアルなユーザーデータ一式をJSON形式で取得できます。
多様性
gender
や nat
(国籍)といったパラメータを指定することで、特定の属性を持つユーザーを生成することも可能です。例えば、/?gender=female
で女性ユーザー、/?nat=jp
で日本人ユーザーを生成するといった使い方ができます。
複数生成
results
パラメータを使えば、一度に複数のユーザー情報をまとめて取得することも可能です。(例: /?results=10
)
感動
これまでモックデータは手作業で作成するか、簡易な自作スクリプトに頼っていたため、このAPIの存在はまさに目から鱗でした。
特に、画像までダミーデータを手軽に用意できる点は、めちゃくちゃ便利だなと思いました。
AIとのペアプログラミングから得られた学び
今回の体験を通じて、AIとのペアプログラミングは単なる「作業の効率化」に留まらない、以下のような価値があると感じました。
これは、人間の能力を「底上げ」してくれる感覚に近いものです。
未知のツールやAPIとの出会い
自分の知識の範囲外にある便利なサービスやライブラリを、AIが不意に教えてくれます。これは、自分の検索スキルだけではたどり着けない、偶然の発見(セレンディピティ)です。
ベストプラクティスの学習
今回の例では、モックデータの生成方法として、よりモダンで効率的なアプローチを学ぶことができました。
自分の古い常識がアップデートされる瞬間です。
思考の壁打ち相手
「こんなものを作りたい」という曖昧な指示からでも、AIは具体的なコードを提示してくれます。
それ自体が、自分のアイデアを具体化する上での良い刺激になり、新たな発想のトリガーにもなります。
まとめ:AI時代の開発者に求められること
今回の体験は、AIが単なるタスク処理ツールではないことを明確に教えてくれました。
(同時にタスク処理の能力がすさまじいことも理解できましたが)
というのもAIは、私たち開発者の知識を拡張し、能力を底上げしてくれる学習パートナーだということが理解できたのです。
冒頭と重複する話にもなりますが、AIによるコード生成が当たり前になった現在、人間の開発者に求められる役割は、単にコードを書くこと以上に、「どのコードが優れているかを見抜き、なぜそう言えるのかを理解し、賢明な技術的判断を下すこと」にあるはずです。
※もしかすると近い将来、その「技術的判断」さえ人間が介在できない状況になるかもしれませんが、少なくとも現時点だとそうではないと認識しています。特に複雑な既存システムはAIが全速力でアウトプットを出力できる状況に至っていないため、その整備は人間がAIの力を借りながらやってあげる必要があります
そして、その賢明な技術的判断を磨くためには、常に新しい知識やベストプラクティスを学び続けるしかありません。
そのためにもAIに単純作業を任せるだけでなく、その提案から学び、対話するように開発を進めること。
それこそが、AIの進化のスピードに追いつき、自らをアップデートし続けるために必要な姿勢なんだと思いました。
もしAIをまだ「便利なコード生成器」としてしか使っていないなら、ぜひ一度、その提案の意図や背景知識を深く読み取ろうとしてみてください。
きっと、そこには皆さんのスキルを一段階引き上げてくれる、新しい発見が待っているはずです。