段々と風が涼しくなってきて秋の気配を感じている@yimajoです。
第三回目の「iOSアプリ開発の現場で訊いてみた」はヤフー株式会社さんにお邪魔して、ヤフオク! iOSアプリの開発について伺ってきました。
好評だった第一回と第二回のリンクもまとめときますよ。
訊いてきたこと
インタビューに応じてくださったのはヤフー社でiOSのヤフオク!アプリを開発している@mao_nishiと@himara2の二人。
インタビュアーは前回それぞれインタビューに応じてくださった@ninjinkunと@kishikawakatsumiが今回はインタビュアーとして参加しました。
現在、ヤフオク!アプリにはiOS/Androidあわせて25人の開発メンバーが関わっており、@mao_nishiと@himara2の二人でiOSアプリを担当していたようです(現在は@himara2は他のアプリを担当)。
バージョン管理システムは何を使ってる?
- svnを使っていたがGHE(Github Enterprise)に移行していった
- 一部他のチームはGitLabを使っている
ちなみに
- デザイナもGHEを使い始めてる
- 社内でエンジニアは他のリポジトリも見れるようにしている
- 社内製認証ライブラリや広告ライブラリもGHEで共有している
- Organizationでプロジェクトを分けていない
コードレビューをどのように行ってる?
コードレビューのタイミングとしてはGHEでプルリクエストされた際にレビューを行う。
自信がないところはチェックアウトして動作確認する。
そもそもヤフー社はphp文化なので本場のiOS開発者に見て欲しいという欲求があったので、コードレビューをして欲しいという要望は多かった。
ブランチの運用はどのようにやってる?
ヤフオク!アプリでは基本的なgit-flow形式で行っている。
- masterブランチ:リリース済みをreleaseからマージしてる
- developmentブランチ:実装済み機能をfeatureブランチからマージしていく
- featureブランチ:機能ごとにdevelopmentブランチから作る
- releaseブランチ:release時にdevelopmentブランチから作る
- hotfixブランチ:障害対応時にmasterブランチから作るmasterブランチにマージする
Storyboardやプロジェクトファイルなどでコンフリクトが起こらないように工夫してる?
工夫している。Storyboardを触るときに口頭で連絡したり、フロー毎にStoryboardを分割している。
アジャイル開発について
ペアプログラミングはやってる?
- 少しやってみたけど諦めた
- 片方が指摘したことを愚直にやってみるだけになってしまって相補的な関係を築くまでにならなかった
- もう少しチームの底上げができてからやりたい
スモールリリースしてる?どのようなサイクルで申請するかなど具体的なことは決まっている?
- スモールリリースで2週間に一回を目処にしている
- 前は3ヶ月に一回で大きなリリースをしてみたが思ったより良い反応がなかった
ちなみに、iOSは新しいバージョンが出ることでレビュー数がリセットされるからスモールリリースをすることは迷う、とのこと。
スクラムは取り入れてる?
- ヤフオクアプリは取り入れてる
- 保守と開発で2チームに分けている
- 2チームそれぞれにプロダクトオーナーがいる
スクラムマスターは明確に決まっている?
持ち回りではなく固定でスクラムマスターを決めている。
##「開発環境の改善とかコミュニケーション改善を含め、何か自慢したいところ」とかある?
- 外からでもVPNで会社貸与端末を利用できる
- 仕様書はチャットと画面を図にしたものでやりとりしている
- かつては企画の人がアプリの企画をする際もWebっぽいアプリになってしまったが、今は完全にアプリ脳になって企画ができるようになっていると断言できる
- 企画の人を含め競合のアプリを使って研究をしている
- 安易にコーチマークを使ってユーザーに操作を説明するのは"逃げ"
- 会議より会話を重視しているため、会議は少ない
- Hack Dayという大規模な開発イベントが年に2回ある
- 社内SNSなど多くの社内ツールがHack Dayで作られた
- 月二回リモート勤務できる制度があり、かなり使われている印象
- 去年かなり早い段階で行っていたiOS7対応の社内LTが盛り上がったのと、社外に公開しないと勿体無いということで社外に公開すると大好評となった
- BASE6というオシャレな社食がある。夜は社外の人も招待できる。
敷地外にあるBASE6は場所非公開とのこと、こんな秘密の場所に入って行くと...↓
↓急に楽しげなスペースが!!!
↓え?この上にあるお座敷を予約してるんですか!?
↓ヤッター!!! (v´∀`v) ( ̄▽ ̄)
現状の開発に関する不満点やさらに改善したい点などある?
- ヤフオク!アプリはオークションの仕組み自体、長い時間がかかるものなので、今の時代に合うように改善していけたらと思う
- 同じ業務を3年経験すると、違う業務を担当するルールがある
テストはどうやってる?
QAテストはどういうふうにやってる?何人ぐらいでやってる?
- 基本はAndroidとiOSアプリ開発者が互いの端末でQAテストをやってる。
- iOSアプリ開発者自身でQAテストをやってしまうと無茶な使い方をしない
- 大きな変更の時はQA専門の人たちにお願いする
- ただQAの人たちには細かな仕様書が必要になるというネックもある
どのような人と働きたい?
- 最近は転職してきた人の配属希望は叶う場合が多いと思う
- 無茶ぶりされることはあるが適切に権限を渡されるのでそれが合っている人にはやりやすい
- 新卒だった@himara2はiOSアプリ開発に携わりたいという要望を伝えていたので@mao_nishiが一緒に働きたいと思ってチームになった
その他
- Swiftを使いたいメンバーが多い。(UIKitを扱うのではなく)DAOの部分やテストコードからSwiftを使っていくなど部分的に取り入れるのはありかもしれない。
- Qiita:Teamは使ってないがアトラシアンのConfluenceを使ってる。
さいごに。オレはこう思ったっす
今年6月現在、ヤフー社の従業員数は4,860人だそうです。実は今回のインタビューをするまで「この規模の会社では社員が実際にプロダクトのソースコードを書くなんてことは少なく、会議ばかりで常駐してくれる他社の開発パートナーに実際のコードを書いてもらっているのではないか」という勝手なイメージが我々にはありました。
しかし、実際話を聞く限りそのようなイメージとは違い、競合を研究し実際に自分達の手で問題を解決しながらも、自分たちのサービスを出来る限り早く届けるというベンチャー企業と変わらない泥臭い姿がそこにあると感じました。これはいわゆる「君からはコードの匂いがする」というやつでインタビュアー3人とも良い意味で予想を裏切られることになりました。
また、月2回のリモート勤務や開発イベントのHack Day等、組織自体が社員のプロダクトへの取り組みを全力で支援しているという話も羨ましいところですね。
さいごに、ヤフー社はWantedlyで求人を出していてiOSアプリ開発者を募集しているようです。「おいおい、大企業なのにプロダクトの開発に集中できるなんて本当かよ、自分の力を最大限に活かせられるかも」と思った方は実際に話を訊きに行くと良いかもしれません。
↑最後は全員でYのマーク!
読者プレゼント
ヤフオク!ステッカー/ポストカードを頂きました!
この記事をストックして@yimajoと会ったときに「ステッカー欲しいぞい」と言って下さい。数に限りは有りますがなるべく持ち歩きます!「え、ステッカー?何?」って聞き返されたらそれは私ではないということですのでご承知おきください!!
...さーて、次はどこへ行っちゃおうかなー!