見出し画像

enPiTを1年かけぬけて、チームで話題提供アプリ「しゃべるん」を開発した話

はじめまして!
noteに初投稿させていただきます!

GitHubでは、@yf1121でやっています。

1発目の記事となる今回は、私が通年で受講していたenPiT(ビジネスシステムデザイン)のことを綴っていきます。enPiT(education network for Practical Information Technologies)は通年で開講されているPBL形式(Project-based Learning = 課題解決型学習 ≠ Product Backlog)でアジャイル開発していく実習授業です。

拙い記事ですが、最後までお付き合いいただければ幸いです。

開発したプロダクト

私のチームV-Challengeが秋に開発したアプリは「しゃべるん」です。
キャッチコピーは、「あなたのコミュ力をカイゼン! しゃべるんでしゃべろん♪」。

画像15

最終的なリーンキャンバス

リーンキャンバス

エレベータピッチ

しゃべるんは、
話題を思いつかない話を深ぼりできない問題を解決したいコミュニケーションに自信がない筑波大生向けのコミュニケーションサポートアプリです。

これは話題の投稿・前の話題と関連する話題の提供によって、既存の話題提供アプリとは違ってコミュニケーションに自信がない人でも盛り上がる話題の提供を実現できます。

成果発表会でのスライド

前置きはいいからこれ使えるの?と思った方も多いと思うので、これからインストール&使い方について説明していきますね。

使い方Phase1 -インストール-

しゃべるんのインストールはAPKファイルを直接端末の導入することで行います。
1.まず、ここからしゃべるんのAPKファイルをダウンロード
2.端末にダウンロードしたAPKファイルをインストール
3.アイコンをタップして起動

使い方Phase2 -話のタネを見つける-

しゃべるんの使い方はいたって簡単です。
起動すると、最初に下のように「Topic」画面が出てきて、1つの話題が表示されます。

しゃべるん_Screenshot_2021.02.10_08.44.53

画面をタップすると別の話題が表示されるようになっています。

しゃべるん_Screenshot_2021.02.10_08.49.42

右上の三本線のアイコンをタップすることで、リスト表示で話題を探すこともできます。

しゃべるん_Screenshot_2021.02.10_08.45.10

使い方Phase3 -良質なタネをお気に入りにためる-

後で使ってみたい話題を見つけたら、話題の中にある♡をタップすることで、その話題をお気に入りに登録することができます。

しゃべるん_Screenshot_2021.02.10_08.45.37

登録した話題は下のナビゲーションメニューの「favorite」から見返すことができます。

しゃべるん_Screenshot_2021.02.10_08.45.51

「Topic」と同様に、リスト表示で話題を見返すこともできます。

しゃべるん_Screenshot_2021.02.10_08.49.23

使い方Phase4 -話のタネを探す-

「search」画面から話題をハッシュタグで検索することができます。
画面上部の虫めがねアイコンをタップしてキーワードを入力。

しゃべるん_Screenshot_2021.02.10_09.18.17

入力を確定すると、キーワードが含まれたハッシュタグを持つ話題が表示されます。もちろん、リスト表示も可能です。

しゃべるん_Screenshot_2021.02.10_09.25.01

使い方Phase5 -タネをおすそ分けする-

何か話題を思いついたら「post」画面から積極的にみんなにおすそ分けしましょう!話題を思いつけるようになるのもコミュニケーション力を向上させるのに大事なステップですよ?

まず、ナビゲーションメニューから「post」を選択し、投稿画面を表示させます。

しゃべるん_Screenshot_2021.02.10_09.28.58

話題におすそ分けする話題、タグに話題から連想される適した季節や場所、時間、テーマなどを入力します。入力を確定するたびに下にタグが追加されていきます。

しゃべるん_Screenshot_2021.02.10_09.31.21

複数のタグを持たせることもできます。

しゃべるん_Screenshot_2021.02.10_09.32.49

では、「post」をタップして投稿しましょう。

しゃべるん_Screenshot_2021.02.10_09.32.49

投稿完了のトースト表示が出てきたらOKです。

しゃべるん_Screenshot_2021.02.10_09.34.06

無事、おすそ分けすることができました。

チームと開発プロセス

ここからは、チームと開発プロセスについて綴ります。

チーム V-Challenge

画像15

7月、V-Challengeの歯車が動き出しました。
夏の開発は6人チームでしたが、秋の開発では、2人抜け、1人入ったので最終的には5人チームで再起動しました。

自分の主な役割

秋では、数回スクラムマスター(SM)を担当していました。
スクラムマスターを担当したときはMiroのタイマーをセットして時間を気にしながら進めていました。(しかし、時間がすぐにきてまだ進捗が生まれてないことも多々あった……)

開発面では、主にFirebaseをFlutterプロジェクトに設定するのを担当していました。Flutterは初めて、Firebaseもまだ使い慣れていなかったので、とにかく骨の折れる作業でした……

また、V-Challengeのブランディングを担当する役回りが多かったです。というのも、私自身これまでに学園祭実行委員時代にデザインやブランディングの経験がありましたので。
具体的には「しゃべるん」というネーミング原案やロゴ、プレゼンのデザイン面、CM動画作成、「しゃべるんでしゃべろん♪」のキャッチコピー、V-Challengeのロゴなど。実は、夏につくった「ちありん!」のネーミングも私が考案したものです。
何気に開発面よりもブランディング面でのほうが、productへの貢献が大きかったように思います。

各スプリントの振り返り-10月:3人からの再起動-

まず、秋最初の授業で、驚いたのは、チームメンバーが半分の3人になっていたことでした。
夏は6人いたので、それが3人と半減していたのでどうしようか途方にくれました。
そして、夏に作ったプロダクト含めて、どうするかを話し合った結果、新たに「コミュ障」を困りごととして一から始めることにしました。夏以来全く触れていなかったので夏のプロダクトに対する愛やどう書いたかがあいまいになっていたこと、チーム人数が半分になっていて途方に暮れていたこともあり、新たなスタートを選んだわけです。
その後は、カスタマージャーニーマップやユーザーストーリーの紙芝居を考えたり使用する技術選定したりしてymmtくんがチームに加わったあたりからプロダクト開発が始まりました。

ちなみに、このenPiTでは約2時間の開発時間で1スプリントを回していましたが、最初に設定したゴールを達成できないというスクラム的に良くないことが続くようになっていました。

各スプリントの振り返り-初めてのロングレビュー-

そして、10月末の初めての対面によるロングレビューでは、プロトタイプとしてローカルで話題を表示できる機能を持ったアプリをロングレビューで見せることができました。ロングレビューでは私が発表を行い、それまで懸念とされていた、こっそり見るのが難しいのではないかということについて、意外と気にならず、盛り上がったというとても有意義な結果を得ることができました。

各スプリントの振り返り-11月:Firebaseに躓く-

この時期になるとFirebaseのほうにも取り組み始めます。ただ、これが苦労の連続でした。まず、FirebaseのプロジェクトをFlutter に設定したまではよかったのですが、それをいざ使おうと書くと、エラー、うまくいかないの繰り返し。

そして迎えたロングレビューでは、Firebaseの連携を見せることができませんでした…

また、実装機能の優先度を見直すためにコミュニケーションでの困りごとのアンケートもこの時期に行いました。

ちょうどこのころです。V-Challengeのカイゼンチャレンジが起きたのは。

この1か月は、ロングレビューとして見せられる目玉のような進捗を生むことはあまりできなかったのですが、カイゼンチャレンジにおいてはとても濃密な時期であったと振り返ってみて思います。

各スプリントの振り返り-メモってカイゼン-

チームメンバー全員が揃うことが少なかったV-Challenge。前のスプリントで何をやっていたのかを休んでいた人にも共有するために、Discordに議事録を書くようにしました。ちなみに議事録は休んでなかった人にも、前の時間に何をやっていたのかを思い出すのに助かっていました。

各スプリントの振り返り-シェアってカイゼン-

V-Challengeは、当初Androidエミュレータを使うためAndroid Studioを使って開発していたため、それぞれの画面をDiscordで画面共有しながら作業することをしていました。そのため、モブプロのときに見たいコードがすぐにみられなかったり、見せたいコードにすぐに移動できないという問題がありました。そこで、開発するエディタをVS Codeに移行してLive Shareを使うことでカイゼンを図りました。実際、VS CodeでFlutterやAndroidエミュレータを使う環境を構築することは思ったほど難しくありませんでした。なんでもやってみるものですね。

各スプリントの振り返り-Miroってカイゼン-

もはや欠かせないほどにまで定着したV-Challengeの絵文字文化。V-Challengeに絵文字文化が生まれたのもこのころ。一応、以前から付箋に対するリアクションとして絵文字が使用されてきてはいましたが、如何せん絵文字の大きさが変えられないので、ご覧のように小さくなってしまい、どの絵文字かわかりにくいという(かなり致命的な)問題がありました。

改善前

そんなとき、時期としては11月も終わりに差し掛かっていたころに、私がふと三点リーダーに何かリアクションに使えそうなものはないかと漁っていたところ、ちゃんとした絵文字を使えることを発見したのです。ここで発見された絵文字は、付箋に反応できる絵文字とは異なり、とにかく自由度が高いこと!絵文字のサイズを自由自在に変えられることはもちろん、絵文字を重ねたりコピー&ペーストすることもできる、まさに求めていた絵文字でした。

発見後

この絵文字を活用することによって、チーム内の雰囲気は劇的にカイゼンしました。下図のようにKPTの見栄えもよくなり一石二鳥。

画像20

今では、こんなににぎやかなときがあるほど。(深夜テンション)

画像21

各スプリントの振り返り-12月:投稿共有が可能に-

この時期になり、お互いのコードについての勉強会をやったり、Firebaseの権限周りを共有したりして、FlutterやFirebase双方について理解してようやくFirebaseで投稿・共有周りを実装することができました。(最初から勉強会をやっとけという話ではあるかも……)

各スプリントの振り返り-MiroってカイゼンPart2-

また、もともとMiroで前回やったKPTをスプリント始めに見忘れてしまう問題がありました。そこで、私が矢印をSBL(スプリントバックログ)に引っ張っておき、次回Miroを開いたときにKPTへの動線を作っておくことで、前回のTryを生かすことができるようになりました。

矢印

各スプリントの振り返り-1月:プレゼン準備-

年明けになると、機能追加よりも先にプレゼン準備をしました。プレゼン準備はスライドづくりがメインでした。

プレゼンスライド作成では、最初、プレゼンキャンバスを作り、その後5分ごとにそれぞれが担当するスライドを入れ替えて、全スライドを少しずつ作っていくようにしました。これにより、1スプリントでスライドの骨組みを見せられるほど作ることができました。その後、デザインを整えていきました。(ただし、デザインは残業して作りました)

プレゼンが出来上がってからはバグ修正&検索機能追加をする人とプレゼン準備をする人で分担しました。私は、プレゼン用に30秒CMを作成しました。(作成期間:18時間)

また、それに先立って、「しゃべるん」のロゴやV-Challengeのロゴも作りました。つまり、このロゴたち、最後のほうでできたものなんですよ。実は、それまではFlutterのアプリの既定アイコンとアプリ名のままだったんですね。ようやくこのころになってアプリのアイデンティティができた感じです。(遅ッ!)

※余談ですが、「しゃべるん」のネーミングが初めて案として出したのは、10月のロングレビュー後のことでした。その時の案をほぼそのまま使っているのですが、実際に使い始めたのは年明けからでした。それまでは仮称として「ほじょりん」(やはり私が命名)と呼んでいました。その名残がGitHubのリポジトリのURLにも残っています。

チームメンバーの役回り

Wisteria:プロダクトオーナー(PO)としてのまとめ役。愛は人一倍。機能追加のプロ。
pumpcrin:開発面で大いに貢献。バグ修正のプロ。圧倒的発表力。チーム内で一番成長している。
hon-do:チームのムードメーカー的存在。コミュ力強い。他チームへのフィードバックも一番多い。
ymmt:Firebase側のセットアップや開発面で大いに貢献。イケボの持ち主で、Discordに癒しを与えた?

プロダクトに関するリンク等

ここで話が一区切りするので、関連・参考リンクをまとめておきます。

しゃべるん
APKファイル
スライド
30秒CM
GitHub

enPiT
enPiT BizSysD
enPiTビジネスシステムデザイン(筑波大学)
enPiT成果発表会

一年を通して学んだことや知見とか

私はenPiTを通年で受講したので、そろそろ1年を通した話をしようと思います。

5~6月の基礎知識学習

最初に、enPiTでは基礎知識学習期間が設けられていて、この時期に後々役立つと思う技術を学ぶ期間がありました。私は、このときにJavaScriptやReactNative、Firebase Hostingを触っていました。最終的にはメモアプリとアタック25のパネルのゲームをJavaScriptで作り、結構楽しくやってました。
ここでやったReactNativeの親であるReactやFirebase Hostingはのちにほかのところでも使っていて、この時の経験が結構生きています。

これから受講しようと思っている人向けに助言すると、はっきり言って、ここでやることはとても悩ましいと思いますが、自分のやりたいことをやるのが正解な気がします。というのも、ここで学んだ技術が後々のチーム開発で属したチームがどの技術を選定するかは未知数だからです。スマホアプリとWebアプリでの違いもありますし。授業ではRuby on Railsが教材として提供されていましたが、スマホアプリを作る場合はRubyの言語については使いませんから(ただ何でもかんでも役に立たないというわけでもないと思う)。なので、自分が興味があり、挑戦してみたい技術をやってみるといいのではないでしょうか。ちなみに、私の年度はFirebase(Firestore等)を使っているところは多かったように感じます。私のチームでもFirestoreを使いました。

RubyでもTDD

TDD(テスト駆動開発)を和田さんの講義で聞いて、その後、別の授業(データ表現と処理)の課題でRubyのコードを書くときに実践しました。Rubyにもテスティングフレームワークが用意されており、テストコードを書きながら数回ほどTDDサイクルをして無事に課題を完遂することができました。今後もTDDサイクルが使えそうなときは使っていこうと思います。

product愛と困りごと解決

前述しましたが、実は夏は別のプロダクト「ちありん!」を作っていました。「ちありん!」は、講義中別のブラウザを開いて見てしまう問題を解決するため、女の子が応援し、別のことをしだしたら止めてくれる、スタンドアロン型の勉強応援アプリでした。
この夏のプロダクトと秋の「しゃべるん」を比較すると、夏はチーム全体としてプロダクトへの愛が強く出ていたなと思います。一方、秋のほうが困りごとを解決するという意識が強かったですね。この差から得た知見として、プロダクトへの愛が強いほうが開発が加速しやすいのに対し、困りごとに重点が置かれた開発のほうが、解決策の話し合いが増え、チームの親密度向上につながることが得られました。

オンラインでの開発

また、一年を通じて、オンラインでのチーム開発の難しさを実感しました。特に、Discord上でのコミュニケーションの取りにくさや見えないことによるほかの人が何をやっているかの様子がつかみにくいことにはとても苦労しました。しかし、オンラインだからこそ、絵文字での会話やMiroに残して後からいつでも見返せるといったメリットもありました。

この一年を通じて、オンラインでの開発への不安はかなり軽減されたと感じます。まだまだコロナが収束する日は見通せない状況で、原則オンラインだけで事を済ませなければならない情勢が続いていますが、この一年で得た知見は、この先のチーム開発にも大いに生きてくると思います。(なぜならテレワークってコロナ終息後もなくならないような気がするから)

スクラムの本質とは

1月には、スクラムの本質?として、限りなく小さなタスクを短時間で回していくこと、進捗会を短時間で設けることでゴールを達成し、目でわかるものとして1スプリントで最初から最後までのプレゼンの流れを見せることができるという達成感を味わうことができました。

短時間で区切って作業するメリットを実感したので、今後も実践していきたいと思います。

雑談に飢えていた

最近Clubhouseの隆興で雑談が注目されてきて急にいろいろな番組が取り上げてきているけれど(Nスタとか、WBSとか、NEWS ZEROでの落合先生とか、スッキリ!とか、ひるおびとか、Nキャスとか……)、雑談は重要です。1月の残業でプレゼン作ってた時も、1時間くらいは雑談していた時間がありました。(ちなみに雑談途中、Seeeeee:Dの数人も来ていた)enPiTで夏冬の成果発表会の後にSpatial Chatで開かれた懇親会では、かなり遅くまで雑談に耽っていましたね。それぞれ4時間くらい居続けていたと思います。雑談に飢えてたんですね~。人は適度に雑談しないと生きていけないのかもしれない。雑談もチームの親密度+他の受講生や先生方との親密度にも大きく貢献しているのだと思う。今後も雑談できる機会があれば積極的に雑談したいと思う。(ていうかもうしてない?)

まとめ

長々と書いてきましたが、今回のenPiT受講体験記はこの辺で筆を置こうと思います。
気づけば、7000字を超えていたみたいですね……

今回のenPiTでは、自分のチームだけでなく、他のチームが作っていたプロダクトや工夫も各レビューで見れたのが面白かったです。中にはプロダクトがとんでもなく化けていたチームもありましたし。

最後に、今回、最後の成果発表までたどり着けて本当に良かったです。成果発表までたどり着けたのは、チームの力だけでなく、メンターや先生・講師方の助言、そして受講仲間のレビューの賜物であったと思います。

ここで改めて書き置きます。

V-Challengeのみんな、先生・メンター・講師の方々、レビュー等でお世話になった他のチームの方々、成果発表会を聞きに来てくれた方々、そして最後まで読んでくださったあなた、本当にありがとうございました!

この記事が参加している募集

最近の学び

この記事が気に入ったらサポートをしてみませんか?