「10Xらしいエンジニア組織ってどんなものですか?」に現役メンバーがお答えします!

2020/10/21

「10Xらしいエンジニア組織」って、どういうものですか?

これは2020年9月に開催したオンラインイベント「10X Topic #2 10xを実現するエンジニア組織」でも多く寄せられていた質問です。

10Xのバリューは「10xから逆算する」「自律する」「背中を合わせる」の3つ。特にエンジニア組織では、メンバー自らがイシューを見つけ、自走して開発を進めていく体制があります。…と言われて何となくイメージできるものの、具体的にどんな動き方をしているのでしょうか? 10XのCTOである石川洋資と、ソフトウェアエンジニアの坂本和大、二川隆浩に聞きました。


石川 洋資 | @_ishkawa
Co-Founder, 取締役CTO
面白法人カヤック、LINEでの複数の新規事業開発を経て、メルカリ/ソウゾウへ。 メルカリ/ソウゾウではプリンシパルエンジニアを務める。オープンソースプロジェクトへの参加や執筆活動も行っており、2017/2には「Swift実践入門」を出版

坂本 和大 | @kazu0620
Software Engineer
KLabでのソーシャルゲーム開発・個人でのモバイルアプリ開発の経験を経た後、Sansanへ。『Eight』のモバイルアプリ開発にエンジニアリングマネージャー / プロダクトマネージャーとして携わる。

二川 隆浩 | @futabooo
Software Engineer
株式会社ボルテージにて複数のAndroidアプリ開発を経験した後、株式会社エウレカにて「Couples」や「Pairs」の開発を行う傍らDev Process Expertとして開発全体のプロセス改善活動も務め、オンライン結婚相談所「Pairsエンゲージ」の立ち上げ経験を経て10Xにジョイン。技術書典やDroidKaigiなどコミュニティでの活動も積極的に行う。

「クレジットカードを登録」のイシューから、決済代行の仕組みを構築

ー冒頭にもあるように、前回のイベントでも多く寄せられていたのが「10Xらしいエンジニア組織ってどういうものですか?」でした。そこで今回は「具体的に何をやっているのか」にフォーカスを当てて質問したいと思っています。まず、今年3月に入社し、現在は新規パートナーの決済機能を担当している坂本さんから。

坂本:僕が担当しているのは、ネットスーパーアプリの決済機能基盤です。このアプリでは、これまでにリリースしたアプリとは違って僕ら自身がクレジットカードの登録・決済をするためのシステムを提供する必要があります。そのため、裏側では決済代行のサービスを利用しながら、クレジットカードを使った商品の注文・支払いの管理をできるように仕組みをつくっているところです。

ー決済基盤は、Backend開発だけでも業務量が多いイメージです。数ある業務のなかで、どうやって優先順位を決めているんですか?

坂本:まずは石川さんが「クレジットカードを登録する」というイシューを切り、手渡されるところからスタート。そこから何が必要なのかを自分で判断し、開発に着手するという流れです。さらに、クレジットカードを登録して決済するとなると、注文も含めて管理しなくちゃいけない。そのあたりの体験を成立させるためのざっくりとしたフローを作りつつ、決済で問題が起きたときの扱い方や履歴を残す方法を模索し、具体化していきました。


GitHub上でイシューを切り、メンバーをアサイン

ーやりやすかったことは?

坂本:注文フローのように、それなりの大きさの機能を複数人で開発を進めようとすると「サーバーとクライアントのインターフェースはどんなものにしようか?」みたいに色んなことを話し合って調整することになると思います。ちょっとした変更が思わず他の人の作業に影響したり。そこを一人に任せてくれたので、周囲との調整なく一気に進められたのは楽でしたね。

ー石川さんから見て、坂本さんの動き方をどう感じましたか?

石川:決済画面の構成自体は、あらかじめ僕がFigmaでつくっていたものでした。とは言え、それほど解像度が高いものではなかったのですが。当初は、作成した構成をもとに、坂本さんに開発をお願いしつつ、僕がリードして進めていくつもりだったんです。しかし、坂本さんにお任せしたことで、思っていた以上にサクサクと進んでいきました。「自分が下手に関わるより、まるごとお任せしたほうが絶対にいい」と思ったんですよね。

ーサクサクと進んでいるなら、一緒にやってもいいのでは?

石川:決済機能は、仕様が複雑です。ある程度の専門知識も必要なので、前提知識を吸収する時間も確保したほうがいい。一方で、坂本さんは開発を進めながら、決済機能に関する知識を吸収していました。そうすると、開発に関わっていない僕のほうが知識不足になっていく。そんな状態で、仕様だけ指示するのは不自然だと感じたんです。それより、坂本さんにひと通り進めてもらい、疑問があれば一緒に考えるほうがいいと判断しました。


「関連知識が少ない」から、既存サービスを触りまくってTODOに落とし込んだ

ーそして、今年7月に入社したばかりの二川さんです。坂本さんと同じく新規パートナーを担当し、なかでも配送枠を管理するための画面をつくっているんですよね?

二川:はい!買ったものを自宅に届けるのか、近くのスーパーに届けるのか、またはいつごろ取りに行くのかを管理する「配送枠」を担当しています。例えばAmazonで商品を購入すると、決済する時に配送日時を選択することができると思いますが、それと同じものを作るようなイメージです。更に今回の新規事業の場合は配送を行うのもスーパーで働く人たちがすべて調整しています。ところが、お客さんには土日で受け取りたい人が多かったり、お店としては当日にスタッフが休んで対応できないこともある。そこをどうやってフレキシブルに管理するかを考えながら開発しています。

ー二川さんは10Xへ入社して3ヶ月ほどですが、仕様を細かく分解する過程で難しいと感じたところはありましたか?

二川:入社当初はネットスーパーや小売に関する知識が少なかったので、どんな機能があるのか、何をケアしたほうがいいのかがわかりませんでした。なので、まずは情報を集めるところに注力。ShopifyやBASE、STORESなど、ネットスーパーではないけれど、ECプラットフォームとして存在しているサービスに登録し、自分でショップを作ったりしていました。いろいろなサービス、機能に触れながら大きめのイシューを見つけ出し、TODOに落とし込めるレベルまで細かくしてから実装していきましたね。…この話をしながらもまだ見えていない課題はあると思うので。リリース後も、さらに加えたほうがいいものが出てくるんだろうと考えています。



ー新規機能の実装は、既存のものとバッティングする可能性もあります。そういった細い点はどうやって調整したんですか?

二川:すでにあるものというと、イトーヨーカドーさん向けのアプリですね。イトーヨーカドーさんの場合と今回の新規事業の場合では同じ配送枠でも仕様が異なる部分がありました。Stailerを使って機能を提供する上で異なる仕様をいい感じに吸収できる実装を心がけていましたが、既存の実装の経緯でわからない部分があったりして、そういうところはやはり経緯を知っているメンバーと相談しながら進めたところでもあります。

ー二川さんのやり方を聞き、石川さんはどう思いましたか?

石川:二川さんには、サーバーも絡む大きな仕事をやってみてもらいたいと思い、配送枠の予約管理をお願いしました。まるごとお願いした経緯は、先ほどお話しした坂本さんと同じ経緯です。そしてある日、オペレーション用のデモをしようと触ってみたら、お願いしたイシューにない機能もできていて、かつしっかり動いていたので「なるほど、順調なんだな」と(笑)。

ー(笑)。

自律して開発できるポイントは「並列体制」「主体性」

ー話を聞いてみて感じたのですが、10Xのエンジニアは、基本的には何かしらのイシューを持っている?

石川:ですね。10Xのエンジニアはみんな、かなり抽象度の高いイシューを1〜2個持っているんです。例えば「クレジットカードを登録する」とか「配送枠の予約を管理する」とか、大まかなゴールはあるものの、細かな仕様は自分で決めて進めていく。誰かの助けが必要であれば、助けを求める。「チーム全体としてこうしよう」みたいなものはないのですが、一人で自律的にできるかぎりのところまで進めて、チームでやったほうがいいことはみんなで協力して取り掛かるようにしています。

ーその「1〜2個あるイシュー」は、どうやって見つけるんですか?基本的には、石川さんがイシューを渡す?

石川:イシュー自体は、そこらじゅうにある状態です。例えば、弊社の事業である「Stailer」は、多くのコンポーネントから成り立っています。どれから開発を進めればサービスインできるかを考え、各メンバーがイシューを決めているんです。

ー今回は坂本さんと二川さんに、実際にどうやって自律して開発しているのかを聞きました。今の10Xの体制を作るうえで有効だと感じているポイントはどこにありますか?

石川:大きく分けて2つあります。1つ目は、10Xはメンバーが1人でサーバーもクライアントも担当するため、何かを待ったり、連携に時間を使ったりすることなく常に並列で動いている状態なので生産性が高いこと。2つ目は、主体的に動けるのでメンバー自身も仕事が面白くなること。もちろん、すでに決まった仕様のプログラムを書くことも楽しいと思います。ですが、10Xにはプロダクトをつくるのが好きなメンバーが集まっているので「決まったものをやってもらう」だけではもったいない。自分で決めて動けるような余白があれば、責任感も生まれるし、プロダクトづくりも楽しくなると考えて、この体制を続けています。

坂本:余白があるのは、やっぱりモノ作りの醍醐味だなと思います。ひとまず作ってみたけれど、実際に触ってみると「なんか違うな」と感じることも結構あるんですよね。そんなとき、他の人に「どうしますか?」と聞いて返事を待つのではなく、まずは自分で手を動かしてトライアンドエラーして、自分の中で「これだ」と答えを探すことができる環境であることは心地良いな、と日々感じています。

二川:サーバーもクライアントも、もっというとインフラなどの開発全般にも関わろうと思えば関わることができるのが良い点だなと思っています。もちろん全てを最初から1人でやるのは難しいのですが、社内で得意な人が知見をドキュメントに残してくれていたり、実装中わからないことがあればオンラインでもクイックコールなどでサッと会話して解決したりできる環境があるからこそ、幅広い分野にチャレンジできることが楽しいですね

ーなるほど!ありがとうございました!

---

この記事に関連する求人情報
ソフトウェアエンジニア

関連記事
10Xの公開情報では、10Xで働くことに興味をもっていただいた方向けに、10Xのミッション・バリューや、各職種ごとの業務内容や魅力、10Xの目指す姿を紹介している記事をまとめています。
ぜひ、ご覧ください。

オープンオフィスのお知らせ
「10Xに興味がある」「10Xメンバーと話してみたい」「オフィスの雰囲気を感じてみたい」という方向けに隔週でオープンオフィスを開催しています。
10X Open Office申し込みフォーム

RECRUIT

10xへの到達率は、まだ0.1%。
あなたの力が、必要です。

JOIN OUR TEAM

CONTACT

10Xへの取材依頼やお問い合わせはこちらから。

CONTACT US