もう手放せないChatGPT。導入後の働き方の変化を振り返ってみた

## はじめに

この記事は、[NTTテクノクロス Advent Calendar 2023](https://qiita.com/advent-calendar/2023/ntt-tx)の18日目の記事になります。
こんにちは、NTTテクノクロスのトムです。

普段はWebアプリケーションの設計、実装、テストなどを担当しています。

突然ですが、みなさんChatGPTを使っていますか？
ChatGPTは2022年11月30日に公開され、早くも1歳の誕生日を迎えたようです。

弊社では3か月前に社内専用のChatGPTが導入されました。
それ以降、私はChatGPTを使い始め、その1か月後に気軽にChatGPT Plusに加入して以来、毎日会話するようになりました。
(余談)最近助かったのは、住んでいる地域でどうやって粗大ごみを出したらいいか教えてもらったことです。

せっかくなので、ChatGPTの1周年を記念して、ChatGPT導入前と導入後で私の働き方がどのように変わったかを振り返り、普段どのようにChatGPTを利用しているかを紹介したいと思います。

## 目次

- [ChatGPT導入前の課題と導入後の変化](#chatgpt導入前の課題と導入後の変化)
- [ChatGPTの具体的な利用シーン](#chatgptの具体的な利用シーン)
- [(おまけ)GPT-4の回答例](#おまけGPT-4の回答例)
- [おわりに](#おわりに)

## ChatGPT導入前の課題と導入後の変化

### 導入前の課題

導入前の課題は、情報検索と設計図の作成にかかる時間と労力です。
実際にコードを書く時間よりも調べる時間のほうが長いかもしれません。
インターネットの海では、どの情報が正確か判断するのが難しいです。
また、時間が経つと調べたことも忘れがちで、何度も同じ情報を検索することがよくあります。
さらに、ドキュメントや設計図を一から作成する作業も、多くの時間と労力を必要とします。
これらを整理すると、導入前には以下のような課題がありました。

- **インターネット上で必要な情報がすぐに見つからない**
    - 必要な部分をドキュメントから見つけ出すのが困難
    - 関連する技術記事はあるが、求めている内容と微妙に異なる
- **複数の方法の中から現状に最適な方法を見つけられない**
    - 調査すると多くの方法が見つかるが、どれが最良か判断できない
- **設計で欲しい図を一から作成するのが大変**
    - 例: PlantUMLでシーケンス図を描きたいが、書き方を忘れてしまう
    - 例: Markdown形式で表を作成するのが手間


 ### 導入後の変化

導入後の変化は、導入前に挙げた課題である情報収集と設計図作成にかかる大幅な効率化です。
ChatGPTに質問すると、概要、キーワード、初期案を素早く提案してくれるため、複雑な検索や長時間にわたるドキュメントの読み込みから解放されました。特に技術関連の問題に取り組む際、ChatGPTがいくつかの方向性を示してくれるので、得られた情報を参考に少し調査することで問題解決がすぐにできるようになります。
これまでの課題は以下のように改善されました。

- **ChatGPTとの対話による情報検索の改善**
    - 概要やキーワードを説明してもらう
    - インターネットから関連する記事を提示してもらう
- **ChatGPTから得られる情報を基にした効果的な情報収集**
    - ChatGPTの回答の信頼性を検証するために、関連キーワードで追加検索をする
    - 関連情報の精査と深堀りにより知識を広げる
- **ChatGPTが提示する初期案によって効率的にドキュメントや設計図の作成**
    - ChatGPTにドキュメントや設計図の初期案を素早く作成してもらい、必要に応じて手を加える
    - ChatGPTに添削してもらい、誤字などの細かい箇所を素早く修正してもらう

このように改善して得られた時間で、開発するシステムをより良いものにするための検討時間に費やすことができるようになりました。

## ChatGPTの具体的な利用シーン

ここでは私がChatGPTを業務の中でどのように活用しているかを紹介していきます。
※ここで紹介するChatGPTの回答はGPT-3.5の内容となっています。
- 調査系の業務
    - 要件を満たすためにどんな技術を使うかを調査する
    - ChatGPTに技術的な質問をし、技術選定のための参考情報を得る
- 設計系の業務
    - 要件を整理するためのドキュメントを作成する
    - ChatGPTに設計のアイデアを整理してもらい、図の生成をし、ドキュメントや設計図作成の参考にする
- 実装系の業務
    - プログラミングして、アプリケーションを動かす
    - 詰まったときはChatGPTにアドバイスを求める


### 調査系の業務


:::note warn
**課題**
Azure Pipelinesを使ってCI/CDを実現したいが、Azure Pipelinesがどういうものかわかっていない

:::

:::note info
**ChatGPTへの質問**
Azure Pipelinesの基本概念を詳しく説明してください。また、参考になる公式ドキュメントのページがあれば教えてください。
:::

#### 回答

![パイプラインのChatGPT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328838/9225bad1-3912-b5fc-249e-5cb208c64e9c.png)


#### その後のアクション

この後、貰った情報をもとに公式ドキュメントを読んでみたり、実装例を提示してもらい。使い方の感覚をつかんでいき、システム要件に合わせた実装にします。

### 設計系の業務

:::note warn
**課題**
TODOリストの処理フローをシーケンス図にしたい
:::

:::note info
#### ChatGPTへの質問

ToDoリストのシーケンス図をplantuml形式のコードで出力してほしいです。
登場人物は以下の通りです。
- ブラウザ
- Webサーバ
- データベース
:::

#### 回答

![TODOリストのシーケンス図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328838/007e814a-7093-875c-143e-544d84e9d6b2.png)


#### その後のアクション

ChatGPTにたたき台を生成してもらった後、自分の要件に合わせて図を修正していきます。

### 開発系業務

:::note warn
**課題**
FlaskでRestAPIを開発しているが、なぜかjson内の日本語が文字化けする
:::

:::note info
ChatGPTへの質問

flaskでRestAPIを開発しています。
なぜかjsonの日本語が文字化けします。
解決策を教えてください。
Flaskのバージョンは2.3.3
:::

#### 回答

![flaskのChatGPT.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328838/c1743124-65a9-9f9a-1bee-8b5716531741.png)


#### その後のアクション

ここで、オプション`JSON_AS_ASCII`があることがわかったので公式ドキュメントでオプションの意味を確認します。公式ドキュメントを確認すると自分で使っているFlaskのバージョンでは非推奨となっていることがわかりました。なので、ドキュメントに記載がある今推奨されているやり方で動作確認をしてみます。

## (おまけ)GPT-4の回答例

GPT-4ではブラウジングが可能なので、質問の仕方によっては、インターネット上の最新情報を取得したり、ページのリンクを添付してもらえます。
以下は先ほどのGPT-3.5にした質問をGPT-4にも質問してみたときの回答になります。
※もう少し会話を続けないと違いがあまりわからないかもしれませんが、、、
- [Azure Pipelinesの調査](https://chat.openai.com/share/3e4bc0a4-8f74-4c46-af96-a578a726dc0c)
- [ToDoリストのシーケンス図](https://chat.openai.com/share/d57092f4-989e-4aab-bc4f-cad8adb10cea)
- [Flaskでjsonの日本語が文字化け](https://chat.openai.com/share/e2b2562f-d9a1-4ddc-b154-ead9b09ea331)

## おわりに

今回はChatGPT導入前と導入後で何が変化したかを振り返り、普段どのようにChatGPTを活用しているかを紹介しました。
振り返ってみると、ChatGPTがなかった時は検索やドキュメントの作成が大変だったなと思い出しながら記事を書いていました。
もうChatGPTのサポートなしの生活には戻れません。
今後もChatGPTとの絆をより深めていき、さらに効率的で質の高い業務を目指していきたいと思います。
※どんなに絆が深くなっても、機密情報を教えたりしないように注意していきます。
他にもみなさんの活用方法などがありましたら、コメント欄で共有いただけると嬉しいです。

----
明日は @akinori-oさんの記事です！ぜひお楽しみください！