こんにちは、藤田です。
 
今回もメルマガをお届けします。

ChatGPTで実際にプログラム開発して感じたこと

自分好みの処理が作れる

これまで、このメルマガでは何度もChatGPTについてお伝えしていますが、今回は実際に行ったプログラム開発について、その作業を具体的にどんな感じで進めたかをお伝えしたいと思います。

今回行ったのは小規模な仕組みの開発なのですが、それでも、どれぐらいChatGPTを使うことが有益であるかをご理解いただけると思います。

そして、あなたのビジネスでの活用のヒントになるかもしれません。

作ろうとした仕組みというのは、ECサイトのファイルとデータベースのバックアップです。

ちなみに、バックアップ機能であればレンタルサーバーの管理機能として装備されていることがほとんどです。

そのため、わざわざ面倒をかけて自前で作るまでもありません。

ただ、少し便利な機能が欲しくなると、こういった標準装備の機能では細かいところには手が届いてないケースが多々あります。

例えば、バックアップしたデータを別のサーバーに転送して、さらに世代管理したいと、なると自作するしかありません。

今回は、ここまでの機能を実現するための仕組み作りをChatGPTさんの助けを借りてやってみました。

躊躇なく方針を変えられる強み

まず、使うプログラミング言語なのですが、サーバーサイドでよく使うスクリプト言語としてシェルスクリプトを使うことを考えました。

ところが、実際に作り初めてからわかったのですが、レンタルサーバー側の機能制限などもあり、思ったような機能が作れません。

そこで、Pythonという言語を使えば実現することがわかりましたのでこちらを採用しました。

この時点で、すでに特筆すべきことが2つあります。

それは、まず、私がどちらの言語についても開発経験がないということです。

平たく言えば、知らないプログラミング言語だということです。

ChatGPTとやり取りしながら知らない言語を使って作業する中で、シェルスクリプトでは難しいがPythonなら作れるということが理解できたということです。

次に、一度シェルスクリプトで途中まで開発していたのに、それを躊躇なくPythonに切り換えることができたということです。

実際に人間が手を動かし頭を使って開発をした場合は、ここまで躊躇なく行動することはできません。

なぜなら、それまでの労力をすべて捨てて、最初からやり直すと言うことが感情的にむずかしいからです。

いわゆる、サンクコスト(埋没費用)バイアスによって、合理的な判断ができなくなるからです。

ところが、ChatGPTを使って開発をしている場合は、ほとんど苦労をせずにプログラミング作業を行っているため、サンクコストを感じにくいのです。

しかも、やり直しも一瞬でできるので躊躇もありません。

例えば、ChatGPTにそれまでシェルスクリプトで作ったものを「Pythonで作り直して」と依頼するだけだからです。

欲しい結果を得るまでの時間差が歴然

具体的なプログラムの中身は、①あるフォルダ以下のファイルをすべて圧縮ファイルにする②データベースをダンプコマンドでファイルにする③これらのファイルをFTPを使って別サーバーに転送し、その際に3世代管理をするというものです。

①と②については、実際にはプログラミングという程でもないので、ChatGPTがなくてもググれば簡単にやり方(コマンド)が見つかります。

ググった場合とChatGPTを使った場合にかかる時間や労力の差は、さほど大きくありません。(もちろん、それでも最終結果を得るまでの楽さの違いは歴然です。)

問題となる処理は、FTPでつないで、その上世代管理をする部分でした。

特に、3世代管理については、アルゴリズムを考えるところから始める必要があり、ググっても一発でどんぴしゃの答えが見つかることはありません。

しかも、世代管理をコマンドラインやプログラミング言語で実現するのではなく、ftpコマンドでやるとなると、更に情報収集のハードルが上がります。

言い換えれば、ネット上には確実に情報はあっても、その情報にたどり着くまでに検索を駆使する必要があるということです。

ところが、これをChatGPTやらせると一発で終わってしまうのです。

この作業については、時間と労力の差がものすごく大きかったです。

そして、ここからもすごいのですが、全体的にプログラムを作った後に、再度作ったプログラム(正確には作ってもらったプログラム)をChatGPTに全体的に見直してもらえるのです。

その際に、セキュリティ面での改善も依頼しました。

そして、回答してもらった改善提案をそのまま反映するようにコーディングしなおしてくれるように依頼しました。

ここまでやればほぼ完璧です。

人が嫌がる作業が得意

そして、最後に作った処理を2つの処理を分けてもらいました。

分けた理由は、ファイル圧縮バックアップとデータベースのバックアップは、実施する頻度を変えた方がいいと判断したためです。

そのため、スクリプトとしては2種類必要になります。

これもChatGPTを使えば「2つに分けて」と依頼するだけです。

ただ、実際に人がこの作業をやろうとすると、変数の過不足などに注意して作業をするため結構な集中力が必要です。

こういった作業は、ほとんどのプログラマーは嫌います。もちろん、私も大嫌いです。

ところが、こういった作業は、ChatGPTにとっては得意中の得意な作業なのです。

少なくとも5倍の生産性

以上が、今回ChatGPTさんに手伝ってもらって作った仕組みです。

ちなみに、これだけの処理を作ろうとしたら、従来のやり方ならどれぐらいかかると思いますか?

もちろん、その人のプログラミングスキルに依りますが、私なら作業を始めて2、3日があっという間に過ぎて、下手をすれば1週間とかかかったと思います。

しかも、朝から晩まで、ほぼこの作業に没頭した上での話です。

ところが、今回はかかった日数は2日で、しかもそれぞれ数時間ずつぐらいしか時間をかけていません。

多く見積もっても6時間ぐらいです。

しかも、手作業ではほぼ確実に見送るであろう作業であった、よりシステムを安全にしたり、処理を複数に分けたりという作業もやっています。

これまでのような人手で手法で開発をした場合は、当初の目的を達する開発が終わると、精根尽き果てていましたが、今回は余裕でそういった作業ができたのです。

ところで、今回の開発は、ChatGPTを使うことによってどれぐらい生産性が上がったのでしょうか?

もちろん、開発する人が普段使っているプログラム言語を使った場合にどうなるかです。

今回使った言語であるPythonは、私が知らない言語ですが、それでも私は素人ではないので肌感覚でなんとなくの数字はわかります。

恐らく10倍という数字は大袈裟でない数字です。

話半分にしても5倍です。

少なく見積もって、控えめに考えてもこれまでの開発効率の5倍は下らないのです。

この数字を聞いてピンと来ない人はいないでしょう。

どう考えても、システム開発、プログラム開発のコスト面での常識が根底から変わりました。

それと、今回久しぶりに老体にむち打って開発をやって感じたのが、疲れ方が違うということです。

もともとプログラミングというのは若い人がやる仕事と言われるぐらい、すごく体力を使う作業なのです。

それを私の様なシニアがやっても疲れないどころか、楽しいとさえ思える感覚で作業ができたのです。

何が楽しいかって、生成AIが相手だと、指示を出したらそれに応えて仕事してくれるんです。

しかも、早い、正確、安い、文句も言わない、24時間いつでもOKなのです。