バイセル Tech Blog

バイセル Tech Blogは株式会社BuySell Technologiesのエンジニア達が知見・発見を共有する技術ブログです。

バイセル Tech Blog

AIでラクにするテックチームのための勉強会設計術

はじめに

私は新卒3年目の沖縄出身エンジニアの儀間です。現在は稼働中の在庫管理システム「AXIS」から新システム「Cosmos Stock」への切り替えプロジェクトに携わり、日々開発に取り組んでいます。

バイセルでは実務に直結する学びを得るため、業務時間の一部を利用して輪読会や勉強会を積極的に行っています。

「輪読会をやってみたけど、結局"読んで終わり"になってしまった…」

このような経験を持つエンジニアの方は少なくないのではないでしょうか。せっかく本を読む時間を確保したにもかかわらず、実際の業務や開発に活かされないまま終わってしまうのはもったいないです。

本記事では、バックエンド(BE)のコードの知識がないメンバーも含めて、全員が実務に活かせる形でドメイン駆動設計(DDD)を学ぶための輪読会・勉強会の設計と、AIを活用した主催者の負担軽減の工夫について、私自身の実体験をもとに詳しくご紹介します。

現状と課題

私たちのチームでは「ドメイン駆動設計をはじめよう」という書籍を使い、週2回、30分ずつ各章ごとに勉強会を実施してきました。最初はもくもくと読書する会としてスタートし、各自が自分のペースで本を読み進めていました。しかし、メンバーが全ての章を読み終えるタイミングで「せっかくなら読んだ内容をチームで共有し、実務に活かせる形で理解を深めたい」という声が上がり、読書会の後に勉強会を実施する流れになりました。

しかし、実施前と実施中にそれぞれ課題が発生しました。

勉強会の実施前に発生した課題

まず、勉強会の準備にかかる負担が非常に大きいという問題がありました。毎回資料を作成したり、ディスカッションテーマを考えたりするのは、想像以上に時間と労力がかかります。私は新卒1年目の時に同期と勉強会を実施していたのですが、その際は担当が持ち回りでした。しかし、各自がかけられる時間や勉強会へのモチベーションの差によって、内容の質にばらつきが出てしまうことが多々ありました。

また、主催者が1人で準備を担う場合、モチベーションの維持や各回で出てきた反省点の修正がしやすい反面、準備の時間が1人に集中してしまい、負担が大きくなってしまいます。特に業務が忙しい時期や他のタスクと重なると、勉強会の準備が後回しになりがちで、継続的な運営が難しくなることもあります。

勉強会を実施する中で発生した課題

私たちStockチームは基本的にバックエンド(BE)とフロントエンド(FE)で開発を分担しており、それぞれのコードの知識にはどうしても偏りが生じます。StockはBEがGoで実装されているのですが、BEのコードをベースにディスカッションを進めると、FEメンバーが置いてけぼりになってしまうという問題がありました。

また、ドメイン駆動設計という題材の性質上、実務とリンクさせて話すためにはBEのコードと紐づけて議論することが避けられません。結果として、BEメンバー中心のディスカッションになり、FEメンバーが受け身になってしまう場面が多く見られました。

課題解決のアプローチ

こうした課題を解決するために、私はAIの積極的な活用とチームへの相談というアプローチを取りました。

AIを活用した資料作成

まず、勉強会の準備負担を軽減するために、各章の要約や解説をAIに依頼することから始めました。自分で本を読み進める中で、重要だと感じた箇所のみを箇条書きで書き起こし、それをAIに要約してもらいました。

ただ情報を渡して要約してもらうのではなく、「ドメイン駆動設計の内容を要約してほしい」といった文脈をプロンプトに含めることで、渡した情報だけでなく、ドメイン駆動設計に関連する情報があれば補足してもらうようにしました。

下記のようにプロンプトを記載しています。

〜〜 書籍から抜き出した文章 〜〜
上記の文章をドメイン駆動設計のhogehogeに関する情報として要約してください。
必要に応じて、表や具体例などを用いて説明してください。
また、ドメイン駆動設計のhogehogeという文脈で、過不足な情報があれば補足してください。

上記のプロンプトでAIに要約してもらった例は以下の通りです。

AIに書籍の内容を要約してもらった例

また、読みながらキーボードでタイプするのは、「本を読む→打ち込む→本を読む→打ち込む」と往復する必要があり、地味にストレスがたまります。そこで、Macの音声入力機能を活用し、本を読みながら重要な内容をその場で音声入力することで、読書と記録を同時に行えるように工夫しました。

さらに、ディスカッションテーマの作成についても、コードが読めるAIツール(Cursor)を活用しました。AIに要約してもらった内容をプロンプトに含めて、関連のあるコードを探してもらい、見つけたコードがどのように関連しているのかを説明してもらうようにしました。また、ディスカッションの議題もAIに提案してもらい、議題に合わせて、AIならどう結論づけるかを尋ねるようにしています。

下記のようにプロンプトを記載しています。

ドメイン駆動設計のhogehogeの内容で勉強会を実施します。
Stock上で上記の内容と関連する情報やコードを探してください。
その情報やコードがどのように関連しているかを説明してください。
また、勉強会のディスカッションテーマをいくつか提案してください。

上記のプロンプトでAIにディスカッションテーマを提案してもらった例は以下の通りです。

Cursorが提案したディスカッションテーマ

BEのコードに対する知識の差を埋めるための勉強会の構成変更

実施する前に、書籍に記載されている内容がBEのコードをベースに書かれているため、プロダクトとリンクさせて話す上でBEのコードに触れるのは避けられないと思っていました。FEメンバーへの配慮として、BEのコードをベースに会話するのではなく、コードにも触れつつ実装されている処理を元にディスカッションするようにしました。

しかし、私はBEのメンバーなので、FEのチームがどれほどBEのコードを理解しているか把握できていませんでした。FEメンバーも動作確認などを行う上で、どの機能がどういった処理を行っているか、テーブルの構成がどうなっているかを理解していましたが、BEの構成やコードの流れまでも理解できている前提で話していたことが、FEメンバーを置いてけぼりにする原因でした。

そこで、BEのコードに対する知識の差を埋めるために、勉強会の形式自体を見直しました。

変更前は、週2回、各回30分の時間で各章を終わらせるスケジュールで進めていましたが、1つの章を2回に分けて、前半30分は章に関連するコードの解説を行い、後半30分で章の解説とディスカッションを行う形式にしました。

今回の問題に関しても、AIにアイデアを出してもらい、再度、実装されている処理を元にディスカッションする方法を考えました。しかし、勉強会の時間を1回分使ってこの課題について相談したところ、FEチームからはBEのコードを解説する時間を用意してもらえれば十分に理解できるという意見をもらいました。

変更前は、短い時間で1つの章を終わらせるため、該当する章を要約した内容を解説した後に、すぐにディスカッションを行う流れでした。しかし、ディスカッションはBEの構成を理解していることが前提で進むことが多く、BEメンバーのディスカッションを聞くのがメインになってしまっていました。

変更後は、BEのコードを解説する時間を設けることによって、FEメンバーも事前にコードの流れや意図を理解した上でディスカッションに参加できるようになりました。

勉強会の相談をした際の議事録

実施の成果

AIの活用による勉強会の資料作成とチームで決めた勉強会の構成変更により、以下のような成果が得られました。

資料作成にかかる時間の短縮

AIを活用したことで、資料作成にかかる時間は大幅に短縮され、30分程度で効率的に準備できるようになりました。従来は数時間かかっていた資料作成が、AIのサポートによって大幅に効率化され、主催者の負担が劇的に軽減されました。

また、音声入力で本の内容を記録することで、内容の把握と入力を同時に進められるだけでなく、認識されにくい言葉に注意を払って読み上げることで、発表時も聞き取りやすさが向上し、自分の発音の理解にもつながりました。

ディスカッションの議題をCursorに生成してもらうことで、本の内容と実際のプロダクトがどのようにリンクしているかを明確にし、そのポイントに絞って本質的な議論ができるようになりました。その結果、さまざまな機能の話が交錯して議論が拡散したり、共通点が見つからないまま話が終わってしまうこともなくなりました。

また、AIに1つの答えを提示してもらうことによって、ディスカッションの理解が曖昧なまま終わることを防げます。AIの明確な回答があることで、議論の方向性が定まりやすくなり、AIの答えを1つの軸にして、個人の認識とAIの差から議論が生まれるようになりました。

勉強会の構成変更による効果的な知識共有

勉強会の構成を変更する上で、初めは全てのメンバーにとって新たな学びになる勉強会にしたいと考えていたため、BEのコードを解説する時間は、BEメンバーには学びの少ない時間になるのではないかと懸念していました。

しかし、実際はBEメンバー同士でも自分が担当していない処理について知識の共有ができ、FEメンバーも書籍の理解が深まるなど、とても良い改善になりました。

また、勉強会を実施していく中でAIを活用することでさまざまな課題を解決していましたが、時には課題をチームのメンバーと相談することで、より良い解決策を見つけることができました。

このように、AIとチームの協力によって、勉強会が「読んで終わり」ではなく、実務に直結する学びの場へと進化したことを実感しています。

今後の展望について

今後は、プロンプトやCursorのルールをさらに工夫し、より効率的かつ効果的に資料を作成できる方法を模索していきたいと考えています。AIの活用方法はまだまだ発展途上であり、プロンプトの書き方やAIツールの使い方次第で、アウトプットの質や効率は大きく変わると確信しました。

最終的には、資料作成やディスカッションテーマの選定だけでなく、勉強会の進行中にもAIを活用できる仕組みを検討していく予定です。例えば、勉強会中にリアルタイムでAIに質問し、その場で疑問を解消したり、議論の方向性を整理したりすることで、より深い学びが得られるのではないかと期待しています。

また、AIの活用によって一人でも勉強会を運営できることが分かったため、こうした効率化や質の向上を進めることで、自チームだけでなく他のチームも巻き込んだ勉強会の開催にも挑戦したいと考えています。

今後は、他チームのメンバーとも知識を共有し合い、組織全体の技術力向上に貢献できるような勉強会を目指します。

このように、AIを活用した輪読会・勉強会の運営は、主催者の負担を大きく減らし、全員が実務に活かせる学びを得られる場へと進化しています。これから勉強会を開催しようとしている方や、輪読会で悩んでいる方の参考になれば幸いです。

最後に、バイセルでは一緒に働くエンジニアを募集しています。興味のある方は、以下よりご応募ください。

herp.careers