ChatGPTが誕生した今、コードを書けない(書かない)という言い訳は通用しない世の中になったと思う
「ググれば分かる」から、「聞けば分かる」になったコーディングのお仕事
最初に結論を書きます。
そもそもググれば(ほとんどのことは)なんでもわかる世の中。
エンジニアである私にとっても、ChatGPTの誕生によって
コーディングに対する難しさもかなり下がったと思わされました。
今まではエンジニアだから、ビジネス側の人間だから、別領域の専門に対して
ギリギリ「専門じゃないからできない」という言葉が通用したと思いますが、これからどんどんそんな言い訳は出来なくなるでしょう。
エンジニアじゃないからコードを書かないとか、
逆にエンジニアだからコードだけ書いておけばよくてビジネスについては疎いとか、そういう線引きはもうナンセンスです。
こういう世の中になった以上、個人としては横断的にいろいろやった方が絶対にいいし、やれる世の中だよね、ということについてこれから長々と書いてみたいと思います。
ChatGPTをエンジニアはどう活用できるか
ChatGPTが世の中に出てきて半年くらい?たつのかと思いますが、
プログラマーにとっても非常に強力なツールであることは間違いないでしょう。
ChatGPTの出現によっていろいろな仕事が奪われるのではないか、と何度も耳にしますよね。
プログラマー、ソフトウェアエンジニアなどいろいろ呼び方はあると思いますが、それらの職種もChatGPTが与える影響はとても大きいと考えています。
さらに、これらの技術がさらに加速していろんな仕事をリプレイスしていくことは、エンジニアとしてAIを触る上で肌身を感じてわかります。
今回は、エンジニアについてもChatGPTによってリプレイスされることが起きるだろうか?という質問についてエンジニアとして率直に書いてみます。
答えを先に書くと、完全にリプレイスされることはないものの、サポートとしては非常に優秀であり、
よりコーディングをすることへのハードルは下がった、と考えます。
活用の具体例について知るために、エンジニアの仕事の仕方について説明
私自身の、個人開発でアプリを作るときの、最近のChatGPTの活用の仕方について例を挙げてみます。
作りたいアプリが頭の中にあり、そのうちの機能を追加したいというシナリオだったとします。
このとき、何かわからないことがあればエンジニアはすぐにググります。
解決策は無数にネット上に転がっているからです。
この時、エンジニアのググったときの末路として、ある程度パターン化することができます。
解決したいことと同じことをやっている(95パーセント以上同じとか、そのくらいの感覚値)記事がすぐにみつかるとき
非常にラッキーなケースです、コピペをするもしくは数行変えるだけで実装できます
そしてその実装が問題なく動けばとてもハッピーな気持ちになります
もしエラーを吐けば、そのエラー内容によって次のアクションを決めます。
エラーが解決が簡単そうな場合、そのエラーを解決するためにググります。
エラーが解決困難そうな場合、そもそもコピペしたコードとは違う実装はないかを探すステップに戻ります。
解決したいこととおおむね同じことをしている(80パーセントくらいの一致度な感覚値)記事がすぐ見つかる時
自分でカスタマイズする必要はもちろんありますが、精神的には楽なパターンです。ミッシングピースを埋めるためにさらにググるか、自分である程度補完しながら実装していきます。
解決したいことと近い記事が見つからない、もしくは非常に古い記事しか見つからない時
このときの判断は経験やスキルも大きく絡み、難しい判断になります。
どうしてもその機能を使わなければならなかったり、その実装が自分の製品のコアなところであれば避けれないでしょうから、なんとか自分で大部分を書けないか考察することになります。
その機能の代替手段を使う方が良いと思われる場合は、その代替手段でもっと楽に実装できないか考える方にシフトする方がいいことが多いです。一旦代替手段で実装してみて、もしそこに不満があるようだったらNice to Have的な感じで後で戻ってくるほうがおそらくより良い選択肢であると考えています。
ChatGPTを使うと楽になるエンジニアの仕事
ChatGPTを使って開発(GoogleChromeのプラグインを使うとググった結果の横にChatGPTの回答を表示してくれるので便利ですね。)
を1ヶ月くらいやってみて、自分のググるという行動の三分の一くらいはChatGPTでリプレイスされたと感じます。
ChatGPTの解答が、パターン1のような、
まさに欲しい実装例について吐き出してくれることである確率は低くないとわかりました。
2〜3割くらいの確率でChatGPTの出してくれたコードをほぼ変えずにコピペすれば解決することがあります。
また、そのコードにエラーがあったり、少しだけ自分の欲しいものと違う時は、重ねて
このようにして?とお願いすることで所望のサンプルコードが手に入ることも多いです。
何回か質問することで所望の結果が得られる確率は3〜4割くらいあるという感覚を持っています。
さらに、この3、4割のうち半分くらいの回答は、Googleで検索してうまく解決できなかったものを解決していることもありました。
うわーこれ解決策わからん、ググってもよくわからん、
と思っていたことを、ChatGPTがサクッと解決してくれたことが2週間くらいで3回ほどありました。
たった3回、と思われたかもしれませんが、これらのエラーについてはググって簡単に見つからず、どうしようかと悩んでいた部分を解決してくれたものだったので、非常にインパクトが大きかったです。
エンジニアであれば、いろいろ調べてもわからなくて数時間なやんでいたエラーを先輩エンジニアが数分で解決してくれた、
みたいな経験があると思いますが、まさにそのような体験でした。
3回それが起きたことで、確実に作業時間を10時間くらい短縮してくれたと思います。
完全にエンジニアがリプレイスされることはまだありえない
ここまででは、ChatGPTがエンジニアに非常に良い影響を与えてくれたということを書いてきましたが、
エンジニアが完全にリプレイスされることはまだまず持ってあり得ないと考えます。
なぜなら、
当たり前だが、サービスを作るときのアイディアの起点は(今のところまだ)人間であるから
ChatGPTのプロンプトに、作りたいサービスやUIについて細部を伝えることが難しいために、補助的な使い方をするのに用途が止まるから
です。
ただ、重ね重ねになりますが、
自分がある程度経験のあるエンジニアであるときに、サポートとしてChatGPTを使うことは非常に有益でした。
もう「コーディングできない」は通用しない
さて、ChatGPTを使って思ったことはもう一つあります。
それは、アイディアがあるが、コードを全く書かないから検証にお金がかかるとか、
そういう言い訳はもう通用しなくなるだろうということです。
私は「エンジニア至上主義」のような考え方を持っているわけではなく、
むしろアイディアを考えることやビジネスモデルを作ったり、マーケティングの難しさなど、個人開発を通じて痛感してきました。
それらを踏まえた上で、自分がエンジニアとして仕事をすることに意義を感じることは変わっていません。
エンジニアリングを通してアイディアを具現化することが出来なければ、そもそもお客さんにプロトタイプを使ってもらうことはできません。
また、エンジニアリングの価値は作るという行為だけであるかというとそうではありません。
実際に作る過程でアイディアがブラッシュアップされたり、より使いやすいものになっていくようなボトムアップ的な利点も大いにあると思うからです。
コーディングについて、私はプログラマーじゃないから、、と全くタッチしようとしない人がいますが、コードを書いて何かのプロトタイプを作るという行為自体のハードルはもうそこまで高くありません。
ググったりするばいくらでもコードは転がっていますし、ChatGPTは対話的にアドバイスをくれることで、コーディングのハードルを大きく下げてくれました。
ChatGPTが出てくる前であっても、正直自分自身がやっている開発については、
ググれば誰でもできるし、自分の価値ってどこにあるんだろうとすでに悩んだこともあります。
言いたいことは、エンジニアとして働いている人が実際に、いろいろな技術の進化により自分の価値を疑うほど、コーディングは楽になっているということです。
私は専門ではないから、という言い訳はより通用しにくくなったなと感じています。
コーディングをせずともNoCodeを使ったり、いろいろなツールを使うことで自分のアイディアをプロトタイピングをすることもできるようになりました。
これらのノーコードではカスタマイズに弱かったり、どうしてもコーディングが必要なこともあるにはありました。
ChatGPTを使えば、自分が大まかなコーディングの知識があれば、これらのサービスを使いつつ、コーディングの細部はプロンプトを通して書いてもらい、簡単なサービスを組むことも可能でしょう。
そういう意味で、もうコーディングが全くできない(専門外だから丸投げする)という言い訳はやめた方がいいと思います。
逆にエンジニアしかできない(やらない)も通用しない
ChatGPTが簡単にしてくれたのはコーディングだけではありません。
マーケティングについて調査したり、ビジネスアイディアについて調査したりすることは非常に簡単になっています。いわゆるコンサルの調査みたいなところはリプレイス可能な部分が大きいです。人間がやるところはもう資料に見やすくまとめてパワポを作るところくらいでしょう。
したがって、自分はエンジニアであるから技術のことにフォーカスして、他のことにはタッチしないというスタンスももう通用しないと思います。
エンジニアであるからとか、ビジネス側だからとか、線引きを明確にすることは、会社での「役割」としての意味では大事だと考えます。
しかし、個人としての「スタンス」として線引きしてしまうのはとても勿体無いと感じます。
自分はそこはいろんなAIやツールを駆使して、横断的にやっていきたいということ考えています。
とりとめのない文章になりましたが、そんな自分の意気込みを書いたところで、終わりにしたいと思います。
今回はこの辺で。
kenmaro
この記事が気に入ったらサポートをしてみませんか?