💬

enPiT筑波大学2023に参加しました

2024/02/02に公開

はじめに

enPiT筑波大学2023に参加しました。
この記事は、筑波大学大学院で開講されている授業の「イニシアティブプロジェクトI」における最終レポートです。

プロダクトの紹介

概要

promiseeというLINEBotを作りました。友達との約束に遅刻したくない人向けのプロダクトとなっています。

このプロダクトの説明、エレベーターピッチは次のようになっています。

このプロダクトpromiseeは、[遅刻したときの気まずさ]を解決したいグループ向けの[LINEBot]です。
これは[遅刻をした際に相手にLINEギフトを送る機能]によって、
[通常のリマインダー]とは違って、
[遅刻による気まずさを楽しみに変えます]

投稿時点でまだデプロイされて正常に動くかは分かりませんが、一応ここから友達登録できます。

使い方

グループに入れて使用します。個人ではチャットを返さないようになっているのでご注意ください。
まずグループにpromiseeを追加すると、次のようにメッセージが来ます。

メッセージに従って、「予定登録」と打ち込みます。

すると、ドラムロール型の予定登録画面が出てくるので、グループで遊ぶ日を登録します。

次に予定に集まる人数を入力します。

最後に、罰ゲーム用のLINEギフトを登録して設定完了です。当日を待ちます。


当日の予定時間になると、出欠アンケートが貼られます。(今回は別日に取ったため、時間が少しズレています)そして、その結果に一人でも遅刻者がいると、ギフト用のURLが送信され、詫びギフトの送信が促されるようになっています。

チームでの自分の役割

LINEBotの開発

主にFlaskを用いたLINEBotの開発と、それに紐づくLIFFの開発を担当しました。
具体的に実装されている自分が作った機能は、詫びギフトの登録部分です。

また、データベースにギフトを登録してLIFFで一覧を取得できるようにする機能なども作りました。

他にも、メンバーに手助けしてもらいながら予定登録のドラムロールUIを実装したりしました。
加えて工夫したこととして、途中の開発までRenderでデプロイしていたのですが、Renderは15分アクセスがないとサーバーが一時的に落ちてしまいます。そこでUptimeRobotで5分に1回アクセスさせて落ちないようにしました。

タスクの割り振り

対面でいる時は開発のタスクの割り振りなども担当しました。
スプリントプランニングでできたタスクを、その場でメンバーに合わせてタスクを分割するのが大変でした。開発経験はそこそこありましたが、マネジメント的な経験は少なかったのでそれも含めて大変でした。

大変だったこと

レビューが貰えない問題

丸1回の授業をデータベースの調整に使うこともあり、ユーザーに届けられる新規の価値がなく、新たなレビューが貰えないと言う問題が発生しました。授業後半で気づいたのですが、他の班の人がレビューを別の班に分け与えたり、開発に回しているのを見て、自分の班も真似して柔軟にできたなあと思いました。

毎回のレビューが大変

毎回のレビューのためにデプロイするのがしんどかったです。作業がノリに乗ってきてもレビューの15分前くらいにはデプロイ・マージ作業に取り掛からないとレビューに間に合わず、今回の進捗0になって見せられるものがなくなってしまいます。最後の授業全体のフィードバック的なところでも挙げられてましたが、やっぱりレビューは週1でいいんじゃないかと思っています。

不慣れな技術を使った

自分のチームは最初FlutterでWebアプリで作っていましたが、それだと本来の価値が発揮できるか怪しくなったためLINEBotの開発に転換しました。10月から開発が始まってFlutterを選んだにも関わらず、11月後半でLINEBotに転換し、かつ秋から新規でスタートしたため企画などにも時間を持っていかれました。
LINEBotの開発経験がなく(それを言うならFlutterもそうなんですが)、Web開発とは異なる独特の開発でキャッチアップが大変でした。加えてローカルで検証しにくく、最後まで自分は方法が分からなく模索する時間もなかったため自分が作った個人の本番環境にデプロイして動作を検証していました。

オンライン参加

長期インターンが週3で入っており、インターン先近くのネカフェを予約してそこからオンライン参加してました。実は毎週これで1000円くらい持ってかれてました。金欠です。
全員がオンラインなら多少円滑に回ると思うのですが、他の人が全員対面+自分だけがオンラインの日だと会話にラグが発生したりして難しかったです。

反省点

自分はインターンがあったので基本的にオンライン参加をしたのですが、やっぱり対面で参加すると目に見えて仕事が進んで行ったりコミュニケーションが取りやすかったので、多少インターンを休んででも授業を対面参加した方がよかったかなあと思いました。

後は全員に満足な開発体験を与えられなかったのが気がかりです。
enPiTの夏合宿ではSMの自分に課した目標として、全員に平等な開発体験を与えるというものがありました。やっぱりチーム開発の授業で開発に携われないのは辛いので。。。
実際に夏合宿ではチームメンバー全員がContributerとなり、偏りなくコミットすることができていました。しかし秋の授業では、自分があまり対面で参加できなく、慣れてない技術を使い、チームメンバーが多い(7人)ということもあり全員に開発体験をあまり与えることができなかったのが心残りです。

他チームが行なっていた面白そうなこと

フィードバックコメント数の推移グラフを作る

enPiTの中で出来る数少ない定量評価ですね。
アジャイル開発でフィードバックを定期的にもらえる貴重な場なのでそれを有効活用する姿勢真似したいです。
あとこれを見て貰ったフィードバックにちゃんとリアクションつけた方がいいなーと改めて思いました。自分が書いたフィードバックがノーリアクションで流れていくと悲しいので。。。

レビュー時間に対面で回ってその場で直接レビューしてもらう

レビューの時間の割に他の班のプロダクトを見る時間が結構少なかった気がするので、こういう風に対面で回って自分たちのプロダクトを意識させる取り組みいいですね。

プルリ句

プルリクのコメントで俳句を作るやつです。
一見ネタ枠っぽいですが、コミュニケーションを促進したりプルリクに対するハードルを下げそうで面白そうだと思いました(でも開発が修羅場になってくると字余りって付け足して普通のコメントを書くことになりそう)

まとめ

自分は3年夏合宿、そして今回院1年の2回目のenPiTでした。なんだかんだ大変でもチーム開発は楽しいですね。
自分は水曜日は対面orオンライン、金曜日はオンラインであまり対面で参加できなかったにも関わらずプロダクトを完成させられたのはチームのおかげです。PO、SMの方含めありがとうございました。
来年度は研究が忙しくなると思うのでメンターなどはできないと思いますが、また機会があればenPiTに何らかの形で関わりたいです。

Discussion