ほぼ未経験でもChatGPTを使えばプログラムを作れるのか③～プログラミングほぼ未経験者の挑戦～：アルゴリズムー②

今回は『アルゴリズムの設計』の『1.問題の理解と分析』の『2.要件の把握』からスタート
![図1：図7再掲.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/7f64cda9-2111-c570-0907-d62ad1ec5b75.png)
アルゴリズムの設計①図7再掲

もう何も考えずにChatGPTに聞いちゃう。

![図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/a7ff2a0b-28d5-ea54-de79-80298a0d9c6b.png)
図2

なんということでしょお～

要件の把握、3分で完了した！

驚きの速さ！！！

でも意味が分からないのが、拡張性？

![図3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/d61d3c6b-39db-fee8-db4f-5e2541ea3566.png)
図3

ちょっと気を抜くと、こんな小難しい内容で回答してくるよね。
私が悪かったよ、ほんとごめん。

![図4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/5c5e5ced-641d-c7cf-835d-b2099e219e2d.png)
図4

確かにできたら便利って感じだな・・・

5.のシステムの可用性ってなに？

![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/5a051bcd-eee7-6d7e-e05b-920b6e29495e.png)
図5

ユーザーの利便性は欲しいけど、信頼性は・・・
使うのは自分だし重要ではないな。

というわけで無視しよう。

『アルゴリズムの設計』の『1.問題の理解と分析』の『2.要件の把握』完了～

所用時間：15分（記録的快挙！）

良い感じだからこのまま『3.問題の分解』もやってしまおう。そうしよう。

![図6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/bb21236f-2529-1a45-09f6-be8aab3fa425.png)
図6

もうちょい具体的に教えてくれないと困るわ。

![図7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/f2db3c48-3637-69d7-b06e-8835e5208e35.png)
図7

う～ん・・・
ちょいちょいいらない機能が入ってくる。
そこは私が修正するしかないのか？

1.の『スカウト送信の機能』は媒体ごとに送信しているのでいらないな。

代わりにどんな機能が必要？
送信数って必要だったりする？

![図8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/a4a3a3a0-7f12-82cc-6bff-65e34cf82f14.png)
図8

スカウトの送信回数？私の意図と違う回答が返ってきてしまったな。

1対象者に対する送信回数ではなく、期間内のスカウト総送信数が必要なのか知りたいんだけどな。

![図9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/69d29ad9-0a9e-0e71-a307-9657333724f9.png)
図9

今度は成功！
正しい回答を貰うための聞き方がなかなか難しい。

![図10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/30ae7ffe-0858-f636-af8c-7fa5b44ce631.png)
図10

これで図6の『2.具体的な機能やタスクを洗い出す』までは出来た気がする。

『3.タスクや機能を優先順位付けする』は？

![図11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/329cb439-8d7e-12a0-1481-4e59bd0d6c93.png)
図11

とりあえず、正常に動くプログラムを作ることが目標なので、3.の利便性や4.の追加の機能や拡張性は優先順位は低めでOK。4.の追加の機能や拡張性なんてなくても良し。

次の『4.タスクや機能をさらに分解する』は？

![図12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/60d65a32-a91c-7578-e343-dcde908a4d93.png)
図12

ChatGPTはどうしてもこのプログラムを通じてスカウトを送信したいみたい・・・

![図13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/1fdc8a70-f0a7-8cf2-a692-9279ef8b344e.png)
図13

かなりしっかりどんな状況かを言わないと、求める答えは教えてくれない。
ニュアンスは通じないんだなぁ

でも『4.タスクや機能をさらに分解する』は完了

『5.必要なデータやリソースを洗い出す』は？

![図14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/361694c0-fa71-3a6a-74be-993aafcdc0ca.png)
図14

1.のスカウトデータの送信候補者の情報は削除。そこまで入力できる時間がない
データの管理はスプレッドシートで行うこととする。

3.のデータベースまたはスプレッドシートの中のデータのクエリとは何？

![図15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/8bcc0564-7f7f-a381-100a-a68ac376bdac.png)
図15

たぶん情報を取り出すために必要な動作ってこと・・・よね？

4.の分析ツールやライブラリは何なのかな・・・？

![図16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2500101/1f2060ff-e128-349d-199e-5a14420aeb8d.png)
図16

見て震えたわ・・・
こんなにいろいろな物を使わないといけないってことなのよね・・・

あんまり考えるのやめよ。
いつか分かる日がくるさ。

最後に6.の『エラー障害への対処策を考える』は、
システムに障害が起こった場合は対応しない。

 **その時点でこのプログラムはお払い箱だよっ！**
 

というわけで『3.問題の分解』は完了◎

所用時間：3時間（ChatGPTと格闘したため）