記事
Compass と Jira
Compass を使えば、Jira バックログの技術的負債に優先順位を付けて減らすことができます
KATIE SILVER
アトラシアンのプリンシパル プロダクト マネージャー
エグゼクティブサマリー
規模や新機能を迅速にリリースする必要性によって生じる技術的負債は、ソフトウェア チームに共通の課題です。チームは技術的負債を引き受けて迅速にリリースしますが、それが多すぎると長期的にはベロシティの低下につながります。社内の開発者プラットフォーム (IDP) である Atlassian Compass は、一元化されたソフトウェア カタログをチームに提供するので、開発者はより迅速に情報を見つけて、ソフトウェアの健全性とパフォーマンスを把握できます。Jira 課題を Compass のカタログと健全性指標にリンクさせることで、チームは一貫した速さで新機能をリリースしつつ、バックログに優先順位を付けて、影響の大きな技術的負債を特定して削減できます。
所要時間
読む時間 8 分。Compass のセットアップには 10 分もかかりません。
対象者
ソフトウェア デリバリー チームの Jira ユーザーなら誰でも対象です。開発者、エンジニア、プロダクト マネージャーなど、誰でも恩恵を受けることができます。
前提条件
- Compass を入手してください。無料で試すことができ、数分で始めることができます。
- Jira を入手してください。アクティブな Jira 企業管理対象プロジェクトを利用できます。
バックログの技術的負債が手に負えませんか。そのような課題を抱えている人は、他にもいます。
構築、計測、学習を迅速に。アジャイル ソフトウェアのチームは信じられない速さでコードをリリースします。その引き換えとなるのが技術的負債です。これは避けられない現象で、コードの脆弱性が増し、チームのスピードが低下します。メンバーは、チームの技術的負債をどの程度理解していますか。バックログに優先順位を付けて技術的負債を減らしながら、継続的に革新的な新機能を提供する方法についてどんなインサイトがありますか。続きを読んで、Jira のバックログの優先度を評価し、チームの技術的負債に対処し、ソフトウェア デリバリーを迅速化する方法をご覧ください。
技術的負債とは、顧客に約束したのに果たされていない未処理の作業、コードの欠陥、またはアジリティを損なう作業項目のことです。
技術的負債の根本原因: スピードと規模
チームは常に、新機能を迅速に提供しなければならないというプレッシャーにさらされています。同時に、製品が増え、チームが大きくなるにつれて、複雑さが増し、組織はサービスの急増とソフトウェアのスプロール化を経験するようになります。所有権が不明確になり、知識のサイロ化が進んで、情報を見つけることが困難になります。製品の複雑さが増し、コードベースが大きくなっても、チームが新機能の提供を優先し続けることにより、バグやパフォーマンスの問題が発生する可能性が高まります。統計の数字は驚くべきものです。
77%
of devs say their codebase grew 5x over the past 3 years [1]
15%
percent of a dev’s day that’s actually spent coding [2]
70%
of devs encounter a knowledge silo at least once a week [3]
1: Big Code in the AI Era, Sourcegraph (Sourcegraph、AI 時代のビッグコード); 2: Today was a good day: The Daily Life of Software Developers (今日は良い一日だった: ソフトウェア開発者の日常); 3: Stack Overflow, Developer Survey 2022 (スタック オーバーフロー、開発者調査 2022)
企業は競争力を維持するために迅速に行動しなければならず、成功を収める企業は規模、収益、製品の幅が拡大するため、事実上すべての組織が技術的負債を効果的に管理する方法を学ばなければなりません。メンバーは、チームの技術的負債をどの程度理解していますか。
Compass を使ってバックログに優先順位を付け、技術的負債を減らす
アトラシアンでは、当社のチームが構築・運用しているすべてのサービス、ライブラリ、API、その他のソフトウェア コンポーネントのカタログを一元管理するために Compass を使用しています。Compass により、チームはソフトウェア カタログを使用して、サービスの所有権を簡単に追跡したり、組織全体のデータをつなげたり、当社のソフトウェアの健全性を明らかにしたりできます。これらのインサイトにより、チームは効果的に作業の優先順位を決め、迅速に行動し、高品質のコードを維持できます。これらのインサイトを利用して今技術的負債に適切に対処することは、今後のより高いベロシティにつながります。
この記事では、アトラシアンが開発者エクスペリエンスのプラットフォームである Compass を使用して技術的負債を減らし、Jira のバックログに優先順位を付ける方法を紹介します。
Compass は、チームが作業の影響を理解し、効果的に計画を立てるのに役立ちます
Compass はアトラシアンの開発者エクスペリエンスのプラットフォームで、一般に社内開発者プラットフォーム (IDP) としても知られています。Compass は、アトラシアンのマイクロサービスのジャーニーを支援し、開発者エクスペリエンスを合理化するために作成されました。Compass は、開発者が情報やインサイトをより迅速に見つけられるようにし、本番環境に至る過程を早めることで、開発者の日々の煩わしさを軽減します。
カタログ
ソフトウェア・コンポーネントの包括的なカタログで認知的負荷を軽減
健全性
健全性のスコアカードを適用し、ポリシーを作成して周知し、開発者エクスペリエンスを向上
拡張性
重要なサービスの詳細情報をリンクさせて検索時間を節約し、コンテキストの切り替えを減らす
テンプレート
事前構築済みのソフトウェア・テンプレートを使用することで、一貫性の確立を自動化し、本番までの時間を短縮
Compass のコンポーネントは、チームがソフトウェアをカタログ化して理解するための一元的な方法を提供します。コンポーネントは、サービス、ライブラリ、ML モデルなど、リポジトリにあるあらゆるものです。これらのものを Jira でネイティブにリンクさせて、バックログの課題がその課題の影響を受ける実際のソフトウェアに関連付けられるようにできます。これは、作業の影響とそれがソフトウェアの全体像にどう関係するかをチームが理解するのに役立ちます。
アトラシアンのプラットフォーム エンジニアリング チームは Compass を利用して、優れた開発者エクスペリエンスとエンジニアリング文化を維持するのに役立つ情報、標準、プラクティスを一元化しています。これは、自律的なチーム、明確な標準とプラクティス、明確なサービスの所有権、検索時間の短縮につながります。
Compass を数分で使い始める: カタログ、メトリック、スコアカードを設定して始めましょう
Compass は、次の簡単なステップに従って数分で使い始めることができます。(1) コンポーネントをインポートする、(2) コンポーネントを所有するチームを割り当てる、(3) スコアカードを設定する。
ステップ 1: 現在コンポーネントがある場所からコンポーネントをインポートする
ほとんどのチームにとって、これは Github や Bitbucket などのソース コード管理 (SCM) ツールに接続するか、Jira プロジェクトにリンクされたリポジトリをインポートすることを意味します。また、CSV ファイルやこれらの方法を組み合わせたものからコンポーネントをインポートして、開発者が構築し、保守するあらゆるものの包括的なカタログをすばやく作成することもできます。
現在コンポーネントがある場所からコンポーネントをインポートして、数分で Compass を使い始めることができます。ほとんどのチームにとって、これは Github や Bitbucket などのソース コード管理 (SCM) ツールに接続するか、Jira プロジェクトにリンクされたリポジトリをインポートすることを意味します。また、CSV ファイルやこれらの方法を組み合わせたものからコンポーネントをインポートして、開発者が構築し、保守するあらゆるものの包括的なカタログをすばやく作成することもできます。
ステップ 2: チームをコンポーネントの所有者として割り当てる
通常、各コンポーネントには、その運用を主に担当するチームを 1 つ割り当てます。各コンポーネントにオーナー チームを割り当てることは、自律性の文化を育み、開発者が関連情報を常に把握する上で役立ちます。また、そうすることでメンバーやリーダーが不在でも、エキスパートが各コンポーネントに対応できます。Compass はチームの定義にアトラシアンのディレクトリを使っているため、Jira にある既存のチームはすべて利用できます。
コンポーネント カタログがあれば、組織内の開発者は、サービスやライブラリに関連付けられたドキュメンテーションや最近の CI/CD アクティビティをすばやく見つけることができます。これにより、情報の検索に費やす時間が短縮され、セルフサービスで利用できるようになった情報を探すための中断がなくなるため、開発者の生産性が向上します。
SCM が接続されると、Compass はデプロイなどのイベントを自動的に検出し、アクティビティ フィードに集約します。Compass は、リポジトリのイベントに基づいて、デプロイの頻度やビルドの成功率など、複数のすぐに使える主要なメトリックを自動的に計算します。DORA メトリックを設定することができ、指定したコンポーネントにおける未解決のセキュリティの脆弱性数などのカスタムデータを追跡することもできます。
ステップ 3: コンポーネントに標準を適用するため、スコアカードを設定する
カタログへの入力とメトリックの入力が終わったら、スコアカードを使い始めることができます。スコアカードは標準を作成し、それを組織全体のコンポーネントに適用するために使用されます。スコアカードでは、コンポーネント メトリックとフィールド データに対する任意の目標を設定できます。これは、ソフトウェア コンポーネントの健全性を維持し、チームが推奨されるプラクティスに従う上で役立ちます。Compass にはすぐに使えるデフォルトのスコアカードがいくつか付属しており、コンポーネントの準備や DevOps の健全性など、追跡することが推奨されるメトリックが含まれています。独自のカスタム スコアカードを作成することもできます。コンポーネントのどのスコアカードが不合格になっているかがわかれば、どんな技術的負債に対処する必要があるかがわかります。
上記の例に続けて、指定した期間に未解決のセキュリティの脆弱性が複数あると不合格になるカスタム スコアカードを使ってセキュリティに取り組んでみましょう。セキュリティの脆弱性は、技術的負債の典型的な例です。まず、セキュリティの脆弱性を追跡するメトリックを作成し、さまざまなコンポーネントの適切なソースからプルするようにそのメトリックを設定します。
次に、上部ナビゲーションバーの [健全性] の下にある [スコアカード] タブに移動します。[スコアカードを作成] をクリックして詳細を記入し、作成したセキュリティの脆弱性のメトリックをスコアカードの基準として必ず追加します。指定した期間に未解決のセキュリティの脆弱性が複数ある場合、スコアカードが不合格になるとしましょう。これは、ソフトウェアの運用状態にとって重要な階層 1 のサービスに適した選択です。演算子を「指定の値以下」に設定し、値を 1 に設定します。重みを 100% に設定して [作成] をクリックすると、一元的にセキュリティ関連のリスクを追跡し、ソフトウェアの健全性を改善するための明確なアクションをチームに示せるようになります。
実際に行う時には、複数のスコアカードがさまざまな標準を測定するように設定して、技術的負債を包括的に把握します。
Compass を Jira とリンクさせる: 影響の大きい技術的負債を特定し、バックログに優先順位を付ける
Compass が設定されたので、技術的負債の特定と対応を始めるために必要なものがすべて揃いました。まず、左側のナビゲーション バーの [コンポーネント] をクリックし、右上のドロップダウン フィールドをチェックして、Jira プロジェクトが Compass コンポーネントにオプトインされていることを確認します。オプトインしたら、「Compass コンポーネント」と表示されるはずです。
次に、Compass に戻ってスコアカードを調べます。スコアカードがリスクにさらされている、またはすでに不合格になっている分野を特定し、チームの優先事項に基づいて、解決すべき最も重要な問題を決定します。[健全性] の UI で特定のスコアカードを表示して、該当するすべてのコンポーネントの測定状況を確認できます。オーナー チームでさらに絞り込んで、自分のコンポーネントのスコアを正確に把握し、注意が必要な技術的負債を特定できます。
DevOps 健全性の組み込みのスコアカードを使った別の例を考えてみましょう。チームのコンポーネントを見直していて、デプロイ頻度の基準を満たしていないものがいくつかあることに気付きます。スコアカードは週のデプロイ数が 5 未満の場合に定義されており、一部のコンポーネントの週のデプロイ数が 1 か 2 しかないことに気付きます。これは調査を必要とする潜在的な課題です。もしかすると、ビルド プロセスやデプロイメント パイプラインに問題があるのかもしれず、チームがタスクで技術的な困難を経験しているのかもしれません。いずれにしても、これは対処するに値する技術的負債です。
バックログに戻って、デプロイが遅いというこの問題に対処する既存の課題があるかどうか確認します。既存の課題がない場合は、Compass のスコアカード ページで直接新しい課題を作成できます。それらの課題に適切な Compass コンポーネントがタグ付けされていることを確認して、整理された状態を保ち、バックログの影響を直接追跡できるようにします。
Jira の課題ビューでは、それらの課題を次のスプリントに自信を持って組み込んだり、カンバン ボードに追加したりできます。課題が優先度の高い技術的負債であることや、行った作業がソフトウェア アーキテクチャのパフォーマンスに影響を及ぼすことを知ることができます。チームが課題を解決したら、DevOps 健全性のスコアカードに戻って、時間と共にデプロイ頻度が改善された記録を確認できます。これは、リーダーシップを示し、チームに仕事の価値を説明するための素晴らしい視覚資料です。
要約: Compass を使って Jira のバックログに優先順位を付け、技術的負債を減らす
最新のソフトウェア デリバリーでは技術的負債を避けることはできませんが、優れたチームは、影響の大きな技術的負債に優先順位を付けて高い信頼性を維持しながら、革新的な新機能を一貫したベロシティでリリースする方法を知っています。Jira 課題を Compass の一元化されたコンポーネント カタログにリンクさせることで、チームは作業への影響に関するインサイトを得ることができ、ほんの数ステップで技術的負債と機能提供の効果的なトレードオフを行うことができます。
- SCM を接続したり、Jira からリポジトリをインポートしたり、CSV ファイルからリポジトリをインポートしたりすることで、Compass でソフトウェア カタログをすばやく設定する
- 組み込みのスコアカードから始めて、メトリックやその他のデータ ソースを使って独自のスコアカードを作成し、組織の標準やプラクティスに照らしてソフトウェアのパフォーマンスを追跡して、優先度の高い技術的負債を特定する
- Compass を毎週の習慣に取り入れ、技術的負債を「バックログ」から「完了」へと移行させ、インシデントを防止しながら常に新機能を提供する