イマドキのチーム開発が抱える課題とは
従来に比べて現在のビジネスは“ビジネスアイデアを素早く実際に動くアプリケーションにする”、“素早く市場にビジネス価値のあるアプリケーションを提供する”のが非常に重要な要素になっています。そのように目まぐるしく変化するビジネスに対応するには、アプリケーションも素早く変化させる必要があります。有名な例として2009年当時、Flickrは1日に10回もデプロイしていることが話題となりました。「動いているシステムには触るな」という言葉を知っている人であれば、1日に10回もデプロイするのは非常にリスクが高いということがわかると思います。
また、頻繁にデプロイするには、要求・要件の変更管理やソースコードの変更管理、タスクの変更管理、アプリケーションのビルド、テストやバグのテストやバグのトラッキングといった変更やデプロイしたアプリケーションを実際にユーザーがどのように利用しているのか、応答時間などのパフォーマンスの状態はどうなっているのかといった分析もデプロイ同様に素早く行う必要があります。
このようにアプリケーションを開発するには膨大で複雑な情報を管理する必要があり、これらすべてを素早く行うには手で一つ一つ管理しようとするのは非常に困難であり、高いリスクがあります。
ツールを使って解決するのがトレンド
アプリケーション開発に伴うこのようなリスクを低減するために、イマドキのチーム開発では、人手ではなく、ツールの力を活用するのが当たり前になってきました。要求・要件の変更管理やタスクの変更管理、バグのトラッキングといったプロジェクトの状況の把握には課題管理システム(ITS)、ソースコードの変更管理にはバージョンコントロールシステム(VCS)、アプリケーションのビルドには継続的インテグレーション(CI)、応答時間などのパフォーマンス監視には運用監視のツールを使うといった具合です。
これらのツールには、ベンダーが開発した有償のツール以外にOSS(Open Source Software)のツールもあり、多くの現場ではOSSの各ツールを組み合わせてチーム開発に役立てています。
しかし、OSSのツールは基本的に作成者が異なるため、そのツールの思想が異なってしまうという特徴があります。その結果、各ツールが他のツールのデータを管理するというデータの多重管理や、利用する際に一手間必要な連携になってしまうといった問題が発生します。
OSSツールの組み合わせでも問題が……?
具体的に私の体験した内容でご説明しましょう。私は過去に、OSSのITSである「Redmine」とVCS「GitLab」をプラグインで連携させていました。しかし、実際に使ってみると痒いところに手が届かないということがわかったのです。
開発者がGitLabに変更したコードをコミットする際、Redmineで管理しているチケットと紐付けると、Redmineのチケットに変更したコードへのリンクが表示されます。しかし、RedmineはGitLabとは別のGitリポジトリで管理しているため、そのリンク先はGitLabではなく、RedmineのGitリポジトリとなります。その結果、GitLab上でコードの変更に対して行われているコードレビューへRedmineからアクセスできないのです。結局、RedmineのチケットにGitLabの該当コードのURLを手動で記載する、といったようにひと手間かけることをしなければなりませんでした。
ベロシティが37%も向上するイマドキのチーム開発支援ツール
こうした課題の解決策として、要求・要件の変更管理やソースコードの変更管理、タスクの変更管理、アプリケーションのビルド、テストやバグのテストやバグのトラッキング、パフォーマンス監視などにおいて、同一ベンダーによる包括的なツールを採用する現場が増えてきています。
OSSを組み合わせた場合と異なり、同一ベンダーによる包括的なツールでは、データの多重管理がなくなることに加えて、ツールごとに大きくUIが変わらないというメリットもあります。
イマドキのチーム開発では、デベロッパーだけではなく、ビジネスサイドやオペレーションサイドのメンバーとも協調・連携して作業をする必要があります。その際、ツールごとにUIが大きく変わらないという特徴は、ツールを使うハードルを大幅に下げ、それぞれの役割のメンバーが自分の役割に専念でき、ソフトウェアのビジネス価値を最大限に高めることだけに集中できる効果があります。
実際、前節であげた例では、OSSツールの組み合わせから同一ベンダーによる包括的なツールに変えた際、ベロシティ(=決められた期間の中であるチームが届けることができた要求の量)が37%も向上しました。まだこういったチーム開発を支援するツールを体験されていない方には、是非とも一度体験してみることをオススメします。
次回からは、マイクロソフトのチーム開発基盤「Team Foundation Server / Visual Studio Online」活用を例に、チーム開発についてご紹介していきます。
編集協力:ユニゾン
執筆者紹介
TFSUG(Team Foundation Server User Group) 竹林 崇
2009年からアジャイル開発手法を自らの現場に導入と実践してきたことをきっかけに、現在はリーンやアジャイルの考え方で組織や現場をよりよくカイゼンすることを生業としている。もっと成果が出る現場が増えればという想いからコミュニティの主宰や他コミュニティの支援、講演などの活動を実施。TFSUGスタッフ、スクラム道スタッフ。XP祭り2010/2012/2015、Agile Japan 2013、Developers Summit 2013に登壇。個人ブログ「Change the World!」 にてアジャイルソフトウェア開発手法や技術、マネジメントを中心としたTipsを発信中。