ワークアイテムフレームワークにおける協業
背景
ワークアイテムとは、より大きなプロジェクトやワークフローの一部として完了すべき個別のタスクまたは作業単位です。目標達成や望ましい成果の実現に寄与する個別の作業要素を表します。ワークアイテムは、アジャイルプランニング、ITSM、セキュリティ管理など、多くのユースケースの一部となっています。 以前は、GitLab にはワークアイテムに対する異なる実装がありました。例として Epic、Issue、Requirement、Incident、Vulnerability があります。このアプローチは、一貫性のない体験のためにユーザーからの不満を招き、Plan ステージは GitLab のすべてのワークアイテムをサポートするフレームワークを構築することを決定しました。このガイドでは、利用可能な機能、その使い方、フレームワークに貢献するための最適なアプローチを説明します。
なぜワークアイテムフレームワークを使うのか?
ワークアイテムフレームワークは、チームが GitLab で作業を計画・整理するためのワークアイテムオブジェクトを作成するための一貫したアプローチを提供します。フレームワークの利用者は、容易に拡張可能で、包括的な標準機能を備えたフレームワークを使う効率性の恩恵を受けられます。
どのような機能が利用可能か?
ワークアイテムフレームワークは 基本のワークアイテムオブジェクト を提供し、ウィジェット を使って機能を拡張するオプションがあります。追加のワークアイテムデータと機能はウィジェット内にカプセル化されています。例えば、WorkItemWidgetAssignees は、ユーザー割り当てを可能にします。
利用可能なウィジェットの一覧は こちら で確認できます。コアのワークアイテムオブジェクトを除き、各ウィジェットはワークアイテムタイプごとにオン/オフを切り替えできます。
ワークアイテムフレームワークは、標準のワークアイテム詳細ビューも提供しており、必要に応じてワークアイテムを Issue 一覧に表示することもできます。
ワークアイテムフレームワークはどこで使われているか?
ワークアイテムフレームワークは現在、Tasks や OKRs を含むいくつかの機能で使用されています。
Issues や Epics のように、既存のオブジェクトをワークアイテムタイプに変換し、新しいものを実装する作業が進行中です。
現在実装されている、または実装中のワークアイテムタイプの包括的なリストは、アーキテクチャブループリント で確認できます。
ワークアイテムフレームワークのロードマップにある機能は何か?
Plan ステージ方向性ページ と私たちの GitLab Issue トラッカー で、計画されている新機能を確認できます。
ワークアイテムフレームワークのスコープ外は何か?
- 私たちの目標は GitLab における一貫性を高めることであり、すべてのワークアイテムは同じワークアイテム詳細ビューを使用すべきです。
- 別々のビューや拡張を構築するのではなく、チームが直接フレームワークに貢献することを推奨します。
はじめ方
まず、ワークアイテムフレームワークが自分の機能にとって適切かを検討する必要があります。ユーザーと、ユーザーが必要とする体験を含めて検討します。そのプロセスについては こちら を参照してください。
すべてのコントリビューションは、Validation backlog および Problem validation フェーズから始まります。これらのフェーズでは、Plan ステージの PM は今後の検証活動について Informed であるべきで、Problem validation 中は Consulted であるべきです。これらは、私たちと協業し、あなたの要望が将来のロードマップ項目と重複していないこと、そして指針となる原則に反していないことを確認するための重要な機会です。
R、A、C、I の意味は何ですか?
| フェーズ | あなたのグループ | Plan ステージ | 説明 |
|---|---|---|---|
| Validation backlog | R, A | I | 問題がワークアイテムフレームワークで解決する価値があるかどうかを判断するには早すぎるため、あなたのグループは Responsible および Accountable として適切な裁量を持ちます。ただし、あなたのグループがワークアイテムフレームワーク が 当該問題に対処する正しい手段 かもしれない と 仮定する 場合には、私たちは Informed であることを求めます。つまり一方向のコミュニケーションです。 |
| Problem validation | R, A | C | 私たちは Consulted であり、既存の調査や類似の問題などを案内できます。私たちがこのフェーズを大切にするのは、潜在的なソリューションによってワークアイテムフレームワークのどれだけの部分が影響を受けるかに影響を与えられる機会だからです。構築される機能の性質に応じて、Plan ステージから 1 名の GM/PM が協業の DRI として選ばれます。 |
このフェーズの終わりに、私たちはあなたのグループと協力してコントリビューションモデルを決定します。
コントリビューションモデル
ワークアイテムフレームワークを使用することを決めた場合、通常はこれは新しいワークアイテムタイプを作成すること、そして/または新しいウィジェットを作成することを意味します。場合によっては、必要なすべての機能がすでにフレームワークに存在することもあります。やった! そうでない場合は、あなたのユースケースのためにフレームワークを拡張する ことができます。
| フェーズ | あなたのグループ | Plan ステージ | 説明 |
|---|---|---|---|
| Solution validation | R, A | C | 私たちは Consulted であり、ソリューションの形作りに関わりたいと考えています。Plan チームのメンバーは、ワークアイテムフレームワークが解決している問題やユースケースについて、より幅広い視点を持っています。PM と UX チームは、ソリューションが可能な限り汎用的になり、1 つ以上のユースケースに価値を提供できるよう形作るのを支援できます。 |
| Build track | R, A | I | 私たちは簡単に上に積み上げていけるフレームワークの構築を目指しており、このフェーズでは Informed であるだけで十分です。ただし、あなたのチームが実装でサポートが必要な場合、私たちが助けになるためにここにいます。 |
新しいワークアイテムタイプの作成
あなたのグループがユーザーの作業を表す特定のワークアイテムタイプを必要とする場合、新しいワークアイテムタイプを作成できます。新しいワークアイテムタイプの作成は、あなたのユースケースに固有のデータとビヘイビアのためのウィジェットを追加する基礎を築きます。例えば、OKR には他のワークアイテムタイプには存在しない 進捗ウィジェット があります。
ソリューション検証と構築計画プロセスの例は、この Epic で確認できます。ここでは PM が Objective と Key Result ワークアイテムタイプで望ましいデータ要素とビヘイビアを定義しました。
技術的な実装プロセスの詳細については、ドキュメント を参照してください。OKR の導入における実装例を以下で確認できます:
- Objective および Key Result ワークアイテムタイプを追加するバックエンドの作業
- 機能フラグの後ろで Objective の作成をサポートするためのバックエンド作業
- Objective の作成をサポートし、Issue 一覧に含めるためのフロントエンド作業
Work Items フレームワークへの貢献
Work Items フレームワークは GitLab における計画と協業の中核にあり、他のチームからの貢献を歓迎しています。新しいウィジェットやデータ要素をうまく統合できるよう、このページでは主な検討事項をまとめています。貢献のスコープに応じてすべての項目に対応する必要はないかもしれませんが、すべてを確認することで、あなたの機能が堅牢で、ユーザーフレンドリーで、GitLab の他の部分と一貫したものになることを確保します。 ヒント: GitLab のワークアイテムアーキテクチャビジョンと エンジニアリングのベストプラクティス に従って、アーキテクチャの整合性を確保しましょう。
一般的な検討事項
| 検討事項 | 詳細 |
|---|---|
| データインタラクション | • クイックアクション: ウィジェットを クイックアクション で更新できることを確認 • GraphQL API 統合: プログラム的なアクセスのためにクエリとミューテーションを提供 • 一括編集のサポート: ウィジェットを一括編集 (例: Issue 向け) に含めることができることを確認 |
| 検索統合 | • グローバル検索への組み込み: GitLab のグローバル検索で発見可能にする (グローバル検索機能リクエスト Issue を開き、該当する詳細を追加) • フィルタリング/ソートオプション: 該当する場合、ボード、リスト、ロードマップに対するフィルター/ソートオプションを追加 • インデックス: データがインデックスされ、迅速な取得が可能であることを確認 • GLQL: 該当する場合、ウィジェットを GitLab Query Language (GLQL) のフィルターオプションとして使用できることを確認 |
| ビュー統合 | • リストとボード: UX が推奨する場合、リストとボードにウィジェット情報を表示し、サイドバー編集とリスト作成機能を提供 • ロードマップと詳細ページ: ロードマップカード、およびワークアイテム詳細ページの適切なセクション (子/リンクされたアイテムを含む) にウィジェットを含める |
| ロールアップと集計 | • 階層ロールアップ: ウィジェットの値が親アイテムにロールアップするかどうかを定義 (例: 重み、進捗) • 集計ルール: 合計、平均、または他の計算を決定する。プランベースのライセンスルールを尊重する • サマリービュー: ロードマップ、ボード、またはサマリーウィジェット上で集計データを明確に表示 |
| 条件付きビヘイビア | • 他のウィジェットとのインタラクション: 他のウィジェットに影響を与えるか、または影響を受けるかを指定 • クローズ時のビヘイビア: ワークアイテムがクローズされたときにロックされるかを決定 • クローン/移動時のデータ保持: ワークアイテムがクローンまたは移動されたときにデータが永続化されるかを定義 |
| システムノートのロギング | • 監査証跡: ウィジェットへのあらゆる変更はシステムノートを作成する必要がある (Epic、Issue、Task など) |
| インポートとエクスポート | • ウィジェットデータの取り扱い: グループ/プロジェクトのインポート、転送、または Issue のインポート/エクスポートでデータがどのように扱われるかを決定 |
| リアルタイム更新 | • ライブ同期: ウィジェットへの変更は、手動更新を必要とせずに、関連するビューに即座に反映される必要がある |
| 権限とロール | • アクセスレベル: ウィジェットが ロールベースアクセス (Guest、Reporter、Developer、Maintainer、Owner) を尊重することを確認 |
| ウィジェットの利用可能性 | • 対応するワークアイテムタイプにおいて、ウィジェットがデフォルトで有効になっていることを確認 (デザインがオプトインのビヘイビアを求めない限り) |
ヒント: 特定の項目が自分のコントリビューションに該当するか不明な場合、またはデザインについて明確化が必要な場合は、Plan UX チーム と Work Items の PM に相談してください。私たちはここにいて、GitLab ユーザーを喜ばせ、Work Items フレームワークにシームレスに適合する機能の出荷を支援します。
ウィジェットの作成または変更
ウィジェットは、ワークアイテムを互いに区別する固有のデータとビヘイビアを包含します。ワークアイテムウィジェットを変更したり新規追加したりする必要がある場合は、技術的な詳細について このページ を参照してください。 日付ウィジェットの導入 における実装例を確認できます。なお、このウィジェットは複数のワークアイテムタイプで使用される予定です。
アイデアのみ
時には、あなたのチームにフレームワークに貢献するキャパシティや専門知識がないこともあります。それで構いません! それでも私たちはあなたの声を聞きたいと考えています。ニーズを記述した Issue を作成し、@gweaver と @amandarueda をタグ付けしてください。
bfd74782)