【開発インタビュー】爆速!開発〜リリースまで3ヶ月!? Nupp1のスピードを支える開発チームとは
2019年5月22日にリリースした、国内初のフィットネス向けシェアリングサービスNupp1。実はリリースの3ヶ月前には、まだ開発チームはありませんでした!そのような状態から、どのように短期間でサービスをリリースすることができたのか。そして、Nupp1の開発チームをどう作ってきたのか。今の開発チーム社員3名:CTO五所、VP of Engineering八子、そしてエンジニアxマーケティングを担う村田に話を聞きました。
ビジネスとして成立するかの検証はしっかりと、開発は「最短」で
——まずは3人の業務内容を教えてください。
五所:CTOとして技術面を中心にみるほか、全体のシステム設計、カスタマーサポートもしています。Nupp1ではシステム開発のほぼ全てに関わりました。
CTO 五所和哉
八子:僕は開発もしているんですけど、採用とマネジメントも担当しています。Nupp1では、サーバーサイド周りを設計/開発しました。
VP of Engineering 八子 瑛貴
村田:僕は開発とマーケティングに関連したことをちょろっとやっています。開発はフロントとサーバーサイドで機能追加とかしています。
エンジニアxマーケティング 村田昌紀
——Nupp1の開発をスタートしたのはいつ頃ですか?
八子:サービスの起案があったのが2018年12月くらいで、本格的に開発を始めたのは2019年の2月くらいでしたね。
五所:ビジネスとしていけるのかという検証をしっかりしていたこともあって、起案があってから、開発に着手するまでの時間がかかりました。
——3ヶ月弱でサービスリリース!その頃から爆速文化だったんですね!スピード感が早いですが、開発は順調だったのでしょうか?
八子:開発がスタートしたら、サービスリリースまでは、まあ順調だったのではないかなと。すごく苦労したところは、あまりないですね。
五所:そうですね。最初のほうは、欲張って機能が盛り盛りだったんだけど、開発としては、シンプルにした形で出したほうがいいという判断をしたので。
八子:機能を作るのに苦労したというより、エンジニアがどう削りにいくかを考えましたね。
五所:最初にアイデアやデザインを見た時の感想は、「絶対間に合わない」。実装の工数が多くて、時間をかけて人を増やしてやったら作れないものではないけど、最初にそんなに欲張っても仕方ないというわけで、話し合いを重ねて、どんどん削っていきました。
八子:その機能は、まだユーザー数が読めないうちはいらないよね、みたいな。
五所:将来的に必要になるかもしれないけど、「今」はいらないよねっていう。ただ、あとから見てみると、実はあったら良かったかもっていうものとか、あとからやったら工数かかるなっていうものもあるので、一概に削ればいいとはいえないのが開発の面白く、難しいところではあるけど(笑)。
八子:目標としたサービスリリースの時期に、間に合わせることを重視しましたね。
五所:削ったなかには比較的簡単にあとから追加できるものもあって、それは今、すでに結構実装しています。
経営陣にも意見をぶつけられるフランクさ
——みなさん中途入社ですが、Nupp1の環境はどうでしたか?
五所:デザインとかは僕の入社前にすでに決まっていて、それをもとに開発するという話だったんだけど、実際は入社してから、いろいろ一緒に作っていくっていう感覚だった。とはいえ、途中からの参加なので、最初は思うことを一つ言うのにも遠慮する部分はありましたね。そもそもエンジニアって、“言われたものだけをつくる”っていうふうになりがち。そして、僕もそうなりかかった。
でもそんな時には、八子が中心となってチームを越えて話し合う場をつくってくれた。今ではCOOともフランクに話せる環境がある。これはNupp1の大きな特徴だと思う。
八子:開発といっても、他のメンバーとの“壁”はない。最初は僕も受託っていう形でやっていたけど、どういうふうにしていったらいいサービスになるかといったことを、経営陣にもどんどんぶつけて。
五所:僕が技術寄り、八子がマネジメント寄りのものの見方をしているのも大きいですね。
村田:確かに、Nupp1の開発はトップの二人のバランスが良いと感じています。チームとしてはフランクで割となんでも話していい雰囲気がありますよね。「こんな機能があったほうがいいんじゃないか」とか話してる時間は結構楽しいです。
開発スタイルや使用技術について――他のスタートアップにはない、Nupp1ならではの武器とは?
——開発環境についてはどうでしょうか?
五所:フロントエンドには全て React Native を使用しています。具体的には、まず『Nupp1』の Android / iOSアプリ、加えて Web ブラウザで動かすものには React Native Web という技術を使い、全てのコードを React Native で書けるようにしているということ。また TypeScript で厳しい型チェックを行い、それを CI で回すことで、コードに間違いがないかを自動的にチェックしています。
サーバーサイドは Ruby on Rails + GraphQL を使っていますね。個人的には、本当はサーバーサイドも TypeScript で書く Universal TypeScript、という環境にしたかったんだけど、やはり皆が使い慣れている技術だし、開発効率が良い。GraphQL の API 開発が多いので、基本的にはテスト駆動開発。テストが無いとマージできない。
課題としては、今後のスケーラビリティがあります。現在 Heroku 上で動いていて、それなりの費用もかかっているので、そのうち AWS 等に移行したい。レイテンシーの問題もあるし。まだやらなくても大丈夫だけど、これはいつか必ずやるタスクですね。ちなみにインフラは Terraform や Ansible で大部分をコード化しているので、そこまで大変ではない認識でいる。
——なるほど…といっても私にはちょっと難しかったですが!笑 Nupp1で開発の特筆すべき点はどういうところでしょう?
五所:技術的に新しいものは、どんどん取り入れているところ。そして、効率化と自動化はすすんでいますね。
八子:他のスタートアップ企業では、まず使っていないであろうものを五所さんが持ってきてくれるので、楽しみながら開発ができる。本当に、どこで見つけたんだろう? っていうのが常にたくさんある状況(笑)。
五所さんが、嬉しそうに「こんなのあった!」って持ってくるんですよね。僕だけでは知り得ない技術やツールをたくさんもってきてくれるので、それがこのチームで開発することの楽しみの一つでもあったり。
村田:八子さんと被りますが、五所さんが常に新しいもの取り入れているので日々新しい発見があります(笑)。コーディングの面だけでなく、新しい技術に触れる機会が多いってこともエンジニアとしてNupp1で働く良い点なんじゃないかなぁ。
五所:使用例があまりないという大変さはあるけど、頑張っていただいて(笑)。見つけて、いい感じのものはなるべく使っていって、今より良いものを作りたい、良くしていきたいという思いがあるから……。いや、単にやってみたい気持ちも強いかな(笑)。これは、フリーランスのエンジニア時代のような、“受託”スタイルではできないこと。いろいろ試せる環境があって、新しいからこその失敗もあるけど、一緒にやってくれる人がいるっていうのはいいですよね
開発の面白さは「喜びと成長を比例させていける」
——では、開発の面白さを語ってください!
五所:僕らのサービスは、実店舗に対してQRコードが搭載された端末を設置するので、インターネット上で完結するWebサービスとはまた違ったサービス。作ったものがユーザーにすぐ届いて、その結果喜んでくれる人がいるとか、フィードバックが早いサイクルで目に見えるところはこのサービスの開発ならではの面白さだと感じます。
八子:日本初のシステムを作れることに尽きますね。「こういうものがあったらいいよね」って頭のなかで考えたことが、自分たちの手によってどんどん現実世界に落ちてくる。
他のメンバーからは自分では考えたことのない設計もポロポロでてくるので、実現するまでの過程で悩むことも多々あるんだけど、それが楽しいし、面白い。だからこそ実装できたときは達成感があるし、とにかく気持ちいい!
五所:あと、開発の面白さは自分のスキルアップという面もある。やればやるほどスピードがあがっていったり知識が増えていったりして、自分が強くなっていく感じ。RPGをリアルでやっているような。
八子:レベルアップ感はありますよね、確かに。
村田:できなかったことができるようになっていくのはやっぱり楽しいですよね。
五所:そうだね。以前は全然わからなかったことがすぐにわかるようになったり、前は苦労していたことがいつの間にか当たり前にできているような時、「ちょっと成長しているかもしれない」と実感する。仕事に対する喜びと、自身の成長を比例させていける職種だと思います。
村田:それとエンジニアって「人とあんまり話さなくて良い職種」だと思っている人も世の中には結構多いと思うんですが、実装に向けて人と話すことは意外と多いです。でもこの実装に向けて話す時間って結構楽しいんですよね。どんな設計にしようかとか、どんな実装が早そうとか。この話している時間で「お〜、そんな方法があるのか」とか思うこと結構ありますからね。
今後の目標は
——今後の目標と課題について、教えてください。
五所:Nupp1でいうと、ものすごくサクサクにしたい。サクサクのほうが圧倒的に気持ちいいので。これって、エンジニアができることで意外と大きいことかもしれないと思います。
あとは、Nupp1で困っていることや欲しいものって、他の会社でも必要だと思うので、それをオープンソースで提供して、今後の未来に貢献するというか……。そういったことをやっていきたいですね。実際、 弊社では React Native で使えるカレンダーのコンポーネントや、ちょっとした CLI ツールを OSS として公開しています。
八子:どうしたらエンジニアが働きやすく効率的な組織がつくれるんだろうっていうのは、挑戦していきたいこと。これまでの日本の組織って、「エンジニアは別会社」みたいな感じがあるけど、本当はエンジニアのパフォーマンスは組織にあるっていうのを実感してきているので。Nupp1にいて、それを解消する手応えは出始めていると感じます。
村田:とにかく色々な人にNupp1を使って喜んでほしい。そのためなら開発以外のことでも挑戦していきたい。自分はマーケティングのほうにも若干関わらせてもらっているので、より良くサービス向上をし色々な人に届けられるようにしたいですね。
Nupp1のオフィス。開発チームの普段風景です(笑)
ナップワンの開発陣が考える「こんな人と働きたい」
——最後に、どのような人と一緒に働きたいか教えてください。
五所:ビジネスとエンジニアリング、どっちもできる人がいいですね。
村田:サービスに対して熱意を持ってというか、どうしたら使ってくれる人により良いサービスを提供できるかを考えられる人。主体的、自分の意志を持って仕事ができる人が理想的です。
八子:まずは、好奇心旺盛な人。サービスづくりに興味があって、環境に興味があって。あれもこれもやりたい、という人と一緒に働きたいです。でも一方で、技術を尖らして尖らしてっていう人とも働いてみたい。スタートアップということもあって、縦割りではなく、一緒にプロダクトを作ろうという雰囲気に加えて、挑戦しやすい環境にあるから、「横に広い」エンジニアと「技を尖らせる」エンジニア、双方向の人たちと仕事をしていきたいですね。開発にいながらマーケティングも学べるし、技術面では五所がいるから、絶対に学ぶものは多いし、日々ワクワクできるのは保証します! なかなかこういう組織はないと思うので(笑)。
【編集コメント】開発チームの皆さん、ありがとうございました!!正直、マーケティングやPR、営業をしている私からみてみると、エンジニアのみんなの仕事内容はちんぷんかんぷん(笑)なんですけど、みんなで話し合ったことが形になってリリースされた瞬間って、本当に本当に感動するんです。しかもめっちゃはやいんですよ。翌朝だったり翌日だったり… 爆速です。そういう感動をいつも届けてくれる、魅力がいっぱいのNupp1開発チーム!これからもよろしくおねがいします!
アプリダウンロードはこちら(iOS / Android対応)