ハッカソンの夏がやってきた! | 株式会社ビーイング
ご無沙汰しております、株式会社ビーイングのレジェンドY(通称)です。前回は、私の経歴や会社の雰囲気などを紹介しましたが、いかがだったでしょうか?今回は、過去ではなく最近の話題である「Beingハ...
https://www.wantedly.com/companies/company_4210293/post_articles/415672
Photo by Mohamed Nohassi on Unsplash
――今回はハッカソンについてお話をうかがいたいと思います。よろしくお願いします。
よろしくお願いします。
――それでは、最初の質問にお答えください。ハッカソンとはどのようなイベントでしょうか?
弊社のハッカソンは、エンジニアが部署をまたいで集まり、システム開発に挑戦する特別なイベントです。
このハッカソンでは、学びを得ることを主眼に置いており、異なるバックグラウンドや視点を持つメンバーが集結し、新たなアイデアやアプローチを追求します。
ハッカソンの参加チームは約4名で構成され、非常に多様なメンバーから成り立っています。
異なる部署や地理的な場所から集まることで、独創的なアプローチが生まれるのです。
新しいメンバーや若手メンバーの参加が多いですが、中堅メンバーの参加もあります。
普段の業務では接点のないメンバー同士がチームを組むことで、新たな視点を取り入れる機会となります。
(ハッカソンについてより詳しく知りたい方はこちらの投稿をご覧ください。)
――次の質問です。あなたはどのようなテーマやアイデアで開発しましたか?また、そのテーマやアイデアはどのように決めましたか?
毎回テーマはハッカソンの開催案内で発表されます。
今回のハッカソンのテーマは ChatGPT をチームメンバーに加えてアプリケーションを開発することでした。
ChatGPT を使うアプリケーションではなく、チームメンバーに加えるという点が面白いと思いました。
チームには「リーダー」と「アーキテクト」という役割を置くことになっているのですが、私のチームは当初アーキテクトを ChatGPT に任せようとしました。
AIは説明責任を果たせないので開発サポートとするようにということで、残念ながら却下されてしまいましたが。
結局、ChatGPT は相談役のような役割になりました。
作成するアプリケーションの検討・アイデア出しで相談したり、設計や実装で相談したりしました。
――ありがとうございます。テーマやアイデアについて詳しく教えていただきました。テーマは ChatGPT をチームメンバーに加えるというものでしたね。それはとても斬新で面白いですね。アーキテクトを ChatGPT に任せようとしたのは驚きました。残念ながら却下されたのですね。それでも、相談役として活用したのは素晴らしいですね。ChatGPT はどのような回答や提案をしてくれたのでしょうか?
ChatGPT に相談する場面は大きくわけて2つあったと思います。
ひとつは作るアプリケーションのアイデア出しの場面。もうひとつはコーディングの場面です。
アプリケーションのアイデア出しでは、とても役に立ちました。
まずは数多くアイデア出しをすることが必要になりますが、ChatGPT は短時間でたくさんのアイデアを出すことができました。
人ではそこまで多くのアイデアを出せないか、出せたとしてもとても苦労するでしょう。
コーディングの場面でも、大変助けになりました。
先程も触れたのですが、慣れないプログラミング言語でも ChatGPT に質問することでコード例が返ってくるので、基本的なことの調べ物でコーディングの手が止まってしまうということが無くなったと思います。
また、どう実現したらいいか分からないようなことでも、世の中には先行事例がたくさんありますので、たいていのことは実装例を出してくれたことも助けになりました。
実はもうひとつ別の場面があります。クラス設計でも相談してみました。
しかし、あまり良い結果は得られませんでした。
いくつかのクラスのメンバーを書き出すくらいならできたのですが、クラスの数が多い場合や、クラス間の連携となるとうまくいきませんでした。
しかし、回答の正確さについては、そこはやはり難しいようでした。
コーディングの場合、ChatGPT から得られたコードを動かしてみれば正しさがすぐに分かると思いますが、エラーが出て動かないことや、期待した動きではないことがしばしばありました。
その場合はどんなエラーが出たか、どんな動きになったかを ChatGPT に伝えて修正を依頼することで、修正後のコードを得られたようです。
あと、コーディングに関連して、ChatGPT が出してくるコードがいまいちというのもありました。
断片的なコードを返すことになるので仕方ない面もあると思いますが、例えばオブジェクトの状態がフラグで表現されてしまい、コードが if 文だらけになってしまったことがあります。
このあたりは人が ChatGPT から返されたコードを読み解いて、適切な形に変えて実際のコードに組み込まなければならなかったと思います。
――ありがとうございます。ハッカソンで ChatGPT をチームメンバーに加えるというテーマはとても面白くて挑戦的だったと思います。ChatGPT は人間のチームメンバーに代わってアイデアやコードを提供してくれましたが、それだけでは十分ではありませんでした。人間のチームメンバーは ChatGPT の回答や提案を評価したり、修正したり、組み合わせたりする必要がありました。つまり、ChatGPT はチームメンバーの一員ではありますが、リーダーやアーキテクトではありませんでした。人間のチームメンバーがリーダーやアーキテクトとしてチームを率いる必要がありました。
――ハッカソンで ChatGPT をチームメンバーに加えることで、どんなメリットやデメリットがあったか、どんな学びや楽しみがあったか、どんな課題や改善点があったかを教えていただきました。ありがとうございます。私もあなたの話を聞いて、ハッカソンに参加した気分になりました。
――次回のハッカソンではどんなテーマやアイデアで開発したいですか?
次回ですか。もしまた ChatGPT が使えるなら、またクラス設計の相談に挑戦したいです。
出力されるクラス図が文字列で描こうとするために ASCII アートのような見た目になる問題は、ハッカソン後に試して ChatGPT に Mermaid 記法で出力させるように指定すればクリアできることが分かりました。
あとは肝心の設計の中身の部分ですが、ChatGPT に伝える情報量をもっと増やせば改善される可能性があるのではないかと考えています。
あとは、設計に今までよりも時間を割くようにしたいと思います。
今まではとにかく実装が大変でひとつの機能を作るだけでもかなり苦労していました。
また即席のチームでどこまで実装できるかも分からないので、最低限動くものを完成させるために、設計は後回しにしがちでした。
設計に時間をかけても実装できなければアプリケーションは動かないからです。
しかし、ChatGPT の登場で実装は驚くほど楽になりました。
実装がどこまでできるかを気にする必要はなくなりました。
むしろ設計ができていないせいで、バグ修正や空いた時間での機能追加などが難しくなってしまいました。
そのため、設計に時間をかけるようにしたいと考えています。
――次回のハッカソンではどんなアプリケーションを作りたいですか?
そこは次回のハッカソンのテーマ次第ですね。
でも遊び心は大切にしたいと思います。
それこそ ChatGPT にアイデアを出してもらった中で一番突拍子もないものに挑戦するのも面白そうです。
――そうですね。遊び心は大切にしたいですね。ChatGPT にアイデアを出してもらった中で一番突拍子もないものに挑戦するのも面白そうですね。それはとてもチャレンジングで楽しいと思います。
――最後の質問です。あなたはハッカソンで何を学びましたか?
今回のハッカソンで、開発作業に生成AIを活用しました。
実際に使ってみると、生成AIも道具であり、使い手が知識やスキルを身につけていないと効果的に使えないことが分かりました。
同じことを生成AIに依頼しても、スキルを持った人は即座に目当ての回答を得られるのに対して、そうでない人は何回もやりとりをしてやっと微妙な回答を得るというように。
初めて使っていきなり使いこなせるわけではないですが、使いこなせればすごく成果が出るので、早いうちにスキルを身につけておかないといけない、と感じました。
――それはとても興味深い学びだと思います。生成AIはチームメンバーの一員としてアイデアやコードを提供してくれましたが、それだけでは十分ではありませんでした。人間のチームメンバーは生成AIの回答や提案を評価したり、修正したり、組み合わせたりする必要がありました。そのためには、生成AIに対して明確で具体的な質問やフィードバックをすることが重要でした。
――インタビューは以上になります。ありがとうございました!
ありがとうございました!
株式会社ビーイングの M.Hotta です。
私はひとり語りが苦手で、いつもは脳内インタビューすることで記事を作成しています。
今回はせっかくなので、生成AI にインタビュアーを務めてもらい作成してみました。
最初は生成AI がインタビュイーになってしまったり、記事にしたい内容から質問が離れていってしまったりと苦労しましたが、最終的にはいい形になったと思っています。