ちょっと話題の記事

突撃!隣の開発環境 パート6【ピクシブ編】

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

ban-gohan-pixiv-banner

こんにちは!おおはしりきたけです。早いもので、もう6回目になる突撃!隣の開発環境ですが、パート6の今回は、イラストコミュニケーションサービスpixivで有名なピクシブさんに突撃させてもらいました。インタビューに答えていただいたのは、エンジニアの小芝さんです。小芝さんは最近アニメイトラボの最高技術責任者にも就任されました。

突撃!隣の開発環境とは

技術事例やノウハウなどは、ブログや勉強会などで共有されることが多いと思います。しかし、各社の開発環境開発体制などは意外と共有されていないこと多いと思います。ノウハウの流出になるかもしれませんが、それ以上に、より良い開発を目指している会社さん同士で情報交換を行い、良いチーム、良いプロダクトを作っていくという志の会社さんの為の情報共有のための企画になります。開発環境や開発体制なども技術領域によっても変わってくると思いますが、この突撃!隣のシリーズでは様々な会社さんのイケてるツールの使い方や、仕事が捗る開発体制についてインタビューを行っていく予定です。

pixiv紹介

どんなことをやっているのか?

pv01

pixivさんは「創作活動がもっと楽しくなる場所を作ること」というビジョンを掲げており、イラストコミュニケーションサービスであるpixivをはじめ、ピクシブ百科事典、pixivコミックと言ったサービスやpixivと連携したBOOTHやpixivFACTORYと言った様々なサービスを展開しております。今日現在の時点で、世界220カ国、会員数1400万人、月38億PV という大規模なサービスになっています。また、開発環境エンジニア交換留学などを行ったりと様々な試みをしている会社さんです。

開発環境について

まずは、pixivさんの開発環境について色々と伺っていこうかと思います。

システム構成

メインのサービスであるpixivのフロントはPHPベースで作られており、その他サービスはRuby(Rails)であったり、アプリのバックエンドではScala(play)、広告配信サーバーはGoで作られていたりなど、プロジェクトごとに言語が変わっています。言語自体は、運用ができるかも考慮しインフラメンバー含めてプロジェクトで決めていくことが多いとのことでした、インフラは、主にIDCフロンティアを使っていることが多く、新規のサービスなどではAWSも利用することもあるとのことでした。

開発端末

入社時に希望のPCを購入できるとのことで、各々が好きなPC、モニタを発注して使っているとのことでした。エンジニアは13inchのMBPが多く最近ではディレクターさんもMacを購入することが多くなったとのことでした。デザイナーさんはディスプレイとしてThunderbolt Display‎を使っている人が多かったです。

コミュニケーションツール

プロジェクトを円滑にするために様々なコミュニケーションツールを使うことになります。チャットやチケットの管理、仕様の共有などどのように行っているのか聞いてみました。

チャットツール

ビジネス系のメンバーの方は外部とやりとりすることも多いため、Skype多用しており、エンジニアはidobataを全社的に利用しているとのことでした。また、プロジェクトによってはSlackを試用しているところもあるようです。チャットでは、プロジェクトごとやテーマごとにルームを作っています。設計や相談事の議論の他PR、テスト失敗、エラーなどの通知も流れます。ただ、緊急対応時にはプロジェクト横断でルームに集合して密に声を掛け合いながら調査・対応を進めるなどをしています。

プロジェクト管理ツール

プロジェクトによって様々ですが、githubgitlabのissueを使うことが多く、タスクの管理は、ポストイット等でタスクカンバンで管理されいるところも多かったです。

仕様の共有方法

開発中なプロジェクトではesaを使われることが多くなってきており、pixivさんはエンジニアだけではなく、ビジネスドメインの方やディレクター、デザイナーなど様々な方がいるので、かわいいツールの導入を心がけてきたとのことです。また、後述しますがプロジェクトチームが小さい単位の為、チーム内での仕様の共有などは直接コミュニケーションを密に取りながらやりとりすることが多いとのことでした。

pixivさんの執務室の机は、ユニークな形になっており、全てつながっています。実際背中合わせの方がコミュニケーションをとりやすかったりするので、非常に良い机だと思いました。

pv07

 

リポジトリ

githubgitlabを使っており、2007年からはじめているので、リポジトリ数はgithubが100、gitlabが120という数になっています。運用フローについては、プロジェクトチームで決めることが多いですが、基本的に1リモートリポジトリでのgithub flow的運用です。ブランチを作ってPullRequestを作成、マージ前にコードレビューを依頼、という流れになっているとのことでした。

自動化ツール

CI環境は、基本的にJenkinsを使っている所が多く、Jenkinsも高機能cron用途として利用されていたり、テストをひたすら回していたりするJenkinsがあるとのことでした。また、CircleCIも利用しており、こちらはAndroidなどのテストを回すために利用しているとのことでした。iOSに関しては、beta版の問題などもあるため、Mac MiniでJenkins利用しているということで、iOSは弊社に近い形でした。iOSに関してはテストサービスを利用した場合beta時期の扱いが非常に困りますよね。

デザインツール

ベースはやはりPhotoshopIllustratorなどを利用しているということです。その他Sketchを使ったり、プロトタイプ作成の為にProttを使っているとのことでした。基本的にデザイナさんはgitを利用できるため、素材に関してはgitにpushしてやりとりを行うことが多いとのことでした。プロジェクトチームにデザイナーさんがいて、その中で細かいやりとりができるので、受け渡しはチャットツールで受け渡したりすることもあるそうです。また、デザイナーさん主導でプロジェクトが進むことも多いそうで、取材に行った時に活発に打合せしていたチームは、デザイナーさん主導のチームでした。エンジニアとデザイナーの関係が非常に良いと感じました。

開発体制

開発チーム

pixivは大きくpixivというサービスがありpixivの中でサブチームに分かれていたり、その他様々なプロジェクトチームがあります。開発部には約50人程度いて、1チーム5名以下で構成されており、デザイン1〜2名、エンジニア2〜3名、ディレクター1名という構成のチームが多いとのことで、小さいチームで素早く回している感じが分かります。アサインに関しては基本的に兼任は無いようにしているとのことでした。

開発プロセスについて

朝は10時に集合し、大体1週間スパンで振り返りをしており、デイリーで朝会をやっているが、開発プロセスというほど堅くやっていなくて、自分たちがユーザーにどれだけ現実的に早く提供できるかを見積もってスケジューリングを行っているとのことでした。最近ではディレクターを中心にアジャイルサムライの読書会などもしており根底にはしっかりとアジャイルに関する知識が浸透していると感じました。

写真はタスクカンバンの様子。プロジェクトチーム毎にやりかたは異なりますが、タスクカンバンでやっているプロジェクトチームは多いとのことでした。

pv03

コミュニケーションについて

自由な発言ができる環境づくり、仕事中の態度、議論、ミーティングの時の意見、話し方などポジティブな影響を社員一人一人が意識してコミュニケーションをとっているようで、esaに流れていくる情報なども必ず誰かが見ていたり、ミーティングがあれば興味あるメンバーが参加してきたりと、受け身ではなく能動的な人が多いので、コミュニケーションをとらなきゃという意識が少なく済んでいるのかと思います。また、メンバーの年齢が比較的若く、家賃補助制度を利用しているメンバーも多く(8割程度)会社の近くに住んでいる人も多いため、仕事が終わった後は、社内でスプラトゥーンスマブラをやったりしてオフのコミュニケーションもしっかりと取れているとのことでした。

写真は、打合せスペース。頻繁に打合せが行われていたりします。

pv04

テストについて

PHPUnitなどのxUnit系や。RubyだとRSpecを使ってるものもあります。このあたりは次のチャレンジということで、基本的にはUnitTestと、ドッグフーティングを行っており、デイリーで使ったり、普段からテスト版を使ったり。あとリリース前には社内全員に呼びかけてレビューなどを行っているとのことでした。

その他

pixivさんではその他情報共有のために以下のような勉強会や共有会を行っているとのことでした。

社内勉強会

毎週、社内勉強会が行われており、小一時間で持ち回りのトークと飛び入りのLTなどが開催されています

技術会議

こちらも毎週行われており、技術職メンバーが全員揃って、プロジェクトの情報共有、トピックの共有や表彰などが行われています。

写真はサービスのTシャツを着ているエンジニアの方です。サービス愛を感じます!

pv07

今回登場したツール

コミュニケーション

自動化

テスト

デザイン

  • ドロワーツール:Sketch
  • プロトタイピングツール:Prott

※pixivさんでは、上記以外にも様々なツールを利用しております。上記はインタビュー時に伺った内容のものを記載しています。

まとめ

第6回目はpixivさんに突撃させてもらいました。pixivというサービスを中心に様々なサービスが展開されており、それを少人数のチームでスピード感持って開発しているという印象でした。サービスの横断的な連携も共有会やこまめなコミュニケーションでとれており、特に印象的だったのはポジティブな影響を社員一人一人が意識してコミュニケーションをとっているという部分でした。忙しくなったりするとネガティブになりがちですが、意識1つでも変わってくるものだと思います。

最後に写真を取らせていただきました。左から小芝さん、そして私です。お忙しいところありがとうございました!!

pv02

参考リンク

http://www.pixiv.net/

http://inside.pixiv.net/entry/2015/06/05/150000

http://news.mynavi.jp/news/2015/05/25/458/

http://ascii.jp/elem/000/000/844/844678/index-2.html

http://recruit.pixiv.net/system