- 八楽株式会社
- 開発リード
- ヨナス リーデンハグ
コードを見るだけではわからない!開発者の「意図」までを履歴で残す「JIRA」の使い方
今回のソリューション:【JIRA/ジラ】
翻訳管理システム「YarakuZen(ヤラクゼン)」やWebサイト翻訳サービスの「ワールドジャンパー」を運用する八楽株式会社。
同社は、レバノン、アルゼンチン、インドネシアなどの各国から集ったメンバーによる、多様性あふれる組織体だ。スウェーデン出身のヨナス リーデンハグさんもその1人として、5年前に八楽に参画後、開発リーダーを務めている。
同社の8名の開発チームがタスク管理に使っているツールが、「JIRA(ジラ)」だ。アジャイル開発における計画と進捗を一元管理し、そして開発に係る全ての履歴を残せることで、生産性が非常に上がったという。
今回はそんなJIRAの活用法について、リーデンハグさんに詳しくお伺いした。
全く興味のなかった日本 初めての滞在の最終日に、移住を決意
元々、僕はスウェーデンでエンジニアとして、WebサイトやEコマースのプラットフォームの開発をしていました。
日本には、全然興味はなかったんですよね。たまたま兄が日本が大好きで、東京で働いていたんです。それで2007年にバケーションをとって、兄に会いに来ました。それが初めての日本でした。
3週間滞在したのですが、日本がとても好きになりました。それで滞在の最終日に、東京に住むことを決めたんです。
どうしてこんなに急に日本が好きになったのか、説明するのは難しいですが、一言で言えば「雰囲気」だったと思います。何もかもが「ナイスだ」と感じました。
それまでは日本ってアニメやマンガのイメージしかなかったのですが、実際に来てみたら全然違って、とてもあたたかい雰囲気の国だな、と。
人もすごく優しくて、スウェーデン人と似ていてちょっとシャイなところもあって。もちろん文化は全く違いますが、メンタリティーの部分でちょっと共通のものを感じたんです。
退職し、貯金を使って日本へ 言葉を学び、当時3名だった八楽へ参画
スウェーデンに帰国して、すぐに日本での仕事を探し始めましたが、非常に厳しかったんですね。日本語も全くできませんでしたし、ビザの問題や、物理的な距離があることで話がなかなか進まなくて。
それで兄のアドバイスもあって、まずは仕事を辞めて、日本に学生として住むことにしました。奨学金制度と貯金を使って、日本の語学学校で1年半、日本語を学びました。
ある程度日本語もできるようになって、仕事を探し始めました。
最初は直接、企業に応募をしていましたが、あまり返事がなかったんです。そんな時にある英語の採用媒体で八楽のエンジニア募集を見つけて、応募しました。
もともと開発者なのでポジションも合っていましたし、言葉を扱っている企業だったので、複数の言葉を話す自分にはぴったりだな、と感じて。実は日本で初めて面接をした企業が八楽で、そのまま2010年の8月に入社しました。
8名の開発チームの中で、翻訳システムのフロントを担う
当時、八楽にはまだ社員は3名しかいませんでした。前任のエンジニアがドイツに移住するということで、入れ替わりで入社したので最初はエンジニアは僕1人だったんです。PHPを使ったWebアプリケーションの開発をしていました。
その後メンバーも徐々に増えて、今は開発サイドは8名のチームになりました。大きく2チームに分かれていて、UI/UXを担当するチームと、翻訳のエンジンやアルゴリズムを開発するチームです。僕はUI/UXチームで、業務の60〜70%はJavaScriptを使ってフロントの開発を行い、残りの部分でマネジメントをしています。
開発体制をアジャイルに変更 チームで使えるタスク管理ツールを探していた
スウェーデンにいた時は、タスク管理ツールは何も使っていませんでした。一応自分で開発したシンプルな「カンバン」タイプのシステムはありましたが。
八楽に入社して、もう1人エンジニアが加わったタイミングで、まずは「Redmine」を使い始めたんです。9ヶ月ほど使っていましたが、どんどん情報が増えていって、管理しきれなくなっていったんです。
更に、チームの開発体制をアジャイルに変えて、スクラムを組んで進めていこうということになりました。そうすると、Redmineだとスプリントプランニングにはあまり向いていないな、と。
もっと情報をきちんと一元管理するツールを使いたいと思っていました。それで2013年の5月から使い始めたのが「JIRA」です。
▼「JIRA」画面イメージ
アメリカでの事例を見て、JIRAの導入を決定
JIRAは世界的に有名なツールだと思うので、元々なんとなくは知っていました。
他のツールで言うと、例えばPivotal Trackerを個人的に使っていたので検討したんですが、ちょっとシンプルすぎるかな、と。プランニングに特化したツールなので、もう少しコーディングの履歴を残していけるようなものを探していました。
そんな中で、アメリカの様々な企業が使っているITツールを知ることができるWebサイトを見ていた時に、JIRAの事例があって、これでニーズを満たせそうだと。
当時は開発チームは4、5名だったんですが、JIRAは扱いやすいツールなので全員問題なく、すぐに導入できました。
最初、いきなりJIRAから大量の通知メールが届くようになったので驚きましたが(笑)。誰かが何かをする度にメールが飛んできていたのですが、Redmineにはそういう機能はなかったので。でも設定で変えられることをあとで知りました(笑)。
「誰がどうしてこのコードを書いたのか」履歴がすべて残せるのがJIRA
それから2年以上、JIRAを使っています。毎週、開発チームでスプリントミーティングを行って、1週間のタスクの優先順位を決め、工数を見積もって、担当者をアサインし、進めていきます。
JIRAのいいところは、あらゆるコーディングの履歴が残ることです。
JIRAと同じAtlassianが提供しているBitbucketと連携しているので、そこでコミットするとJIRAにもコミットレベルで、すべての状況が反映されます。そしてあらゆるコードの履歴が蓄積されていくんです。
コードだけ見ても、誰がどういう意図でそれを書いたのかはわかりませんよね。それがすべてJIRAに戻ってくればわかるようになっていて、使い始めた2年前からずっと履歴が残っています。
問題解決がスムーズになりますし、ある意味コミュニケーションでもあるんです。8人の開発者がみんなばらばらで開発している中で、誰が過去に何をしたのか、という情報がすべてJIRAに集約されています。
全体の状況を直感的に把握しやすいUI
現時点での状況をオーガナイズするのにも非常に良いと感じています。誰が何をしているのか、しっかり整理されていて誰にでもわかるようになっています。
例えばバグがあったとして、タスクをJIRAで割り込ませて担当者をアサインしておけば、対応が終わった時に通知が来ます。きちんと対応がされているのか、状況が可視化されているんです。
また「Kanban」という機能があり、状況を俯瞰して直感的に判断できるようになっています。
▼「JIRA」のカンバンボード
すべての計画とそれに対する進捗をJIRA上で見ることができ、今、誰がどこまでできていて、本来のスケジュールと比べてどうか、ということまでわかります。今のスプリントを走らせながら、次の週のスプリントの計画についても考えていけるのがいいな、と。
開発まわりのツールをすべて連携させることで、生産性が向上した
JIRAとBitbucket以外にも、同じAtlassianが運営するリポジトリ管理ツールのSource Treeや、チャットツールのSlackも、テストをするためのJenkinsも、すべて連携させています。誰かがどこかで何かをしたら、全部繋がっているので、Slackにその行動が集約されていきます。
この仕組みを作ったおかげで、コミュニケーションが以前と比べて非常に楽になったと思います。
開発者の間だけではなくて、営業サイドもSlackを使っているので、情報共有もスムーズです。
例えば営業マンが何かエラーに気づいた時、以前はすぐにそれを連絡してすぐに対応する体制になっていなかったんですね。でも今は、営業マンがSlackにポストすればエンジニアは必ず気づきますし、対応が終わったかどうか、営業マンもSlack上で判断できます。全体的な生産性が、非常に上がったと思っているんです。
今後も効率をもっと上げて、より良いサービス開発にコミットしていきたいと思っています。