「サービス開発とその進め方」というタイトルで授業をしました

こんにちは、クリエイション開発部の橋本和幸(@funwarioisii)です。今期は同じ本部に橋本さんが3人いたので3倍反応しました。

12月2日に(一昨年私が卒業した)岩手県立大学で、「サービス開発とその進め方」について講義をしました。*1

この記事では「何を提供しようとしたか」「どういう反応が得られたか」を紹介します。 それでは背景から説明していきます。

背景

授業の立て付け

授業の名前はシステムデザインPBLで、デザイン思考を学び、アジャイルに開発してみようというものでした。 外部からの講師を招待し、どういう開発をしているかの話が聞ける授業でもありました。特にアジャイルやデザイン思考など、現在の大学の枠組みで教えることが難しいものを中心に扱う授業でした。

私も学生時代に受講していて、コードを書くというよりモノを作ってる感じがして、つらくも楽しい授業でした。 一方で何か物足りず、何かが欠けていたような気がしていました。 それは「何を作るかの決め方」、つまり企画の話でした。この視点は入社し、働くうちに得られたと思い、授業ではそれを補完することを個人的な目標としました。

発言の気まずさ

大学の授業、特に外部講師の授業を思い出してみると、最後の質問コーナーは気まずい雰囲気が流れがちだったのはどこの大学も同じでしょうか。 明日も顔を合わせる人(同期や後輩など)の前で、ちょっと間の抜けた質問なんかはできないな…という意識が働いたのを思い出します。

また、授業中に講師が学生に問いかけると、みんな無表情でフリーズを起こす、あの時間が苦手でした。話しかける側からすると、理解がどのくらいまでされているのかを知りたいのですが、話しかけられた側はその講師との関係性が1対1ではなく、周りに他の学生がいます。上述の通り明日からのこともあるものですから、油断した返答はできません。緊張した雰囲気が流れます。 授業中に大学で何かを発言するのはリスキーな行為でした。

何を提供しようとしたか

なので、以下の2点を提供するような授業を考えていました。

  1. 授業で話されていない企画の話
  2. 雑に発言できる場

授業で話されていない企画の話

どういう話を提供したかというと、最初に貼ったスライドの通り、サービス開発の進め方についてです。

特にスライドに入れたかったトピックは学生時代にわからなかった、「どうアイデアを出すか」「いいユーザ体験を生むためにコードを書かずにできることは何か」でした。 この2つの話だけをしても仕方がないので、やはりサービス開発全体の話に盛り込む必要があると判断しました。

さらっとサービス開発というものを説明しても良いのですが、自分ごとに考えられると理解が深まると思ったので、シナリオを設定しました。 「サービス開発は知らない人にプレゼント」というのは弊社でよく語られる喩えですが、これを少し改変することで、自分ごととして考えやすくなりそうなので、これを説明の軸にしました。

雑に発言できる場

授業中にリスクなく発言できる場もほしいです。 眠い授業をしたくないし、ひっそり盛り上がると楽しいじゃないですか。 そのため、私は以下の3点が必要だと思っていました。

  • 完全に匿名
  • 盛り上がってる感がある
  • 簡易なリアクションができる

また、最後に質疑応答のコーナーを設ける必要がありました。 大量に質問が来た時に備えて「いいね順に並び替え」があると便利そうでした。

これらを満たしそうな既存のサービスを調べてみたのですが、コメントに投票できそうなものは見つけられませんでした。 なので直前に Flutter Web と Firebase で作りました。 ビルドしたものを Firebase Hosting に置いて、 Firestore を読み書きするシンプルな構成のチャットアプリです。

これを授業前にQRコードとURLをスクリーンに掲出し、案内しました。 画像は授業で使ったものです。

授業で使ったチャットアプリ
授業で使ったチャットアプリ

どういう反応が得られたか

授業後アンケートを担当教員からいただいたので、目を通しました。 すごく熱量の高いコメントが多く、やった意義を強く感じられました。 アンケートに答えてくださり、ありがとうございます。

「授業で話されていない企画の話」について

いただいたコメントから、いくつか紹介させていただくと

品質、提供時間、保守性のバランスについて、品質の良いものだけを作れば良いだけではないとおっしゃられていましたが、実際自分が買う時は一番良いものを買うとはほとんどないにも関わらず、企画する際には一番良いものを考えようとしてしまっていました

このコメントでは普段の自分の購買行動と結びつけ、今回の講義を捉え直しているのが素晴らしいと思いました。私も見落としていた考え方だったので勉強になります。

私は研究活動でも調査や分析に見切りをつけることを苦手としていて,ついつい時間を割いてしまいます.

企画からまた企画への流れなども,開発だけではなく研究へも取り入れることが出来そう

というコメントもありました。研究活動に転用できそうと、自分の中で解釈して他の活動に結びつけようとしている方がいたのはうれしいです。

また、「アイデアの取捨選択」に言及されている方が多かったのは一見、意外でした。 ただ、授業を受けていた頃を思い返すと、私もどれに手を付ければいいのかわからない経験をしていたので納得です。

拝読したコメントから、話したことがうまく伝わったと感じられました。

「雑に発言できる場」について

スマホでの質問システムよかったです.

チャットあると口頭では聞きにくい質問もできるのでありがたかったです。

と、ポジティブな意見がありうれしいです。

また、盛り上がらないだろうと思っていたQ&Aコーナーで挙手してくれる学生さんがいたのは嬉しい誤算でした。

Q&Aで良いなと思ったのは、「このサービスに次に機能を追加するなら何を追加したいですか?」という質問です。 「上部の絵文字ボタンを取る」「他の授業でも使えるようにする」あたりでしょうか。以降の反省点にも書く内容ですが、機能追加の前に、これを活用した授業の再設計から試すのが良いかもしれません。 普段から授業をしている先生方にも聞いてみたいです。

ちなみに、Q&Aもチャットも盛り上がらなかったときのフォールバック先として、「会社員になってわかったこと」コーナーも用意していました。 このコーナーをする必要がない程に、皆さんからの質問をチャットとQ&Aコーナーで頂きました。

反省点

せっかくなのでいくつか反省点も書いておきます。

Q&Aで「学生時代にもっと勉強しておけばよかったと思う科目は?」という質問に対して、私は統計と答えました。その結果、アンケートではちゃんと統計を勉強しようと思います。という回答を頂いていました。 誠に申し訳ないのですが、自分が不真面目だったのが祟っただけで、同じ学年に卒業した同期は、かなりすぐA/Bテストを理解していました。

次に、双方向性のある体験をうまく作れていなかった点です。 双方向性がある講義が必ずしも素晴らしいとは思いませんが、チャットアプリを用意した割に、いささか中途半端なものになってしまいました。30分という時間は長くなく、レスポンスを待つことが難しいというのもありました。

最後に、検証企画に終始してしまった点です。 大きな絵を描いた上で、細かく取り組めるといいのですが、細かい話が多かったかもしれません。

アンケートでコメントを頂けたことで、自分が至らなかった点や期待した点について評価できました。ご回答いただきありがとうございました。 自分が期待した以上に話が伝わり、自分にとって新しい学びが得られました。

また機会があれば、反省点を踏まえて発表したいものです。

最後に

この記事では、授業で企画の話をするために考えたことと、実際にどう授業を設計したかについて説明しました。学生時代から2年弱しか時間が経ってないこともあり、学生に比較的近い目線で彼らが聞きたい話を提供できた実感があります。 PBL関係の授業を設計されている先生や、外部講師として招待された方への参考になればと思います。

また、発表したスライドも公開していますので、御覧ください。時間の都合で十分に議論されていない部分もありますが、進め方においては網羅的に説明しているつもりです。進め方に悩んでいる方の参考になればと思います。

最後の最後に今回の記事でクックパッドのサービス開発が気になった方へ! クックパッドでは、サービス開発に取り組む就業型インターン・そして新卒採用・中途採用を通年で受付けています。 是非下記のウェブサイトよりご応募ください。

info.cookpad.com

*1:リモート授業で、Zoom越しでした。

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/