こんにちは、Peer Lodgeのエンジニアの斎藤克哉です。
2019年夏に未経験ながらエンジニアとしてPeer Lodgeにジョインし、「 Peer Radio」 という本音で話せる音声SNSアプリや、「キクカチ」という営業DXサービスの運用・開発を行ってきました。
本記事では、未経験、独学、さらにはリモートワークという状況の中、ユーザーに愛されるようなプロダクトを目指す上で重要に感じたこと、参考にしてきたものを紹介していきます。
これからユーザーに愛されるプロダクトを作るぞ!という方の参考になったら幸いです!!!
目次
紹介の前に
参考にしたものを紹介する前に、まずは我々がこれまで開発してきたプロダクトの話をさせていただきます。
Peer Radioは、いいね数や再生回数などの見えない、本音で話せる音声SNSです。
日常生活の中で、誰かに聞いて欲しいけど言うことができない悩みや何気ない話を、周りの目線を気にせずに吐き出せて、同じような話題や悩みを持つ人に聞いてもらえたり、自分と同じような悩みを持つ人の話を聞くことができます。
悩みを自分1人で抱えて、表現することができない世界はとても苦しいものだと思うし、僕も昔はそういった表現ができなくて苦しかった時期があったので、今もそのモヤモヤを抱える人たちのためにも自分の気持ちを表現しやすい居場所をこのアプリを使うことで実現できたらと思ってこのアプリを作りました。
ユーザー生成型の音声SNSで、匿名性で、いいねや再生数という概念がなく、悩みを吐き出す場所という、大勢に好まれるようなアプリではないのかも知れないと思いますが、プロダクト開発の構想を始めた2019年から2年が経ち、この間にも多くの課題がありましたが、アプリとしては小規模ながらも愛されるプロダクトになってきました。
今回はこのPeer Radioの開発をしていく過程で、僕が参考にしたものや重要だと感じたことを紹介していきます。
そもそもプロダクト開発とは?
プロダクト開発と言っても、大きい概念すぎて、何から何まで考えればいいのかわからないですよね。
今回はユーザーに愛されるプロダクトを作るという軸でプロダクト開発を大きく2つのステップに分類しました。
- プロダクトをデザインする
- プロダクトを形にする
これら2つのステップは互いに関係しあっていて、どちらか1つでも欠けてしまうとユーザーに愛されるプロダクトはできません。
例えば、どんなにユーザーが使いたいと思うようなプロダクトを考えても、それを形にすることができなければ、それはユーザーにとって良いプロダクトとは言えないでしょう。
反対に、どんなに最新の技術をふんだんに使ったプロダクトでも、ユーザーが使いたくならないプロダクトは、ユーザーにとって良いプロダクトとは言えないでしょう。
これらの2つのステップの両方が満たされているからこそ、ユーザーに愛されるプロダクトとなるのだと思います。
ここからは2つのステップについて詳しく説明していきます。
プロダクトをデザインする
そもそもプロダクトデザインとは何なのでしょうか?
デザインという単語から、プロダクトのUI(ユーザーインターフェース)を定めることを思い浮かべる人も多いかも知れません。
しかし、ここでいうプロダクトデザインは、そういったインターフェースのデザインをすることに加えて、コンセプトをデザインすることも指します。
コンセプトデザインで、プロダクトとのやりとりでどのようにユーザーが行動を変えていくかを決め、インターフェースデザインでそれを仕様書や、グラフィックデザインに落とし込みます。
プロダクトデザインはプロダクトのコアの部分であり、この過程なくしては、愛されるプロダクトを作ることはできないのです。
プロダクトを形にする
プロダクトを形にしていくことは、言い換えればエンジニアリングの部分のことです。
簡単にいうとプロダクトデザインで考えたことを、実際に使ってもらえるモノにしていくための過程のことです。
先ほども述べたように、デザイン部分でどんなに良いアイデアができても、しっかりと形にすることができなければ、ユーザーに愛されるプロダクトにはなりません。
プロダクトを形にする過程は、大きくは設計と実装に分けられ、設計で、プロダクトデザインで出た要件から作り方を考え、実装で、実際にプログラムを書いていきます。
ユーザーに愛されるものになるためには、プロダクトデザインの意図を正確に汲み取って、プロダクトの設計、実装、改善をしていく必要があります。
どうやってプロダクトをデザインする?
プロダクトデザインをしていく中で考えるべきことはたくさんありますが、ユーザーに愛されるプロダクトをつくる上で、最も重要かつ外すことのできないデザインの工程はプロダクトを作るうえで何を達成したいかを定めることだと僕は考えています。
これが定まらないまま、もしくは解像度の低いままでは、チームのメンバーが互いに矛盾した目標を追いかけてしまったり、メンバーごとに成功と失敗の価値観がずれてしまうなど、将来手に負えない問題となる可能性が高くなってしまいます。
このような問題を起こさないためにも、最初に明確な成果を宣言して、チームの共通認識とすることで、迷った時に立ち返れるセーブポイントをつくっておきましょう。
プロダクトのデザインをする上で考えるべきことは他にもたくさんありますが、全部紹介すると長くなってしまうので、ここでは僕がプロダクトデザインを学ぶために参考にした書籍やサイトを紹介します。
行動を変えるデザイン
人の行動がどのように起こっていて、それに対して我々はどのようにモノを作っていくべきかという問いに心理学と行動経済学を応用することでアプローチした本です。何か新しい試みをするたびに何度も読み返してしまいます。
ハマる仕掛け
モノを使う中で人がなぜプロダクトにハマってしまうのかを記した本です。実際に存在するサービスでの例が複数あり、手軽に良いプロダクトを作るための手法を学べます。
デザインブログ
GoodPatchやクックパッドなどの企業デザインブログで、どういう思想でものづくりをしたり、どういう手法でデザインを考えているのかを学び、実際に自分たちのプロダクト開発の際に試してみながら、自分たちにあった手法を取捨選択しながら取り入れていきました。
https://goodpatch.com/blog
https://note.com/cookpad/m/m3e4068b2801b
Apple、Sociomediaヒューマンインターフェースガイドライン
プロダクトのUIを考える上で、どうすれば使いやすいインターフェースになるかを考えるために参考にしました。直感的に、違和感なく操作ができるよう何度も読み返しています。
https://developer.apple.com/design/human-interface-guidelines/
https://www.sociomedia.co.jp/category/shig
参考になる手法などは上記以外にもたくさんあるので、色々と試してユーザーに愛されるプロダクトが作れるようにプロダクトデザインを磨いていきましょう。
どうやってプロダクトを形にしていく?
プロダクトを形づけるためのフェーズでは、様々な問題に直面します。プロダクトデザインで定義した要件に合うような技術をどう選べばいいかとか、どんなデータが必要なのかとか、機能をつくりたいけどどうすれば実装できるのだろうかとか、設計や実装、大きい小さいにかかわらず多くの問題がエンジニアリングの面で出てきます。
プロダクトを設計、実装していく中で重要な工程や考え方はたくさんありますが、個人的にはプロダクトを形にしていく上で最も重要かつ、覚えておくべきことは、こうした多種多様な問題を自分の力で調べて解決する力を育むことに尽きると思います。
多種多様な問題と触れ合うプロダクト開発、さらに日々進歩する技術の世界においては、過去に覚えたことでも今はもう使えなくなっていることもよくありますし、問題があるたびに強いエンジニアに1から10までアドバイスをもらうという訳にもいきません。
こういった問題の解決策を予測し、調べて、最適な解決策を見つけることができる様になれば、今後出会ったことのない問題と直面したとしても、自分の力で素早く切り開くことができる様になるので、どんどん手を動かして、力を育んでいきましょう。
ここからは、問題と直面し自分で調べる際の参考として、僕が実際のプロダクト開発の設計や、実装をしていく中で参考にした書籍やサービスと、それらをどの様に活用したかを紹介していきます。
Progate
最初期にプログラミングとは、のような本当に簡単な概念を理解するために使用しました。実践的な内容が多く存在するわけではなかったので、Progateで早々に基礎を理解して、より実践的な学習をしていくのが良いでしょう。
https://prog-8.com/
絶対に挫折しないiPhoneアプリ開発「超」入門
最初期に基礎的なことを理解することを期待して購入しました。基礎の部分はなんとなくつかめましたが、開発の中でより実践的な知識を求めるにつれて、本に書いてある内容だけではどうしても実装できないことが増えてきて、Webでの情報収集中心になっていきました。
Udemy、Youtube
新しい言語と触れる際に、基礎の基礎を素早く理解することを期待し、動画コンテンツで細かい基礎を身につけていきました。最近はYoutubeなどでも海外の開発者の方がわかりやすく動画をあげられてることが多いですが、日本語のコンテンツは少なかったりするので、Udemyなどでさらっと日本の方の動画で基礎を学ぶのはありだと思います。今でも、初めてのものと触れる時はUdemyで簡単に学ぶことが多いです。
https://www.youtube.com/
https://www.udemy.com/ja/
公式ドキュメント
Swiftや、Firebaseなどの様に言語やサービスを提供をしている公式が出しているドキュメントで簡単な技術理解をしたり、細かい仕様を確認するのに使用しました。英語のドキュメントもスラスラ読めれば、細かいニュアンスなどの理解も早くなると思います。
https://developer.apple.com/swift/
https://firebase.google.com/docs
開発者ブログ
クックパッドやeurekaの開発者ブログなど企業の開発者ブログをよく参考にしてました。ピンポイントでやりたいことと近い技術の説明をよくしていたりと、実践的な技術の説明が多く、技術面だけでなく、なぜその企業において、その機能を作ることになったのかなど、デザイン的な面や技術選定の部分も一緒に学ぶことができるのでおすすめです。
https://techlife.cookpad.com/
https://medium.com/eureka-engineering
github
ディレクトリーの構成や、どのフォルダーになんの情報入れてるかを参考にするために使ったり、作りたい機能はどんなコードやサービスを使って書かれていることが多いかなどを確認するために、検索機能を活用しました。
もちろんチームメンバーにレビューしてもらったり、コードを共有する用途でも使用しました。
https://github.co.jp/
Medium
iOSアプリを作るときの構成や、使用する技術の勘所をかなり詳しく説明してる記事があり、アプリの基礎やコーディングのルールの部分を整えるため参考にしました。英語圏の開発者の記事が多く存在し、設計など詳しく記述している記事が多い印象です。
https://medium.com/
Qiita、 Stack Overflow
上記であまり理解できない機能を実装するときは、Qiita、スタックオーバーフローなどを使い、さまざまな人がまとめている情報を取捨選択しつつ閲覧して、実装の参考にしました。エンジニア特有の語彙なども覚えることができるので、段々と公式ドキュメントなどの理解がしやすくなってくると思います。
https://qiita.com/
https://ja.stackoverflow.com/
開発の中でさまざまな技術を調査して、仮説を立ててプログラムを書いてみては壊しを繰り返すことで、技術選定や、実装をしていく際にぶつかるであろう様々な問題を自分の力で調べて解決する力をどんどん育んでいきましょう。
おわりに
今回、僕自身まだまだ勉強中の身ですが、プロダクトをつくる中で大事にすべきところと参考にしたものをデザインとエンジニアリングという二つの点で主観ながら論じさせていただきました。
今回紹介したことは、プロダクトデザイン、エンジニアリングのほんの氷山の一角でしかないとは思いますが、今回の記事を読んでいただいたことで、皆さんの今後のプロダクト開発が少しでも良いものになることを願っています。
Peer Lodgeでは現在も、本音で話せる音声SNS「Peer Radio」の開発や営業DXサービ「キクカチ」の開発を引き続きリモート環境下で行っており、 一緒に事業を伸ばしていってくれるエンジニアメンバーを募集しています。
ご興味お持ち頂けた方、ぜひ一度お話ししましょう🤝!