- 講演資料:WEBサービスベンダーのビジネスを支える足回り(Commerble事例)
チームのために何ができるかをコンセプトに開発されたアトラシアン製品群
「アトラシアンを知っている人?」と新村氏は会場へ呼びかけ、同セッションは始まった。本セッションの参加者の多くは、新村氏が予想した以上に社名を知っていたが、たとえアトラシアンという社名は知らない人でも、「JIRA Software」や「Bitbucket」「HipChat」などの製品名は知っているという人も多い。
アトラシアンはオーストラリア・シドニーで2002年に生まれた企業で、創業当時から「チームのために何ができるか。それをコンセプトに製品を開発してきた」と新村氏は説明する。同社のミッションは「あらゆるチームの可能性を解き放つこと」と新村氏。つまり地球上のすべてのチームがソフトウェアの力により人類を未来へ前進させることに貢献していくことをミッションに、チームのコミュニケーションやコラボレーションを実現するツールを提供することで、それを目指していくという。「すでに5万1000社以上の人に使ってもらい、チーム力を高めてもらっている」と新村氏は続ける。
アトラシアンが提供している製品群は次の通り。プロジェクト管理ツール「JIRA Software」「JIRA Core」、リポジトリ管理と継続的デリバリーを実現する「Bitbucket」「Bamboo」、リアルタイムコミュニケーションを実現する「HipChat」、ドキュメント管理ツール「Confluence」、そしてリクエストを時間通りに処理するサービスデスク「JIRA Service Desk」である。
「このように当社ではソフトウェアの開発の流れをチームで進めていくためのツールを提供している。当社からの説明はこれで終わり。ここからは当社製品を導入しているCommerbleの竹原さんにバトンタッチし、Commerble社での活用事例について紹介してもらう」と新村氏は壇上を去り、続いてCommerbleの竹原氏が登壇した。
Commerbleの開発チームが抱えていた課題
CommerbleはクラウドネイティブなマネージドECサービス「EC PaaS」を提供しているWebサービスベンダーである。「本セッションでは、当社のECプラットフォームの開発をどうやって進めているかという話をする」と竹原氏は前置きし、事例の紹介が始まった。
同プラットフォームを初めてリリースしたのは2010年。「そのときはいろんな失敗があった」と竹原氏は振り返る。その時の問題点として上がったのは、ソフトウェア開発においてはあるあるとも言える、要件の粒度がバラバラ、曖昧な役割分担、まとめた動作検証、課題が共有されないなどということだったと言う。そこでリリースに向けた問題の中で、自分自身で変えられることは変えていこうと話し合ったのだそうだ。問題点を改善するために取り入れたのが、朝のスタンドアップミーティング、付箋を使った課題および進捗の共有、リリース状況の可視化、2週間のイテレーションで随時リリースなどだったという。
そんな中、2014年に会社として設立し、開発以外の全部の役割を担う社長とデベロッパー2人でスタート。「今はデベロッパー3人、合計4人の少数精鋭で、コアの機能開発、サブシステムの追加・分割や再構築、顧客用のカスタム開発などのすべてを担っている」と竹原氏は説明する。
「余談だが」と前置きし、竹原氏は「リリースが始まってからが本当の戦いだった」と振り返る。「プロダクト開発は一度作ったら終わりではなく、運用中に生じた実装都合で思わしくない結果が出る部分の改善を行ったり、アーキテクチャレベルでのリファクタリングや作り直しを行ったりした」と明かす。
開発の進め方としては、まずどんな問題があるのか考える・感じることから始まる。「ここが一番の難所。正しい問題を発見できれば、解決することができるかもしれないし、間違えた問題定義をしてしまうと、工程が爆発的に増え、全体最適につながらなくなる。まずはチームでできる限り話し合いながら進める方が、効率が良いと思う」と竹原氏はアドバイスする。
続いて問題を課題に分解する。「ざっくり2~3日で解決できるくらいの小さな粒度に分解すること」と竹原氏。なぜ小さな粒度にするのか。その理由について竹原氏は、解決するのに3カ月もかかるような粒度の大きさだと、「みんなが不安になることに加え、アーキテクチャからのずれも起こってしまうこともある。またレビューが大きすぎてやりにくいなどの問題も出る。さらに日々の達成感が欠落すると、疲れやすくなるからだ」と明かす。
課題が分割できれば、課題を起票する。「先述したようにこれまでは付箋に書いてやっていた」と竹原氏。この段階で担当を決める。課題起票は課題管理としてだけではなく、お互いの褒め合いにも役立つという。
課題がコードを書くことで解決できるものであると仮定すると、ここでコード・テスト作成し、ソースコード管理をして、ビルドとデプロイを行う。ソースコード管理は「CVSなら何でも良い」と竹原氏。現在、竹原氏のチームではGitを使っているとのこと。「ビルドで大事なのは、日々、常に回るようにしておくことと、コードを書いた側からデプロイまでできるようにしておくこと。そしてビルドとデプロイを特別なことと捉えず、日々の作業の一環として扱うことだ」と竹原氏は熱く語る。つまり、課題の起票などの前に、ソース管理用のリポジトリの作成や自動ビルドの構築、テストサーバーの環境の用意、テストサーバーへの自動デプロイの構築を事前に行っておくことが大事になると言う。
アトラシアン製品を導入し、開発をスピードアップ、ビジネスに貢献
ただ、これらのことを愚直にやると、「このコミットは何のためのモノなのか」「ビルドの成果物はどこにあるのか」「今回のデプロイでどの課題が解決するのか」など、わからなくて困ることが起きたと竹原氏は言う。同社のデベロッパーは3人。この少ない労力でこれらの困ったことを起きなくして開発に注力するはどうすればよいのか。
そこで導入したのが、次のようなアトラシアンの製品群である。「課題の起票は『JIRA Software』、課題とコードの紐付けには『Bitbucket』、課題とビルド、課題とデプロイの紐付けには『Bamboo』、そして操作の追跡には『HipChat』を活用している」と竹原氏は説明した。
実際にこの場で「賑わっている感を出したい」という問題を解決するため、ECサイトで注文が完了したらTweetするというプログラムをつくるというデモを実施した。セッションの短い時間の中で課題の起票から実装までを行うため、無事に成功するかどうか聴衆が見守る中、Tweetが完了した際には会場から大きな拍手が沸き起こった。
「愚直にやればすごく困ることが起きる」といったことは、アトラシアンを使いコミットメッセージにイシュー番号を入れるだけで、すべて解決できることを証明するデモだった。「これが最適解だとは思っていない」と竹原氏。例えばチームが30人ぐらいまで大きくなれば、またそのチームに合う方法を検討していくという。「自社ビジネスを加速させるためにデベロッパーもできることはたくさんある。そのためのツールとして私たちは今、アトラシアンの製品を活用している」と力強く語り、竹原氏のデモは終了。
最後にアトラシアンの新村氏が壇上に戻り、「当社製品は、無料で7日間試せるトライアルや、10ユーザーまでなら各製品を10ドルで利用できるスターターライセンスを提供しているので、ぜひ使ってみてほしい」と参加者に呼びかけ、セッションを締めた。
お問い合わせ
アトラシアン株式会社