enPiT筑波大学振り返り

2022年秋~2023年1月下旬にかけて筑波大学の授業の一環である[enPiT](https://enpit.coins.tsukuba.ac.jp/)に参加しました。
この記事では、作成したプロダクトや、参加した時の感想などを書いていこうと思います。

# 開発したプロダクト（Gadgeter）について
## プロダクトのリンク
[Webアプリ](http://yoyoi.pythonanywhere.com/)

## プロダクトの作成の経緯
- __ペルソナ__
    - 情報系の大学に通っている大学2年生の男性
- __課題__
    - 大学2年生になって学校にも慣れてきたので、自分のデスク周りをガジェットオタクのような環境にしたいが、ガジェットオタクは「__どのようなガジェット__」を「__どのように机に配置__」しているのか分からない
- __現状のプロダクトの問題点__
    - ネットでデスクのデザイン画像をしらべる
        - デスクの大きさがわからない
        - デスク画像が多く、ガジェットの画像が出てきにくい
        - 画像中の気になるガジェットについて詳細を知ることができない
    - デスク周辺ガジェット系YouTuberの商品紹介
        - そのYouTuber1人のデスク環境しか知れない
        - 動画を見るのに時間がかかる
        - どうガジェットを配置しているかの説明がほぼない
    - [Pinterest](https://www.pinterest.jp/)
        - ガジェット購入リンクがない
        - 机のサイズが自分の物と違う
- __開発したプロダクト（Gadgeter）の強み__
    - 自分の机のサイズで検索ができる
    - ガジェットのジャンルから様々な配置がわかる
    - 気になった商品のURLがわかる

## プロダクトの使い方
1. [URL](http://yoyoi.pythonanywhere.com/)をクリック![スクリーンショット 2023-02-06 21.42.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1526707/83dfba2f-9f3e-8c67-ef61-9ed29897cc33.png)
1. 「ガジェットのジャンル」で自分が気になっている、欲しいと思っているガジェットのジャンルを選ぶ
1. 「デスクのサイズ」で自分のデスクのサイズを選ぶ
1. 「検索」ボタンを押して気になったデスクの画像を見る![スクリーンショット 2023-02-06 21.43.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1526707/45da0809-3f17-8fa3-9bd3-44a5b0b1b479.png)
1. デスクに写っているガジェットの購入リンクのリストがあるので、欲しいガジェットがあったらボタンを押す![スクリーンショット 2023-02-06 21.43.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1526707/4d4a4c58-ff96-13db-1a0e-c88ed62379d5.png)

# 開発プロセスについて
約半年間の開発期間がありましたが、最初からものすごいプロダクトを作ってあとから機能付け足し...みたいな夢物語はありませんでした。ここでは、自分たちのプロダクトが出来上がっていく過程について紹介していこうと思います。

## 第一段階(価値検証)
### やったこと
- 価値検証

授業内の開発時間は100分でした。その時間内で開発経験のないメンバーで開発をしようなんてここだけの話無茶です(笑)。なので最初は、本当に自分たちのプロダクトに価値があるのか、授業に参加している他の人を巻き込んでオズ法(開発者が実際のシステムのふりをしてプロダクトのユーザと対話する手法)で価値検証しました。具体的には、[Miro](https://miro.com/ja/)というオンラインホワイトボードを用いて、実際のプロダクトのシステムこんな感じにするんだけど、このプロダクトあったら使いたい？？ということを入念に聞きました。これによってプロダクトの価値を検証できたので次回以降は実際に動くプロダクトを作ろうという結論になりました。
![スクリーンショット 2023-02-06 21.59.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1526707/e63f28cf-082f-813a-5fcd-a1d2c3927872.png)


## 第二段階(デプロイ)
### やったこと
- デプロイしてユーザに使ってもらえるようになった
- 画像の一覧とガジェットのタグが見れるようになった

授業内にはレビューといって、授業に参加している人に対して今日作ったプロダクトについて紹介する時間というものがありました。第一段階では、紹介するプロダクトがなく価値検証だけ行ってきましたが、ついに動くプロダクトの完成です！素晴らしいですね！
とはいえ、動くといってもリンクをクリックしたら4枚程度のデスク画像が一覧できるだけなので、レビューも「現段階だったらデスク画像をGoogle検索した方が自分の理想を見つけやすいんじゃないか」など厳しい意見をたくさんいただきました。次回以降自分たちの理想に近づけるのでしょうか。

## 第三段階(ジャンル検索)
### やったこと
- ガジェットのジャンル検索ができるようになった
- ジャンル検索をボタン選択でできるようになった

自分たちのプロダクト内で初めての「機能」と呼べるものです。ガジェットのジャンル検索ができるようになったことで、「自分の気になっているガジェットを探しやすくなった」というメリットがありました。さらに、検索方法をボタン選択による検索にすることで、わざわざフリーワードを打つ時間を省略できるメリットも見出しました。これは前回レビューの時にいただいた「デスク画像をGoogle検索した方が自分の理想が見つかりやすい」という問題を解決できていると思います。
![スクリーンショット 2023-02-06 22.08.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1526707/3ea6996e-db86-91b9-5be0-61ffa46e763d.png)

## 第四段階(ガジェットのリンク)
### やったこと
- デスク画像のガジェットのURLをリストで知れるようになった

個人的に一番このプロダクトの中核を担っている機能だと思います。というのも、既存のプロダクトで紹介したデスク周辺ガジェット系YouTuberの商品紹介、ネットでデスクのデザイン画像をしらべる、[Pinterest](https://www.pinterest.jp/)の全てに共通する問題は、画像内のガジェットの詳細知りたいのに、詳細のリンクとか購入リンクないやん！不便！！と思ってしまうことです。この機能一つあることで、その問題が解消されます。実装も大変でしたね。
![スクリーンショット 2023-02-06 22.13.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1526707/df82eea6-c913-0d7b-3f60-fd6567241329.png)


## 第五段階(机のサイズ)
### やったこと
- 机のサイズから検索できるようになった

最後に作った機能として、既存のプロダクトの問題を解決する「机のサイズの絞り込み」ができるようになりました。この機能があることで、ガジェット買ったはいいけど、自分の机からはみ出してしまう！という問題を解消することができます。
![スクリーンショット 2023-02-06 22.17.55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1526707/d017af8e-a00f-1cba-7163-c5c86067a6d0.png)

# enPiTで得た学び
アジャイル開発は難しい。enPiTの授業を通して感じたこととして、この一言につきます。しかし、上手くできたらウォーターフォール開発よりも本当にユーザにとって価値のあるプロダクトを生み出しやすいんだろうなぁということは切に感じました。ここでは、個人的に感じたことや学びについてまとめていきたいと思います。

### 最小の手順で価値を生み出す
enPiTの授業で最も印象に残った言葉です。前述の通り、その日開発できる時間は100分です。この時間は正直に言ってありえないほど少ないです。こんなに時間がなかったら何もできないよ...と当時は思っていましたし、実際に開発が滞ってしまうことが何度がありました。そんな時に、ある先生からこんな言葉をいただきました。「ある機能を実装するために最も簡単な手段をとることが重要」という言葉です。この言葉を聞いた時、チームメンバー含めてハっと気付かされました。この授業の目的は、「すごいプロダクトを作る」ことではなく、「ユーザにとって価値のあるプロダクトを作る」ことであるということです。実はこの言葉を聞くまで、開発プロセスの第一段階にすら到達せず2か月露頭に迷っていたのですが、この言葉を聞いてからプロセスを順調に進めることができました。特に第一段階の価値検証は、実際にプログラミングはしていない訳ですからプログラミングするより「最小の手順」でユーザにとって価値のある何かを生み出していますよね。その後のプロセスも、100分以内で実装できるような機能に絞ってプロセスを進めています。この言葉はアジャイル開発そのものを象徴するような言葉なのではないでしょうか。

### ユーザはあえて「絞る」
開発する上でこう思っている人が多いのではないでしょうか。「全世界の人に自分たちが作ったプロダクトを使ってもらいたい！」と。自分たちも開発する前はそう思ってました。しかし実はこれ、この授業では悪手なんです。実際のレビューでは、こんな2人がいました。

- Aさん：自分のデスク周りを自慢したいため、自分のデスク写真を投稿して承認欲求を得たい！
- Bさん：デスク周りガチ勢の人のデスク画像みて自分も真似したい！

この二人の要望に応えるために頑張って開発しよう！という意気込みで開発したは良いものの、知識があまりない自分とメンバー、そして100分という少ない時間が相まって成果発表会1.5ヶ月前になり2つの機能をつくるのは無理だ！！とみんな悟りました。さて、思い出して欲しいのがこの授業の目標である「ユーザにとって価値のあるプロダクトを作る」ということと、そのためには「最小の手順」で開発することが重要であるということです。これを踏まえて自分たちは、「より多くのユーザにそこそこの価値のプロダクトを届ける」ことよりも、「より絞ったユーザにかなり価値あるプロダクトを届ける」ことの方が重要だと考えました。最終的には、前述のプロダクトの内容の通り、Bさんをターゲットとしたプロダクトになりました。成果発表会では、確かに対象外のユーザに関しては不評でしたが、Bさんのようなユーザに対してかなりの高評価をいただきました。誰をターゲットとするか、これは実際のビジネスでもかなり重要な要素なのではないでしょうか。

### メンバー全員が現状を知ることの重要性
自分も含めて3人大学院生がチームメンバー内にいて、研究や就活等で授業に顔を出せないということがあり、なかなか全員が揃って開発する機会が他のチームと比べて少なかったんじゃないかなぁと思います（顔を出せないことが多くてすみませんでした）。なので、前回どこまで開発したかを知らない人がいるという状況が生まれてしまっていました。そこで、共通認識を持つように開発に入る前に前回も授業に参加した人が現状を説明する時間を設定しました。これにより、分からないままの人がそのまま何もせずにその日の授業が終了することがなくなりました。

# 最後に
初めてブログ的なものを書かせていただいたんですが、自分を振り返るツールとしてはもってこいだなと感じました。また、インプットだけでなくこうやって文章に起こしてアウトプットすることでちゃんと内容が身に付くんだと感じました。何かしら自分の中でのイベントが完結した時に今後書いていきたいですね。
さて、enPiTは教授やメンターの雰囲気がよく結構好きな授業だったので今後も続いていってほしいな〜と思ってます！！