失敗ケースから学ぶ！ChatGPTとの上手な付き合い方

# はじめに
- この記事では、ChatGPTを業務において使用することで実際に発生した失敗ケースから得られた教訓とその改善案について紹介します。
- 具体的な人物や製品の特定を防ぐため、一部フェイクを入れています。


# 登場人物
べ: 筆者のこと。新卒で入社したAくんのOJTトレーナーを務めており、色々教えたり作業の指示を出すこともままある。
Aくん: 新卒入社し超ピュアピュアな状態。情報系卒ではないことを少し負い目に感じているからか、配属時からChatGPTを使用している。

# 結論

1. 「なにをすればいい？」とChatGPTに聞くのをやめよう
1. いきなりChatGPTに聞くのではなくまずは自力で調べてみよう
1. コーディング等の短縮できそうな手作業はAIに任せてみよう
1. わからないことは罪ではない
1. ChatGPTを用いることは悪いことではない


# 結論に至るまでの事例紹介

## 事例1: mariadbを導入するはずがmysql8系を導入してしまう
べ「今回の作業ではmariadbを導入してデータをリストアしてほしい！」
べ「事前に自分がdumpファイルを用意しておいたから、手順書通りにmariadbを導入して、リストアしてほしいな。コマンド一式は手順書に書いてあるからよく読んで実行してほしい！」
Aくん「わかりました！終わったら報告します！」
〜しばらくして〜
Aくん「すいません、ここの手順なんですが、なぜか失敗するようです...」
べ「ん？なんでや？」
(一応と思い、mysqlのバージョンを確認するとmysql8系が導入されていた)
べ「うーんまずいな。この手順書、mariadbを導入している前提で作ってたからコケるやろな。」
Aくん「これはダメでしたか・・・？」
べ「どっちかというとダメだね。申し訳ないけどやり直し！」


## 事例2: rm -rf /var/lib/pgsql/xx/data/* をしてしまう
べ「今日は、**あらかじめ用意した**システムのpostgreSQLに、このデータを突っ込んでほしいけど大丈夫？検証環境だからあまり気負わず、この手順書通りにやればできると思うんだ」
Aくん「わかりました！」
〜しばらくして〜
べ「ん？なんかシステムが吹っ飛んでない？何してるんだろう」
(ログを確認したら以下が表示されていた)
```
$ /usr/pgsql-xx/bin/postgresql-xx-setup initdb
Data Directory is not empty!!!
$ rm -rf /var/lib/pgsql/xx/data/*
$ /usr/pgsql-xx/bin/postgresql-xx-setup initdb
Initializing database ... OK
```
ベ「ま、迷いが無さすぎる・・・Aくん、ちょっとストップ！システムのデータ吹っ飛んでる！」

- - -

# 事例1,2をふりかえり
 
## 主なやりとり
べ「事例1なんだけど、そもそもなんでmysql8系が入ってしまった？」
Aくん「えっと、yumでmariadbを入れようとした時にエラーが出てしまったんです。それで、**ChatGPTにエラー文とその対処を聞いたらこういうコマンドに直して導入するといいよ**って返ってきて実行した形です」
べ「なるほど。それでとりあえずmariadbというかmysqlを導入するという目的は達成できたから問題はないって考えちゃったのか」
Aくん「そんな感じです...」
べ「一応、何のどのバージョンを入れるか大体決めているから、万一**変更が生じる場合とかあったらコマンドを実行する前に報告がほしい**な...」
べ「そして事例2だけど、ごめん。この手順書、初回インストールを前提にした物だったからinitdbをすると確かに`Data Directory is not empty!!!`って表示が出るね。追記不足で申し訳ない。」
べ「とはいえ、なんでこんな危険なコマンドを実行しちゃったの？」
Aくん「`initdb`の時点でディレクトリが空じゃないことは出力から分かったのですが、その後どうすればいいのかわからなくなってしまい、ChatGPTにこの出力と対処を聞いてみたんです。そうしたら、`rm -rf`してから`initdb`するといいよって返ってきてそのまま実行した形です」
べ「マジか。それはまあいいとして、`rm -rf ...`なんて危険なコマンドを確認もなしに実行した？」
A「すいません...こんなことになると思ってなくて...」

# 詳しくヒアリングしてわかったこと
## (1) ChatGPTから返ってきた出力の意味もわからず実行していた
- 基礎的なUNIXコマンドについては配属後に教えていたが、それがあまり身についていないことが分かった。
- その結果、`rm -rf`コマンドを実行することによって期待される結果が想定できず、事例2のような事象が発生した
## (2) 「問題を解決すること」しか気にしなくなった
- Aくん本人にかかっているであろうプレッシャーや焦りが原因で、わからないことがあると真っ先にChatGPTに聞いてしまうという癖がついていた
- 実際、今までそれでなんとかなっていたからか、「とりあえずChatGPTに投げる」という習慣ができてしまった
- そのため、他人に聞くという習慣も無くなりかけた
- 結果、ChatGPTに頼ればなんとかなるという先入観が出てしまい、自力で調べる習慣が身に付かず、結果的に**業務を通して学習する機会が失われてしまった**
## (3) (べ視点で)Aくんのスキルレベルを見誤っていた
- ネガティブな話題になるが、`Aくん本来のスキルレベル`として考えていたものが実際は`ChatGPT + Aくんのスキルレベル`ということが明らかになった
- 今までも同レベルのタスクをお願いしていたので今回もできるだろうという先入観があった

# ヒアリング結果を受けて取り決めたこと
結論の繰り返しになるが、両者間で以下の心構えを持ってChatGPTを使うとよいと取り決めた。

1. 「なにをすればいい？」とChatGPTに聞くのをやめよう
-> 手詰まりが発生した時に相談しなければならない先はAIではなく先輩や上長
1. いきなりChatGPTに聞くのではなくまずは自力で調べてみよう
-> 課題の解決にしか興味がなくなってしまい、結果的に学習の機会が失われてしまったため
1. コーディング等の短縮できそうな手作業は積極的にAIに任せてみよう
-> ただし、情報のマスキングを行うこと
1. わからないことは罪ではない
-> なので遠慮なく他人を捕まえて聞いてほしい
1. ChatGPTを用いることは悪いことではない
-> でも1~4を意識して上手なお付き合い方をしよう


# まとめ
ChatGPTを用いると、大体のことはサクッと解決してしまいある種の全能感を得られる気持ちは自分もそうなのでとてもわかります。
業務上でChatGPTを使用することは決して悪いことではないですが、使い方によってプラスにもマイナスにも働きます。
今回はマイナスに働いてしまった事例と、そこからどう反省し次に活かしていくかを紹介しました。
筆者と同じ立場の方や新卒・初学者の方、部下を複数抱えている方などの参考になれば幸いです。
それでは皆様、よきChatGPTライフを！

# 最後に
Q.これって当たり前じゃないの？
A.そう思っているあなた！おそらく高いITリテラシーとスキルを兼ね備えていると思います。しかし、世の中全員がそうではないため、トレーナーや上長は必要に応じて親切丁寧にこういったことを教えていく必要があるのだと今回感じました。