現在、私は客先常駐でシステム開発に携わっています。
多くの現場と同様、セキュリティの都合上、インターネット環境には制限があり、調べ物をする場合は個人端末や検索専用端末を利用する必要があります。
これまでは個人端末で調べた内容を頭で整理し、業務端末に反映するという形を取っていましたが、この方法は手間もかかり、作業効率が良いとは言えませんでした。
そんな中、現場で Copilot(エンタープライズエディション) が利用可能になり、開発業務の進め方に大きな変化がありました。
私は現在SEとして設計・実装を担当しており、主に以下のような用途でCopilotを活用しています。(現在は実装工程です)
1.メソッド名や変数名の提案
2.コードを提示し、実装方法が適切かどうかの確認
3.「やりたいこと」を実現するために、どの機能・API・ライブラリを使えばよいかの相談
4.他人が書いたソースコードの解析や処理内容の理解
特に 実装方法の相談 については非常に重宝しています。
自分では思いつかないような、シンプルで可読性の高いコードを提案してくれることも多く、「こういう書き方があったのか」と学びになる場面も少なくありません。
他人のコード解析では、複雑なコードを提供しても1行ずつ意味を教えてくれたうえ、「こんなことがしたいのだと思います」と教えてくれます。さらに、そのコードを直すにはこうしたらよいというのも併せて提案してくれるため、かなり参考になることも。
また、自分が昔の実装方法しか知らない場合でも、比較的新しい書き方や考え方を提示してくれる点は非常に助かっています。
インターネットで複数のサイトを巡回しなくても、必要な情報やヒントをある程度まとめて得られる点は、制限のある現場では大きなメリットだと感じています。
一方で、便利だからこそ感じるデメリットもあります。
1.相談には乗ってくれるが、最終的な正否は自分で判断する必要がある
→「本当にこの実装で問題ないか」の確認は結局人間が行う必要があります。
2.ネットワークの影響か、朝の時間帯にまったく回答が返ってこないことがある
→使いたいときに使えないケースがあり、過度な依存は危険です。
3.何でも聞けてしまうため、考える力が弱くならないか不安になる
→特に、AIを使うことが当たり前になった若い世代は、自分で悩む機会が減らないか少し心配しています。
AIはあくまで「補助」であり、「考える代わり」にはならないと意識する必要があると感じています。やはりコパイロット(副操縦士)という名前の通りかなと思います。
現場でAIを活用する際には、以下の点に注意が必要です。
1.既存のソースコードやSQLの解析を依頼する場合、業務固有の名称やテーブル名は「A」「TEST」などに置き換える
2.提案された内容は、実際に動かしてみるまで正しいとは限らないため、必ずテストを行う
3.AIの回答を鵜呑みにしない
→仕様や前提条件がずれていることもある
4.AIで得た内容を業務に反映する際は、現場のコーディング規約・フォーマット・ルールに必ず従う
「AIが言っていたから」という理由だけで採用するのは危険であり、最終的な責任は実装者にあることを忘れてはいけません。
CopilotをはじめとするAIツールは、制限の多い開発現場において、非常に強力な支援ツールだと感じています。
一方で、便利さに頼りすぎず、「考える」「検証する」「責任を持つ」という基本を忘れないことが重要です。
AIを使いこなす側であり続けることを意識しながら、今後も上手に活用していきたいと思います。