オンラインコミュニティで、イベント機能を要件定義から行いリリース
TeacherTeacher村というオンラインコミュニティで使われている、ManabiyaというRailsア プリケーションの開発に携わっています。 Teacher Teacherとは: 子育てや教育にまつわる情報発信をしているポッドキャスト番組で、不登校の子ど もたちを支援するオンラインの無料フリースクール コンコンの運営もしています。そしてTeacher Teacher 村とは、Teacher Teacher のオンラインコミュニティのことです。 Manabiyaとは: Teacher Teacher村に参加している方々が使うWebアプリケーションです。家族構成や出身地などのプロフィールを登録したり、コンコンのボランティアのスケジュール登録ができます。 技術スタック: • 使用言語: Ruby 3.3.6 • フレームワーク: Ruby on Rails 8.0.1 • テスティングフレームワーク: minitest • リレーショナルデータベース管理システム: PostgreSQL • CSSフレームワーク: Tailwind CSS • デプロイ: Heroku 課題: Discordサーバー上でコミュニケーションを取り合っており、様々なチャンネル・スレッドでイベントが 企画されているため、どんなイベントが開催予定かの把握や、スケジュール管理が困難な状況でした。 Teacher Teacher村のDiscordサーバーにはいくつかのロールがあり、ロールによってアクセスできるチャン ネルが異なります。Manabiyaの登録者にだけイベントの情報が見えるようにしたいため、Discordのイベ ント機能はDiscordサーバーの参加者全員に見えてしまうので、今回の課題の解決に適していませんでし た。そのため、イベント情報を集約させる専用のチャンネルを作成し、主催者にイベント開催概要を転 送していただくようになっていました。 自身が取った行動: そこで、Manabiyaにイベントを登録・一覧できる機能と、直近開催予定のイベントをDiscordチャンネル に通知する機能を開発しました。 以下を心がけて開発を進めました。 • 要件を考える前に、まずユーザーが何に困っているかを調査し理解しました。 • どの機能をファーストリリースに含めて、どの機能を省くか、重要度や工数を考慮して優先度を決めました。 • 自分でやることを決めて進めつつ、出戻りや認識の齟齬が起きないように、要所要所で開発メンバーに相談しながら進めました。 • 知識が無く意見を出しにくい場合でも、自分で調べて最善と思う意見を考え、伝えるようにしました。 • 分からないことは分かったふりをせず、素直に分からないと伝えました。 • 分からないことはその場で調べアウトプットしました。 具体的な意思決定や調査の過程、設計内容は以下のIssue/Pull Request をご覧いただけますと幸いです。 Issue • https://github.com/devin-sandbox/manabiya/issues/100 • https://github.com/devin-sandbox/manabiya/issues/106 Pull Request • https://github.com/teacherteacher-jp/manabiya/pull/101 • https://github.com/teacherteacher-jp/manabiya/pull/102 • https://github.com/teacherteacher-jp/manabiya/pull/108 結果: 上述した機能のリリースにより、開催予定のイベントの把握が容易になりました。また、イベントの主 催者が、イベント情報をDiscordチャンネルに手動で転送して情報を集約させる手間がなくなりました。 さらに、ユーザーから「開催予定のイベントのスケジュールを把握できるようになってありがたい」 「Googleカレンダーに追加するリンクがあるので、イベントの日程をカレンダーアプリに手動で登録する 手間がなくなって嬉しい」などポジティブな反応をいただきました。