Mercari Android チームの @tsuyogoro です。US 版 Mercari Android アプリの開発を担当しています。
今年 1 月に弊社で開催した Mercari Day 2017 において、我々 Android チームは 「High 意識 Android」というお話をしました。
これから数回に分け “High 意識な開発” の実例を紹介していこうと思います。
本シリーズ第一回目では、”ベースにしている考え方” と “東京とサンフランシスコで one source 開発を行った話” を紹介します。
公安 9 課モデル
我々の間には、チームプレーなどという都合のよい言い訳は存在せん。
有るとすればスタンドプレーから生じる、チームワークだけだ。
荒巻大輔, 2002
我々は自分たちのチームワークを “公安 9 課モデル” と名付けており、”各メンバーが最高のスタンドプレーを行うことでチームの成果を最大限にする” 事を念頭に日々業務を行っています。
最高のスタンドプレー
もちろん目指すべき所は “バグが全く無い完璧なコードを素早くリリースし続けること” ですが、それは現実的ではありません。開発しているアプリも決して小さなものではなく、チームメンバーと協力しながら作り上げていくという基本的な部分は、もちろん我々にとっても重要です。
では何が最高のスタンドプレーを実現するか?を考えた時、下記のポイントが重要です。
- 自分自身の作業計画と状況が常にオープンである
- 他のメンバーから見た時に、それらが容易に把握できる状態にある
( PM の経験がある方には特に) 割と当たり前の事かなとは思いますが、 “他人に自分の頭の中を容易に理解してもらう事” は容易ではありません。逆にこれらが不十分な状態で開発を進めていくと、例えば “レビュー困難な Pull Request が発行される” 、 “プロジェクトの進捗を止めてしまう” といった事態に行き着きます。
東京とサンフランシスコ ( SF ) で one source 開発を進めた話
2016 年の夏、16 時間という時差 & 8,300 km の距離を超えて、一つの repository を触り合う開発を行いました。当時メンバーは東京 2 人 & SF 2 人。
実際、最高のスタンドプレーの考え方を崩すこと無くこの開発を進めていく事は、普通の進め方では不可能でした。しかし “やって不可能な事はない” と様々な可能性に挑戦し、その中でも上手く行った 2 つの実例を紹介します。
6:30am standup meeting
東京メンバー 2 人の家庭事情と上手くマッチした事から、毎朝 6:30 より sync ミーティングを行うようになりました (東京メンバーは Google hangout で自宅から、SF メンバーはオフィスから)。
目的は、各メンバーの状況をオープンな状態にすること。目的達成のためのツールとして Trello を一時的に導入しました。社内には別のタスク管理システムが存在しており多少の冗長さもあったのですが、目的達成のための当時最適な手段と判断し導入しました。
なお、これらはプロジェクトが一段落した所で全て終了させています。重要な局面で自分たちのリミッタを外して、最高のアウトプットを出しに全員で取り掛かる、という所がまさに High 意識だったなと感じてます。
東京 <-> SF で 画面共有 code review
16 時間も時差があると github 上でのコードレビューでは一日二往復が限界です。コードの品質に妥協をしたくない我々にとって、このスピードは致命的でした。
そこで、東京と SF 両方が稼働している時間 (私の場合、子供を保育園に送っていった後の数時間) に如何に濃いコミュニケーションを取っていくかが勝負となりました。
これを支えてくれたのが Screen Hero というツールです。海を超えて画面共有をしつつコードレビューを行う、という驚きの技を可能にしてくれました。
Screen Hero の強力な機能は下記の通りです。
- 画面共有をしながら声で会話ができる
- 双方から画面を操作できる (マウスも動かせるし、コードの編集もできる)
これらによって「えっと、ここってなんでこうなんでしたっけ?(カーソルを動かしながら)」であったり「これって、(カタカタカタ) こうした方が良いんじゃないかな?」といった、文章では到底出来ないような会話を行いながらコードレビューを進めることが可能になり、劇的に効率が上がりました。
操作をしている側の名前がこのように表示されます (スクリーンキャプチャの制限上スクリーンをカメラで撮影しています) 。
実際このツールは “ペアプロツール” としても非常に優秀で、8,300 km 離れて居なくても かなり強力です。是非同じオフィスで働いているメンバーと使ってみて下さい。
ちなみにこの頃の私は SF オフィスの稼働が終わる時間に自宅を出て東京のオフィスへ向かうという生活でした。もし “9 時に出社しないと遅刻” というルールが存在したら、色々な事が不可能でした。 All for One (全ては成功のために) で Go Bold (大胆にやろう) に取り組める弊社の環境を上手く活用できている、という点においてもチームの High 意識さが見られますね。
まとめ
第一回目の今回は
- メルカリ Android チームで大事にしている考え方
- その考え方を元に大胆に行動した実例
を紹介しました。
第二回目からは US Mercari に搭載されている機能 (日本版メルカリには未搭載の機能) の解説と共に、技術的な側面から “公安 9 課モデルの実践” を紹介していきます。
このブログ記事についてもっと深く話を聞いてみたい方は、Wantedly よりお気軽に連絡下さい!
メルカリでは Android エンジニアを絶賛大募集中です。