突撃隣の六本木ヒルズ!@yimajoです。
iOSアプリ開発者に最近の開発スタイルを訊いてまわる「iOSアプリ開発の現場で訊いてみた」待望の7社目に行ってきました。
今回はフリマアプリのメルカリ社。
最近六本木ヒルズにオフィスを移転したとのことで広くて新しいオフィスでした。
訊いてきたこと
インタビューに応じてくださったのはメルカリ社のiOSアプリ担当の@ooba、 @yam86、Androidアプリ担当の@operandoOSでした。
インタビュアーは過去インタビューに応じてくださった@kishikawakatsumiにも同席お願いしました。
執務室に入る前のエントランスはこんな感じ
古いテレビがあったり...
緑の自転車...?
執務室にはいるとバーン!とカフェっぽい
Q.メルカリ社に入った経緯を教えてもらえますか?
-
@ooba
- もともと仕事としてはWindowsアプリを作ったり
- 個人でiOSアプリを作ってた
- メルカリ社の社長山田さんがFacebookでiOSアプリエンジニアを募集してたので声をかけたのがきっかけ
- もともと仕事としてはWindowsアプリを作ったり
-
@yam86
- Wantedlyで応募したのがきっかけ
-
@operandoOS
- 勉強会で山田さんと話したのがきっかけ
- もともとは携帯電話メーカーでQAっぽいことをやってた
Q.メルカリのアプリ名の由来は何ですか?
- ラテン語で"商い"という意味がある
Q.メンバー構成を教えて下さい
- エンジニア全員で20数人くらい
- iOSは3人
- Android3人
- インターンとして参加していた学生が入社してプロデューサになった
- 経営陣がエンジニアなので社員が今エンジニアであってもプロデューサにならないかという話が出る
- インフラ
- 4人
- サーバー
- 残り全員
- コアの部分はphp
- フレームワークはDietCake
- PUSH通知はgoを使っていてオープンソースにしてある
- コアの部分はphp
- 残り全員
他にはデザイナさんが一人
- アプリもWebも印刷物も全部一人で担当
- 自分の趣味をあまり出さず求められるテイストのデザインができるかなり凄腕な女性、とのこと
以下はデザイナさんのデスク周り。スタンディングデスクを使っていつもの仕事風景を撮影させていただきました!
(なぜか仕事風景としてのPhotshopを起動する前にタコとダイオウグソクムシのぬいぐるみを用意してくれました)
Q.バージョン管理システムは何を使ってますか?
- GitHubを使ってる
Q.コードレビューはどのように行ってますか?
- まず流れとしては仕様などが決められるとRedmineでチケットが作られ
- そのチケットに対して1対1でブランチを作る
- Pull Requestを出してマージする際にコードレビューを行っている
Q.ブランチの運用について更に詳しく教えて下さい
- iOSチームはgit flowではなくGitHub flowにしている
- masterからトピックブランチを作って
- リリースブランチは作る
- もちろんhotfix的なものを作ることもある
- Web APIチームはチケット単位でリリース
- Googleカレンダーに登録するとbotがAPIをリリースされる
- 最初は佐々木さんが手動でやっていた(佐々木電子版)
- SlackやRedmineを見てルールを守りつつAPIのリリースをやっていたがGoogleカレンダーに登録することでリリースする仕組みに変えた
- 最初は佐々木さんが手動でやっていた(佐々木電子版)
- Googleカレンダーに登録するとbotがAPIをリリースされる
Q.アプリ仕様の共有はどのようにしてますか?
- プロデューサが要求レベルで決める
- Redmineのチケットに仕様を書き
- より細かいレベルでQiita:Teamに書いている
- Slackに機能ベースのチャンネルを作って議論する
Q.機能に対する工数の見積はどのようにやってますか?
- iOS、Androidチームの両リーダーがざっくり決める
- あとはメンバーと相談したり
- そもそもキャンペーンや時期の関係ですでにリリースするスケジュールが既に決まっている
Q.開発環境の改善とかコミュニケーション改善で自慢したいところは?
- iOSアプリ側はReactiveCocoaを使うようになった
- MVVMを積極的に使うようになった
- Androidチームは@operandoOSが入るまでテストコードがなかったので書いた
- 最近はメンバーがロジック周りのテストコードを少しづつ書いてくれるようになった
- Androidアプリ開発にEclipseを使っていたのでAndroidStudioにした
Q.現状の開発に関する不満点やさらに改善したい点などある?
- 新しく人が入った人がすぐに機能実装できるようにしていきたい(@ooba)
- ViewControllerの実装が厚くなっているので薄くしたい(@yam86)
- 設計がメンバーによってバラバラなので揃えたい(@operandoOS)
Q.どういう人と働きたい?
- 適切なタイミングで相談してくれるような人だと嬉しい
- アプリを使う人の事を考えて作れる人
- 開発手法や設計について議論できる人
社内風景
QAの方がデスク写真撮影のために片付けてくれてる...
まだまだ、人が増やせるスペースがありますね
デンドロビウムの箱がある...
立って打ち合わせしたり立ったまま作業するような机もありますね
さいごに。オレはこう思ったっす
私が生まれた田舎では、自分のものを売る体験というのは限られていて、一つはファミコンのカセットを中古のゲームショップに売るというものと、もう一つはゲームショップに自分のカセットに値段をつけて置かせてもらい、誰かに購入されれば連絡がありショップに行きその金額をもらうというものでした。
後者は単純にショップに買い取ってもらうわけではなく、より多くの利益を得つつ売れそうな値段を自分で付ける行動それ自体が、相場を観察し実証するゲームのような楽しさだったのを覚えています(得た利益でまた違うカセットが買える!)。
話を戻すと、スマートフォンで簡単に売買ができるフリマアプリというのは、もしかしたらそのような楽しさもあるのかもしれないし、住んでいる地域を選ばない良さもあるのかもしれないですね。ということで、興味のある人は聞きに行ってみるといいかもしれません。
(カセットを置かせてもらったショップ、法律的にどうなのか今になって不思議なのですが、記憶の片隅にあるショップ名で検索しても見つからず、もう潰れてしまっているのか、そもそもそういう体験があったと自分が思い込んでいるだけの妄想かもしれません...)
読者プレゼント!!
メルカリステッカーをいただきました!このネタ記事をストックして@yimajoに会ったときに「ステッカー欲しい」と言って下さい。数に限りは有りますが、6月一杯まではステッカーをカバンに入れて持ち歩きます!
さーて次はどこへ行っちゃおうかなー?