― ChatGPT・Codex・GitHubでESP32教育用エディタを開発して感じたこと
はじめに
現在、学校教育でESP32を扱いやすくするための ESP32 Education Editor を開発しています。
開発を進める中で、ChatGPT、Codex、GitHub、自動テストを組み合わせることで、開発の方法そのものが大きく変わってきました。
そして今回強く感じたのは、
この仕組みは、年を重ねたエンジニアが、もう一度システム開発に挑戦するための大きな助けになる
ということです。
新しい言語、フレームワーク、Git、Web技術などをすべて一から覚え直さなくても、これまで培ってきた設計経験や問題解決の考え方を生かして、現在の技術で開発を進められるようになってきました。
今回の開発の流れ
以前は、
考える
↓
コードを書く
↓
動かす
↓
修正する
↓
GitHubへ登録する
という流れでした。
現在は、
人間
↓
目的・仕様を考える
ChatGPT
↓
仕様整理・実装方針の検討
Codex
↓
ソース調査
↓
実装
↓
自動テスト
人間
↓
レビュー
↓
実機確認
↓
承認
GitHub
↓
commit
↓
push
↓
release
という分業になっています。
重要なのは、AIにすべて任せているわけではないということです。
人間は、
- 何を作るか
- 何を変更してよいか
- 何を変更してはいけないか
- 本当に正しく動いたか
を判断します。
AIは、その判断を実際のコードや検査作業へつなげてくれます。
自動化で大きく変わったこと
ESP32 Education Editorでは現在、
- ソースコード確認
- Build
- Firmware compile
- バージョン確認
- Documentation確認
- Git差分確認
などを自動化しています。
例えば、
check_source.ps1
test_build.ps1
を実行することで、以前なら複数の手順で確認していた内容をまとめて検査できます。
Codexによる修正後も、
実装
↓
自動検査
↓
結果報告
↓
人間が確認
という形にしています。
ESP32へのFirmware書き込みやセンサの動作など、実機でなければ確認できない部分は最後に人間が確認します。
年を重ねたエンジニアにとっての意味
技術の世界は変化が速く、しばらく現場を離れると、
JavaScript
Node.js
Git
GitHub Actions
Web Serial
npm
など、知らない技術が一気に増えていることがあります。
以前なら、
「もう一度すべて勉強してからでなければ開発できない」
と感じることもあったと思います。
しかし現在は、
自分が実現したいことを考える
↓
AIと相談する
↓
必要な技術を確認する
↓
AIと一緒に実装する
↓
自分の経験で判断する
という方法が可能になりました。
長年の経験で身につけた、
- システム全体を見る力
- 問題を分解する力
- 異常に気付く力
- 利用者の立場で考える力
は、今でも非常に重要です。
むしろAIによって、これらの経験を再び活用しやすくなったように感じています。
AIは「代わりに作る人」ではなく「一緒に作る人」
今回の開発を通して感じたのは、
AIに全部任せるより、人間とAIの役割を分ける方がうまくいく
ということです。
私の場合は、
人間
├─ アイデア
├─ 教育的な目的
├─ 仕様判断
└─ 最終確認
ChatGPT
├─ 設計整理
├─ 問題分析
└─ 作業指示
Codex
├─ コード調査
├─ 実装
└─ テスト
GitHub
├─ 履歴
├─ バックアップ
└─ Release
という役割分担になってきました。
この形は、非常に安心感があります。
次の課題
今後は、ChatGPTで作成したCodex向けの指示を毎回コピーする作業も減らしたいと考えています。
例えば、
ChatGPT Work
↓
CODEX_TASK.md
↓
人間が確認
↓
承認
↓
Codexが実行
という仕組みです。
AIが勝手に進めるのではなく、必ず人間の承認を途中に入れる形にしたいと思っています。
さらに、
- 自動バックアップ
- Release作成
- Documentation検査
- 開発環境復旧
なども少しずつ自動化していく予定です。
おわりに
今回のESP32 Education Editor開発で得られた一番大きな発見は、
AIを使えば、年を重ねてからでも新しいシステム開発に十分挑戦できる
ということでした。
新しい技術をすべて覚えてから始める必要はありません。
自分が長い間培ってきた経験に、AIの力を加えることで、
経験
+
アイデア
+
AI
+
自動化
という新しい開発スタイルが生まれています。
これは、これからシステム開発を始める若い人だけではなく、
かつて開発に携わっていた人が、もう一度ものづくりに戻るための技術でもある
と感じています。
ESP32 Education Editorの開発そのものと同時に、この新しい開発方法についても、今後試していきたいと思います。
ESP32 Education Editor
- GitHub: https://github.com/davinichi/ESP32-Education-Editor
- Web Editor: https://davinichi.github.io/
- Firmware Installer: https://davinichi.github.io/firmware/