- 賃貸情報株式会社
- 取締役副社長兼COO
- 遠藤 彰二
「記憶より記録」掲載180万件の不動産サイトの開発を支える徹底した記録文化
今回のソリューション:【JIRA/ジラ】
〜「開発フローの見える化」という課題を解決した「JIRA」の使い方〜
入居決定で引越し祝い金がキャッシュバックされる「キャッシュバック賃貸」は、立ち上げから1年弱で180万件もの物件情報を取り扱うまでに成長した賃貸情報サイトだ。その成長を支えるのは、運営会社である賃貸情報株式会社の「徹底的に記録される開発フロー」だ。
テクノロジーとは一見遠いように思える不動産という業界にありながら、同社にはITツールを駆使し、開発フローを見える化し記録する文化が根付いている。その役割を担うのは、JIRA(ジラ)、HipChat、ConfluenceというAtlassian, Inc. が提供するサービスだ。同一の企業が展開するツールを互いに連携させることで、開発からリリースまでのタスクを簡単に一元管理することが可能になったという。
「良いものを作るためには記憶より記録が重要。JIRA上でチケット化されていないタスクはやらない」と語る同社のCOO遠藤 彰二さんとCTO原 謙治さんに、どのような開発フローで徹底したタスクの記録を実現しているのか、話を聞いた。
リブセンス取締役、Yahoo!への事業売却を経て会社立ち上げ
遠藤 新卒で人材系の会社に入社して1年目で新規事業を作り、子会社化して代表に就任しました。その会社をネオキャリアに売却した後、リブセンスに取締役として参画し、ジョブセンスの運営や新規事業の立ち上げを行いました。
その後ブルームという会社を設立し、フラッシュマーケティングの映画版サービスを立ち上げYahoo!に売却しました。そして、賃貸情報を立ち上げました。
原 大学卒業後、NTTの研究所に就職しました。4年ほど映像系の研究を行った後、2009年にNTTコミュニケーションズに移りました。当時はTwitterが盛り上がっていたので、そのデータを使って何かできないかと考え、BuzzFinder(バズファインダー)というサービスを立ち上げました。
企業が自社の名前やサービス名など興味のあるキーワードを登録して、Twitterでどういうふうにつぶやかれているかを収集しました。言語解析の技術はあったので、その技術と「つぶやき」のデータを組み合わせてサービスにしていました。その後、2014年8月に賃貸情報に参画し現在はCTOを務めています。
業界初のビジネスモデルで、1年で180万物件を扱うまでに成長
遠藤 「キャッシュバック賃貸」は、ユーザーがサイトから問い合わせをして入居が決まると、お祝い金がもらえる賃貸情報サイトです。物件毎に金額が違い、お祝い金が十万円を超える物件も沢山あります。
物件を掲載する不動産会社のメリットは成功報酬で物件を掲載できることで、この仕組みは業界初です。成功報酬型なので、持っている物件をすべて掲載することができます。
そのようなモデルを構築し、1年弱で180万物件を取り扱うまでに成長しました。代表の金氏は上場している不動産企業の元ナンバー2だったので、営業のネットワークを使い、取り扱い不動産物件数を一気に伸ばすことができました。
3,000タスクがチケット化 JIRAで一元管理
遠藤 資金調達をするまではオフィスを持たずに、自宅からであったりリモートアクセスで開発をしていたため、コミュニケーションツールや開発ツールも導入していました。具体的には、アトラシアンのサービスであるHipChat、JIRA、Confluence、です。
HipChatは英語なので非エンジニアのCEOやCFOには使いづらい部分はあったのですが、ITビジネスを立ち上げる上ではエンジニア中心の会社にして採用力を上げていくことが重要だったので、合わせてもらいました。開発周りで使うのはもちろんのこと、気になるニュースを流したり、営業の成約情報を投稿したりしています。営業の成果に関する情報は社内のエンジニアメンバーも盛り上がります。
JIRAに関しては、とにかくタスクをチケット化する文化ができており、過去の累計で3,000近くのタスクがあります。チケットは営業メンバー含め誰でも作ることができ、開発会議で工数とKPIへのインパクトから優先順位がつけられて、実装されるものが決まります。
原 Confluenceはディレクター、エンジニア、デザイナーが使っており、JIRAのチケットを紐づけられたり、他のツールとの連携が非常に便利です。そもそもこの3つのサービスはアトラシアンという同じ会社が作っているので、アカウント1個ですべてを使えて権限も一元管理できるのがいいですね。
開発フローのすべてを可視化
原 何か新機能を開発する場合のフローで言うと、
1.まずディレクターがJIRA上のエピックと呼ばれる場所に、仕様を記載します。
2.次にディレクターが「ワイヤー作成」というタスクのチケットをエピックに紐づけて作ったら、ワイヤーフレームを作成してチケットに添付します。そして、チケットのリンクをHipChatに流しメンバーに確認してもらう。意見等はタスクのコメントにもらうようにして記録を残します。それをもとに修正などを行い、ワイヤーがFixしたらそのチケットを閉じます。
3.その後、デザイナーが「デザイン作成」のチケットを作り、作成したデザインをチケットに添付してHipChatに流しメンバーに確認してもらいます。同じく意見等はタスクのコメントに残し、修正を行いデザインがFixしたらチケットを閉じます。その後、コーディングも同様の流れで進めます。
4.仕様と完成したデザインを元に、エンジニアが開発用のタスクに分解してチケットを作成します。この時に全てストーリーポイント(*)を割り当てて、他のエンジニアにも確認をしてもらいます。実装の細かい部分はGitHubで管理をします。実装が終わり動作確認ができるようになったら、確認用のチケットを作り、HipChatに流しメンバーに確認してもらいます。
(*)スクラム開発における漠然とした時間単位のことで、ある機能を実装するための労力を表す
5.問題がなければ、Githubでプルリクを投げてコードレビューをします。その際にレビューコメントがあれば修正します。問題なくなればリリースが出来るようになるので、チケットに戻ってきてディレクターにリリース許可をもらいます。
6.ディレクターのOKが出たら、デプロイ担当者がチケットを受け取り、デプロイスクリプトを実行します。成功すると自動でHipChatに「成功した」という情報が流れます。そして、本番環境で動いているURLをチケットに貼付けてディレクターに戻します。ディレクターはその情報をアクセス解析ツールなどのメモに残します。
記憶より記録を
遠藤 良いサービスを作るためには、ディレクターが意図したものを確実にリリースする必要があり、意図せぬリリースは無くさなければなりません。そのため、このように開発フローを徹底的に見える化し記録を残すようにしています。「JIRAでチケット化されていないものはやらない」というほどに徹底しており、「言った・言わない」といった議論になることはありません。良いサービスを作るためには「記憶より記録」が重要だと思います。