enPiT2024 個人レポート
はじめに
本記事は、筑波大学で2024年夏〜冬にかけて開講されたenPiTの最終レポートです。enPiTでは、身近な困りごとを解決するプロダクトをアジャイルにチームで開発することができます。外部のアジャイルコーチの指導をうけ、実際にユーザーインタビューなどを行った上で、スプリントを回しながらアジャイルにプロダクトを開発していきます。
情報学群の3年生と情報理工学位プログラムの大学院生が主な対象ですが、今年度(2024年度)から2年次でも履修することができるようになったため、情報学群情報メディア創成学類2年の私も履修することができました。
何を作ったか
情報学群情報メディア創成学類の履修支援ツール「そつたん」をつくりました。学生は、履修細則をもとに履修する科目を決めて、卒業単位をもれなく修得する必要があります。このプロダクトの目的は、この履修細則の理解を容易にして、履修組みを支援することです。
使い方
Twinsから成績データのCSVをダウンロードしてきて、アップロードするだけです。アップロードすると以下のような画面になります。
- 履修中・修得済みの科目は緑色で表示されます
- 未修得の科目は黄色で表示されます
- 選択科目の場合、最低単位数を満たしていない場合、黄色で表示されます
- ホバーすることで詳細な履修状況が表示されます
- 必修科目で未履修の場合は科目名が赤色になります
- 「科目一覧」をクリックすることで、その区分として履修できる科目の一覧が表示されます
特徴
履修周りは多くの人がストレスを感じており、それを解消するためのサービスがたくさん存在しています。Awesome Tsukubaにまとめられており、卒業要件チェッカーはとても便利でよく使わせていただいています。
これらのツールと比較した特徴としては履修細則にそのまま履修状況をオーバーレイすることで、直感的にわかりやすいことです。
どのように作ったか
メンバー
4名のチームで開発をしました。今年度のenPiTの中だと人数は少ない方です。
hiromichi-5: 情報メディア創成学類2年 (プロダクトオーナー・私)
Monburan014: 情報メディア創成学類2年 (スクラムマスター)
mikadonec: 情報科学類3年
blue031415: 情報科学類3年
もともと自分発案であること・困っている当事者であることもあって、プロダクトオーナーを務めました。[1]みんな均等に実装も議論もしていました。
完成するまでの軌跡
夏の集中授業では、メンテナンスフリーな卒業要件チェッカーをつくることを考えていました。
最終発表会スライドp.6 「プロダクトの改善」
この方針は技術的に難しい上、ユーザーインタビューでは
- 既存の卒業要件チェッカーは、判定の結果が本当に合っているかわからないので、使っていない
- 履修要覧がわかりにくくて、本来取るべき科目が取れていなかったことに後から気づく
という話が出ました。そこで、メンテナンスフリーな卒業要件チェッカーに挑戦するよりも、見やすく、信頼感を得られる履修支援ツールをつくることで、価値を出せるのではないかという結論に至り、そつたんの開発が始まりました。
実際の開発
私含めメンバー全員が今回の技術スタック(React, TypeScript)に習熟していなかった[2]ので、最初は4名で同じ画面を見ながらつくり、途中からは2名ずつに分かれて開発を進めました。最後の方は1名ずつタスクを消化して、PR単位でレビューする形がとれました。
最終発表会スライドp.10 「チームの改善」
最初から最後まで一貫して、4名全員が自分の考えを出して議論し合う形がとれたのはとてもよかったです。実装中も「こっちの表示のほうがいい?」「この部分はこうする?」などコミュニケーションをとりながら進められました。また、毎回の終わりにある振り返りでもレビューをどう受け止めるか、何をするべきかについて全員で議論できました。
レビューを活かす
enPiTでは2コマが週2回あり、アジャイルな開発を実践するため、1回1スプリントとしてレビューを受けます。加えて、ロングレビューが全体で数回設定されています。
当初はレビューの結果をうまく活かしきれませんでしたが、1回目のロングレビューでしっかりと準備をしてからは、レビューをうまく活かせるようになったと思います。
ロングレビュー1で準備したmiro
このmiroでは、自分たちが届けたい価値(エレベーターピッチ), 今できるようになっていること, ターゲットユーザー, 聞きたいことを事前に整理しました[3]。これにより、レビューをうまく活かせるようになりました。
レビューで改善したことの1例
最後の方のスプリントで、「選択必修の合計が足りないことがわかったら、その区分の科目をみたいよね」という議論になり、科目一覧を表示する機能を実装しました。
最初の実装
見た目も綺麗にすることができ、作ってよかったなと思っていたのですが、その後のレビューでは時間割表示でみたいわけではないという声がありました。
レビューでのフィードバックの様子
このとき書き込んでいただいた方以外にも複数の方に意見を伺い、結論として表形式で表示するだけで十分だと判断しました。ここで時間割を表示しても履修の仮組み機能をもっているわけではないので中途半端で便利にならないと考えたためです。
表形式に変更した。あわせて、科目番号を押すとシラバスに飛べるようにした
これ以外にもレビューを受けるたびに、どれを新しいタスクとするかを毎回議論してmiroに整理することで、しっかり改善のサイクルを回せたと感じます。
何を学んだか
一番の学びは、mikadonecが最終発表会のスライドに書いてくれたのですが、技術的に面白い≠実際に使われるということです。
最終発表会スライドp.12 得られた学び。発表会での琉球大学工学部学部長からの講評でも触れていただいた
「PDFかつセルの結合が多用された表を自動で構造化する」というのは技術的に面白い挑戦[4]だと今でも思っていますが、そのツールが本当に使われるのか、は全く別の話です。今回開発したプロダクトは、既存の卒業要件チェッカーと重なる部分はありますが、最終的には、見やすく、信頼感を得られる履修支援ツールにできたと考えてます。
また、アジャイルな開発を実践できたことはとても大きな学びになりました。実際に実現できたレベルは高くないと思いますが、それでもアジャイルにやろう、きちんとスプリントを回そう、毎レビューで価値検証をしよう、ということを強烈に意識して実装を進めたことは良い経験になりました。
例えば、他のチームのプロダクトの完成度が高くなるにつれて、私たちのプロダクトはCSVをアップロードするだけでユーザーが操作するところがあまりない、おもしろくないのでは?という話がチーム内で上がっていたのですが、「インタラクティブな操作があるのが価値ではない」「むしろ今まで作ってきた機能で、わかりにくいと何度も言われているところや実装しきれていないところを完成させることが大切」という議論をスムーズにできたのは、学びながら実践できたシーンだったなと思います。
AMF(enPiTで使われた振り返りのフレームワーク)は最後まで活用しきれなかったのですが、振り返り自体はきちんとできていたかなと思います。右上の「ユーザーにとっての価値が大きい課題から取り組めなかった」は夏の集中で追加され、その近くにある「FBを反映して体験を向上させられた」は秋に追加されたものです。チームとしてもレビュー・フィードバックにだんたんうまく向き合えてきたなと思います。一貫してこのチームは全員で率直な議論をいつもできていたのでよかったです。
最終版のチームAMF
おわりに
最後に、enPiTでお世話になった先生方・メンターの方々・レビューいただいた他チームの方々に、感謝申し上げます。そしてなにより、このチームで一緒に開発してくれたメンバーありがとうございました!!楽しかったです!
-
情報科学類3年の先輩2名は、3年で単位は取り切るので履修支援ツールは必要ないから、情報メディア創成学類でつくろうといっていただきました ↩︎
-
blue031415がフロントエンドの経験があったので技術的にリードしてくれていた場面がありました ↩︎
-
Azure AI Document Intelligenceはかなり精度良く構造を理解できるので、実現可能性はあると思います ↩︎
Discussion