AIにコードを書かせる時代、エンジニアは何をするのか
先日、100ファイル以上のExcelをまとめて修正する仕事がありました。
内容は大きく2つです。
1つ目は、Excelファイルの一括修正。
各ファイルのブック保護を解除し、表紙シートの名前を個別に変更する。そして、2枚目と3枚目のシートを正しいサンプルに差し替え、最後に再び保護を設定するというものです。
2つ目は、それぞれのExcelファイルの4枚目にある一覧表から明細を取得し、1つのExcelファイルに集約することでした。
一つひとつは、それほど難しい作業ではありません。
しかし、100ファイル以上を人間が手作業で処理するとなると、それなりの時間がかかります。
しかも、間違えてはいけない作業です。
そこで今回は、AIにプログラムを書いてもらい、一括処理することにしました。
ただし、私自身はコードをほとんど書いていません。
では、エンジニアとして何をしたのでしょうか。
PythonでもVBAでもなく、PowerShellを選んだ理由
Excelの自動化というと、VBAを思い浮かべる人が多いでしょう。
最近であればPythonという選択肢もあります。
しかし、今回私が選んだのはPowerShellでした。
理由はシンプルです。
今ある環境で、できるだけ余計な準備をせず、確実に仕事を終わらせたかったからです。
VBAでも実現できますが、マクロを用意して複数のExcelファイルを操作する仕組みを作る必要があります。
Pythonも便利ですが、今回の環境ではPython本体やライブラリの準備が必要でした。
一方、PowerShellはWindowsに標準で搭載されており、Excelがインストールされていれば、COMという仕組みを通じてExcelを操作できます。
C#やVB.NETからExcelを操作するのと似た考え方です。
もちろん、PowerShellが常に最適というわけではありません。
しかし、今回の条件では最も合理的だと判断しました。
ここで重要なのは、どの言語が優れているかではなく、今回の仕事に何が適しているかということです。
技術を選ぶことも、エンジニアの大切な仕事だと思っています。
コードはAIに任せ、実行は自分で行う
今回、PowerShellのコードはAIに生成してもらいました。
私が行ったのは、処理内容を整理してAIに伝えること。
生成されたコードを確認し、実際に実行すること。
エラーが発生すれば、その内容を確認してAIに修正を依頼し、再び実行することです。
つまり、役割分担はこうなります。
- 人間: 業務理解、処理設計、技術選定、実行、結果確認
- AI: コードの生成、修正案の作成
最近はAIエージェントが自律的にプログラムを実行したり、ファイルを操作したりできるようになっています。
しかし今回は、そこまでAIに任せませんでした。
理由は、実際の業務データを扱っていたからです。
100ファイル以上を一括変更するプログラムは、便利である一方、誤った処理をすれば100ファイル以上に影響を及ぼします。
そのため、実行とエラー確認は自分で行うことにしました。
私はこれを、AIと人間の境界線だと考えています。
AIを使うことと、AIに丸投げすることは違う
AIが生成したコードを使うことに、抵抗を感じるエンジニアもいるかもしれません。
自分でコードを書かなければ、エンジニアとしての能力が身につかないのではないか。
あるいは、AIに依存しすぎるのではないか。
そうした考え方も理解できます。
ただ、私は少し違う見方をしています。
エンジニアの仕事は、必ずしもコードを書くことだけではありません。
お客様や利用者が何に困っているのかを理解する。
問題を整理する。
技術的な解決方法を考える。
実行環境やコスト、リスクを踏まえて適切な技術を選ぶ。
そして、結果が要求を満たしているか確認する。
これらは、コードを書くことと同じくらい重要な仕事です。
今回、私はコードをほとんど書きませんでした。
しかし、何をするべきか、どのように実現するか、どこまでAIに任せるかという判断は自分で行いました。
AIに実装を任せることで、エンジニアは設計と判断に、より多くの時間を使えるようになる。
私はそこに大きな可能性を感じています。
技術を知っていることの価値は、むしろ高まるのではないか
今回、PowerShellを選択できたのは、Windowsの仕組みやExcelの操作方法について、ある程度の知識があったからです。
ExcelはCOMを通じて外部プログラムから操作できる。
PowerShellならWindows上でスクリプトを実行できる。
そうした知識があったからこそ、PythonやVBA以外の選択肢を考えることができました。
AIがコードを書いてくれる時代になると、プログラミング言語の細かな構文を暗記する重要性は、以前より小さくなるかもしれません。
しかし、その代わりに、さまざまな技術の特徴を理解していることが重要になると感じています。
どの技術を組み合わせれば目的を実現できるのか。
どこにリスクがあるのか。
どこまで自動化できるのか。
こうした判断をするには、やはり技術的な知識と実務経験が必要です。
AIによってエンジニアの仕事がなくなるというより、エンジニアが価値を発揮する場所が変わっていくのではないでしょうか。
これからのエンジニアに求められるもの
私はこれまで、ITインフラやシステム導入、業務改善など、さまざまな仕事に関わってきました。
その中で感じているのは、技術そのものよりも、技術をどのように仕事に結びつけるかが重要だということです。
最新技術を使うことが、必ずしも最適解ではありません。
今回のように、昔からあるPowerShellと最新のAIを組み合わせることで、十分に実用的な仕組みを作ることもできます。
むしろ、既存の仕組みを理解し、その価値を引き出せることは、これからも強みになると思います。
そして、AIを活用する際には、何をAIに任せ、何を人間が判断するのかという線引きも必要です。
将来的には、AIがコードの生成から実行、テストまで自律的に進める場面も増えるでしょう。
それでも、何を成功とするのか、どこまで操作を許可するのかという判断は残ります。
最後に:コードを書かなかったエンジニアの仕事
今回の仕事では、私はコードをほとんど書いていません。
それでも、エンジニアとしての仕事をしなかったとは思っていません。
業務を理解し、技術を選び、AIに実装を任せ、実行して結果を確認する。
それも立派なエンジニアの仕事だと思っています。
AIによって、コードを書くという作業の一部は置き換わっていくでしょう。
しかし、問題を見つけ、解決策を考え、判断し、結果に責任を持つという仕事は、そう簡単にはなくならないはずです。
コードを書かないことと、技術を理解しなくてよいことは違う。
これからのエンジニアに必要なのは、コードをどれだけ書けるかだけではなく、AIも含めたさまざまな技術を使って、どれだけ価値を生み出せるかという視点なのだと思います。