【ゲストブログ】「先端の開発スタイルの追求」Atlassian Summit 2014 レポート

今回はゲストブログです。9月に米国で開催したアトラシアンサミット2014に参加された荒本様からご寄稿頂きました。どうぞご覧ください!

top3-640x208

Agile Development/DevOpsの推進を担当している荒本です。「クラウドサービスの企画開発プロセスをどう改善すべきか」、「Agile/DevOpsを今後どのように進めるべきなのか」、今後の戦略、方針のヒントを得るために、2014年9月9日〜11日まで、米国カリフォルニア州 サンノゼで開催された『Atlassian Summit 2014』に参加しました。今回で6回目の開催で、年々参加者が増加しSummitの規模が拡大されています。今年はエンドユーザ、アドオンツール開発者、パートナー合わせて2,100名の参加者があり、Atlassianの成長している姿が感じられます。

「For Every Team」

everyterfm
「For Every Team」 ( Atlassian Summit 2014資料より引用)

Atlassianは本社をオーストラリア シドニーに置く、Online collaboration software toolのソフトウェア会社として急速に成長を続けている企業です。Atlassian製品はJIRAをはじめとしてDeveloper Toolの印象がありますが、今回のSummitでは「For every team」をKeywordとして、様々なセッションの中で使われており、共通的なメッセージとなっていました。開発チームの生産性をあげるためだけではなく、開発チームを取り巻く企画チームやヘルプデスクのようなサポートチーム、更に人事や経理などのバックオフィス部門のチームを含めて、会社の全てのチームを対象に生産性をあげることを目指したソフトウェア開発をしていると新たに認識しました。生産性をあげるツールとは、具体的に情報は1カ所に集約し、そこでチームメンバーがコラボレートし、情報のリアルタイム性と見える化を実現する、更に企画チームと開発チームなどのチーム間が共通の環境でコラボレートすることでチーム間の壁を取り払うという環境を与えてくれるということだと思います。

Keynoteが行われたMain Stage会場
Keynoteが行われたMain Stage会場

さて、Atlassian Summitで行われるのセッションは大きく2つに大別されます。Co-Founder、「Developer Tools」 、 「JIRA」、 「Confluence and HipChat」 、 「Service Desk」の4つの製品カテゴリのそれぞれのGeneral Managerが新製品やロードマップなどを発表するKeynoteと、それと並行して5つに分類されたTrackで132ものセッションが行われました。

「ツールはつないで使う」

tool-320x202

Keynoteの詳細な内容は、既に様々な機会で情報が入手できますので、ここでは「Developer Tools」のKeynoteの一部を紹介します。日経SYSTEMS誌 10月号での開発ツールの特集記事の中で、「ツールはつないで使う」というメッセージで、私たちのチームで開発している「KDDI Business ID」サービスのシステム開発の事例を紹介しました。この開発プロジェクトでは、企画チームが作成する要求ドキュメントから、開発チームが開発を行うための、バックログの管理、ソース管理、自動テスト、ビルド、デプロイまでのプロセスをツールで連携させています。今回のSummitでは更にツール間の連携を強化した発表がありました。

コードとチケットステータスの連動 (Atlassian Summit 2014資料より引用)
コードとチケットステータスの連動 (Atlassian Summit 2014資料より引用)

一例としては、チケット管理の「JIRA」とGitリポジトリ管理の「Stash」の連携において、JIRAのチケットからbranchを作成、commit、pull request、mergeなどのGitコマンドをトリガとして、JIRAチケットのワークフローと連動し、チケットのステータスが自動的に遷移します。これによりコードとチケットの状態に一貫性が保たれ、チケットのステータス変更の手間や変更漏れなどを防ぐことができ、正確にコードの状況(開発の状況)をチケットから(企画チームから)把握することができるようになります。

チケットから開発状況を見通す(Atlassian Summit 2014資料より引用)
チケットから開発状況を見通す(Atlassian Summit 2014資料より引用)

更にCIサーバとの連携も進み、JIRAのチケット毎にbranchされて開発されたコードについて、ビルドが成功しているのか/失敗しているのか、また、そのコードが商用環境かステージング環境か、どの環境にデプロイされているのか、まで見通すことができます。Bambooは主に開発者が扱うツールですが、JIRAは企画チーム、運用チームも含めて全てのチームが活用できるツールです。JIRAのチケットを起点として、企画〜開発〜運用がチームを越えて、1ヶ所の同じ情報でプロジェクトを見える化する環境を作ることができます。Agile DevelopmentのScrumにおいて、プロダクトオーナー、スクラムマスター、開発チーム3つの役割が協調しながら短期間のサイクルで継続的にアウトプットを出し続けるためには、プロセスを洗練させていかなければなりません。Scrumチームがそれぞれの役割で協調するために利用するツールはとても重要であり、このような機能の活用がサポートしてくれるでしょう。

Trackセッション

次にKeynote以外のTrackセッションについて紹介します。5つのTrackセッションでは、Atlassian社員やアドオンツール開発のエキスパート(パートナー)、エンドユーザが、自分たちの考えや事例などを発表していました。参加者は自由に自分の聞きたいセッションに参加するというものです。5つのTrackとは、

  • 開発者向けの「Software Teams」
  • Hip ChatやConfluenceを活用したコラボレーション事例を紹介する「Collaboration Teams」
  • カスタマーサポートやナレッジマネジメントに関する「IT Service Teams」
  • チームの規模を拡大させることに関する「Massive Teams」
  • アドオンツール開発者向けの「Platform + APIs」です。

その中で、「Software Teams」のTrackで発表されたセッションの一つを紹介します。

見通しが利かない時のSpikeの有効性

「リスクに対してくさびを打ち込む」
「リスクに対してくさびを打ち込む」

Agile DevelopmentにおけるSpikeの有効性をテーマとしたセッションでした。スピーカーはAtlassianの文書管理ソフト「Confluence」の開発者で、Confluenceの開発現場で実践しています。Spikeとは代表的なAgile Development手法であるエクストリーム・プログラミング(XP)でのプラクティスのひとつで、技術的な不明点がある場合、動くコードを作って実験することで見通しを立てるというものです。"リスクに対してくさびを打ち込む"、という意味合いが由来になっているようです。Agile DevelopmentではWaterfallとは異なり、価値のあるソフトウェアをSprintという短い期間で開発し、フィードバックを得ながら、価値を大きくしていく開発手法であるため、最後までの見通し(予算などの見通し)が効きにくい、あるいはアーキテクチャーをじっくり検討しないままSprintを回してしまうことも場合により有り得ると思います。実際のAtlassianにおけるConfluenceの開発現場では、新しい機能を開発する時には以下の効果を得るためにSpikeを行っているようです。

  • 正確な見積もりを行う
  • Spikeの中での要求を明確にする
  • 未知な事を無くす
  • スコープを定義する
  • 技術的なアプローチをチェックする

また、Spikeを行うことが有効なタスクは、「技術的に難しいタスク」、「他の多くに影響を与えるタスク」、「時間的な制約が厳しいタスク」のようです。私たちの開発チームでもSpikeを取り入れています。プロジェクトを新たに開始する際にはスコープ、期間、予算を明らかにする必要があります。新規システムの開発や新しいテクノロジーを取り入れる場合には、それらを見通すことは容易ではなく、机上で時間を掛けて検討しても精度には限界があります。まずは、時間を掛けずにすぐにやってみることが重要です。Twitter社が発表した別のセッションにおいて、Twitterのイノベーションの源は「実験(試作やA/Bテストなど)」といっていました。3ヶ月間に100もの実験を通してイノベーションを生み続けています。Spikeとは少し異なりますが、時間を掛けずに動くもので検証して判断していくことの重要性は共通するところだと思います。

Atlassian Summit 2014を通して

Atlassian Summitに参加して、各セッションに共通していたことは、プロジェクトマネージャー、開発者、QAなど、開発のプロセスの中にはいくつものタイトルがありますが、それぞれの立場で、テクノロジーを使っていかにビジネスのスピードを上げていくかを、最終的なテーマとしているように感じました。そのような意味では私たち開発チームの資質がますます問われてきています。グローバルで最先端の開発スタイルを実践している発表者の多くが、セッションの中でAgile DevelopmentとContinuous Delivery(継続的デリバリ)をベースとしていて、これらがこれからの開発には必須になってきます。あるセッションの中でプロジェクトの成功に必要な3つのことは、「The Right Process」、「The Right People」、「The Right Tools」と言葉がありました。私たちクラウドサービスの開発においても、Scrumのプロセスで、洗練されたツールを使い、チームの協調を高めて、Agile DevelopmentとContinuous Deliveryを追求していきます。

今後のKDDIの取組みはKDDI Cloud Blogでもご紹介していきますので、こちらもご覧ください。

寄稿者

KDDI株式会社 サービス企画本部 クラウドサービス企画開発部 荒本 実 
KDDI株式会社 サービス企画本部
クラウドサービス企画開発部
荒本 実