北大集中講義のハッカソンに参加しました
先月、北海道大学の集中講義としてハッカソンに参加してきました。
技術面での成長はもちろんのこと、これからのプロダクト開発の方針についてもよく考えさせられ、またも大変貴重な経験を積むことができました。
参加の経緯
北大は年2回、夏季と冬季にIT系の集中講義を開いているらしいです。ハッカソンをして技術力向上しつつも単位がもらえるというお得イベントです。もちろん出るしかありません。
参加条件の中に「基礎的なプログラミング能力を有していることが望ましい」とありますが、基本的には情報学でPythonをやっている人なら何とかなると思います。
今回は計5チームがありましたが、話を聞く限りどこのチームにも、ある程度の経験者と全くの開発未経験が良い感じに分散していました。「プログラミングなんて何にも分からないから不安…」という人でも興味とやる気さえあれば大丈夫です(多分)。
プロダクト
ハッカソン発表資料今回のハッカソンのテーマは「北海道Socity5.0」でした。そのテーマの中で私たちは観光振興という課題に目を付けて「NAND」というWebアプリを作成しました(プロダクト名の由来についてはスライドページ5のイメージです)。
簡単に説明すると、道内の「まだ魅力が発見されていないスポット」をリコメンドするようなアプリです。世の中には「道内旅行おススメ10選!」とか「ここに行かなきゃもったいない!」という名所の情報はとうに溢れかえっています。しかし北海道にはまだまだ発見されていない、魅力を備えたスポットがたくさんあるはずです。私たちはもっと多くの人にそれに気が付いてほしいと考えました。
ただし、私たちの主観で勝手に「ここは名所じゃないです」と言われるのは誰も良い気持ちがしないでしょう。そこで私たちはNAVITIMEに助けを求めました。カーナビで有名なあのNAVITIMEです。あちらの会社は目的地検索数のデータを所有しているため、検索数が多い方から切っていけば人気か否かの客観的な根拠を取得できると判断しました。
使用技術
今回私はフロントエンドをメインで担当しました。フロントのメンバーはもう2人いたのですが、ともに開発は未経験であったためReactなどのフレームワークは用いずにおとなしく生JSで挑戦しました。バックエンドは別の2人に担当してもらっていましたが、そちらも開発は未経験だったので現在のレベルで私が教えることのできるスタックをそのまま使いました。
というわけで、なんと自分以外は全員開発未経験というチームでした(競プロerなどはいましたが)。しかも全員B1でした。今までのハッカソンは分からないことがあっても先輩に聞けば何でも解決してくれましたが、今回はそうもいきません。いつかは自分も人に教えられるようにならないとな、とか呑気に考えていたら想像以上に早く来てしまいました…
それでもtakapiroさんにアドバイスをもらいながらなんとかやり遂げました。最初の方はしっかりと計画立てて進めることができていましたが、アクシデントなどで進捗がでないことが重なって、最終日にはちゃんと徹夜しました。自分が経験したことのある実装は何となく段取りも分かっていましたが、初めてのものについては簡単に思えても当てがはずれることが多かったですね。今までのハッカソンの中では最もアウトプットの多い回だったので、とても学びがありました。
UX について思うところ
さて、今回のハッカソンでは技術力以外にもよく注意したものがありました。それはずばりUXです。UXというとデザインの面から言われることが多い(?)気がしますが、もっと広い意味でのユーザーエクスペリメントを意識しました。
それにはこんな経緯がありました。
私は昨年の秋 JPHacks2021 に参加し(参加記はこちら)、北海道・東北ブロックでは見事優勝できたものの、全国大会では一つも賞をもらえないという結果に終わってしまいました。率直にとても残念でした。一体何が原因だったのか不思議に思い、JPHacksを主催した株式会社ギブリーのまっくすさんにコンタクトを取りました。そして今回のハッカソンの期間中にお話を聞いてきました。
敗因について端的に言えば、
- デモをライブでできなかったこと
- ターゲットを絞り切れていなかったこと
の2点が挙げられました。特に2つ目については非常に熱く語っていただき、大変身になるお話でした。そこから私なりに解釈した学びを語っていきたいと思います。
中途半端すぎたら結局誰も喜ばない
まっくすさんとお話しする前、私は「より多くの人が喜ぶプロダクトを目指せばそれでいい」と思ってました。確かにその考え方は誤りではないと思います。しかし大勢の人が喜ぶようなものを制作できることはプロでも非常に難しく、いわば理想論に近いものだと思います。
実際、日本の自動車業界最大手であるトヨタ自動車でもマーケットシェア率は47.7%.です(出典:業界動向サーチ)。これは決してトヨタが低いわけではありません。コトラーは競争地位の類型化を図りましたが、業界シェア率が30~40%.さえあれば、それはリーダーと呼ばれるらしいです(by 経営学)。それでは一体何を目指せばいいのでしょうか。まっくすさんと対談から、私は以下のように考えました。
「100人全員を満足させられなくてもいいから、ただ1人を心から満足させたい」
なんだか若干ポエムっぽくなってしまったのは心外ですが、要するにこういうことなんじゃないかと思います。1人すら喜ばせられずに大勢の人を喜ばせることはできません。そのためにはターゲットとなる人の状況や困っていること、その根底には何をしてほしいという欲求があるのかを丁寧に見極める必要があります。しっかりとユーザーの顔を想像して、これからもプロダクト制作に励んでいきたいと思いました。
このハッカソンを通して得られたこと
話を本筋に戻します。先ほどもお話ししましたが、今回のハッカソンでは特にアウトプット量が多かったため、非常に多くのことを学べました。
1人1人の進捗を見てタスクを割り振りつつ、自分も進捗を生まなければならないことの難しさ
今回は初めてハッカソンでリーダーを務めたわけですが、自分にまだそこまでの技術力がありはしないため、他の人にアドバイスをしつつ自分も学んでコーディングするという同時作業になかなか苦労しました。そのためには適宜PDCAを回していくことが重要だなと思いました。技術的なところ
環境変数、JS、axios/fetch、firebase hosting、herokuのデプロイ方法、**.gitignore、XMLHttpRequest、BootStrap**など、新しく知ったことや、それまでは知っていただけで今回ようやくその役割を理解したものがとても多くありました。アウトプットするためにはある程度体系的に理解しておくことも大切だと思うので、またどんどんインプットもしていきたいですね。主観的に捉えられがちなデータを客観的にみなす
これは私たちのプロダクトが講評者の方々に最も評価されたポイントでした。今回私たちはたまたま「人気スポットか否かをデータに基づいて判別すればいい」と気づくことができたわけですが、これからもそういった考え方を持てるようにするためにも意識的にそれができるようになることが大事だと思います。イメージに縛られない
他のチームでは「高齢者の方にも見やすいように字を大きくして~」という話がありました。私はそれを聞いて「確かにな~」と考えていましたが、講評者の中のお1人が「それは高齢者に対するありがちなイメージですよね」とコメントしました。おそらく私も高齢者をターゲットにするのであれば「フォントサイズやカラーに気を遣えばいいだろう」と考えていたと思います。でも果たしてそれでいいのでしょうか。実はこの問題については自分の中でも答えは見つかっていません。
今月はまた別のハッカソンに出場してみる予定です。
今回学んだことを活かし、より良いプロダクトを制作できるように頑張ります!
終わり
北大集中講義のハッカソンに参加しました
https://usk314.github.io/blog_static/2022/03/05/HU-intensive-lecture/