[go: up one dir, main page]

トピック一覧
Git はソフトウェア開発を簡単にする

Git をアジャイルワークフローに合わせる (またはアジャイルワークフローに Git を合わせる) ための 3 つのヒント

作成者:Laura Daly

Laura は、元プロダクト マーケティング マネージャーとして Jira や Bitbucket などさまざまな製品チームを率いた実績があります。アジャイルのベスト プラクティスについて執筆していないときは、山で嵐と闘ったり、最高の脇道を探し求めたりしています。

DevOps プロジェクト計画テンプレートを無料で使い始める

オープン ツールのアプローチをアプリケーションの開発・管理からデプロイまで適用

アジャイル ソフトウェアと DevOps ソフトウェアの開発チームにとっては、Git は事実上業界標準のバージョン管理システムであり、DevOps ツールチェーンに不可欠な部分です。サポートも十分なこのオープン ソース プロジェクトは柔軟性に富むため、あらゆるソフトウェア チームの要求に沿ったさまざまなワークフローをサポートできます。集中型ではなく分散型であるためパフォーマンス特性が優れており、開発者はローカルでテストを実施したりチームに配布するときにのみ変更を公開したりできる自由を手にします。

柔軟性と配布のメリットだけではありません。Git にはアジャイルと DevOps の各開発チームをサポートして強化する主要な機能があります。Git はアジャイル開発と DevOps 開発のコンポーネントだと考えてください。一体型のリリースと集中型のバージョン管理システムを使用している場合よりもデプロイ パイプラインで変更を迅速に配信できます。Git はアジャイルと DevOps の各チームの働き方 (または理想の働き方) に合わせて機能します。

ヒント 1: タスクを Git ブランチとして考える

機能が具体化され、製品ロードマップに追加され、開発チームの準備が整ったら、Git の出番です。しかし、ここで一歩引いてしまうと、アジャイル機能開発はあっという間に失敗してしまいます。製品、デザイン、QA (品質保証)、エンジニアリング チームで機能キックオフ ミーティングを開催し、どのような機能を作成するか (要件)、プロジェクトのスコープ、完了するために機能を分割して作成すべきタスクは何かについての理解を共有します。ユーザー ストーリーとも呼ばれるこれらのタスクは、その後個々の開発者に割り当てられます。

Git はこの時点で、アジャイル ワークフローに適合し始めます。アトラシアンでは、すべての課題に対して新しいブランチを作成しています。新しい機能でも、バグ修正でも、既存コードにおける小さな改良でも、すべてのコード変更に独自のブランチが割り当てられます。

ブランチングはシンプルで、チームは 1 つの中心的なコード ベース内で簡単にコラボレーションできます。開発者がブランチを作成すると、実質的に分離された固有のコード ベースのバージョンができ上がり、それに変更を加えることができます。アジャイル チームにとってこれは、機能をユーザー ストーリーに、それからブランチに分割することで開発チームが個々にタスクに取り組み、同じコード上でも異なるリポジトリでより効率的に作業できるようになることを意味します。作業の重複はありません。個人が主要なリポジトリからは離れたリポジトリで、小さく分割された作業に集中できるため、開発プロセスの速度を落とすような依存関係が減少します。

プロからのヒント:

Git ブランチには、タスク ブランチ以外の種類もあり、相互排他的ではありません。たとえば、リリースのためのブランチも作成できます。これにより開発者は、将来のリリースに向けて作業している他の開発者の進行を妨げることなく、特定のリリースのためにスケジュールされた作業を安定化して強化できます。

リリース ブランチを作成したら、定期的にメイン ブランチにマージして機能が将来のリリースに含まれるようにします。オーバーヘッドを最小化するには、スケジュールされたリリース日時に可能な限り近いリリース ブランチを作成します。

Git branch detail view | Atlassian agile coach

ヒント 2: 個々にテストできる複数のブランチを活用する

ブランチが完了してコード レビューの準備ができたら、Git はアジャイル開発のワークフローにおけるもう 1 つの主要な役割であるテストを行います。成功を収めるアジャイル チームと DevOps チームは、コード レビューを実施して自動化テストを設定します (継続的なインテグレーションまたは継続的なデリバリー)。開発者はコード レビューとテストのために、ブランチ作業のレビューの準備ができたこととプル リクエストを通じてレビューする必要があることを、簡単にチームの他のメンバーに通知できます。プル リクエストをさらに掻い摘んで説明すると、ブランチの 1 つのテスト準備が整ったのでメイン ブランチにマージしてほしいと他の開発者にリクエストする方法だと言えます。

適切なツールを使用すれば、継続的インテグレーション サーバーを構築し、マージする前にプル リクエストをビルドおよびテストできます。これにより、マージによって問題が発生しないことを確信できます。この確信により、バグ修正や競合の再ターゲットが一般的に容易になります。これは、Git によってブランチが分岐した後のブランチとメイン コード ベースの違いが明確になるためです。

ヒント

メイン ブランチにマージされないまま、長期間実施されているフィーチャー ブランチがある場合、チームのアジャイルさと反復性を損なうおそれがあります。長期間実施されているフィーチャー ブランチがある場合は、実質上、2 つの異なるバージョンのコード ベースが存在することとなり、バグ修正や競合が増えることになります。短期間のフィーチャー ブランチを作成することでこの問題を解決できます。ユーザー ストーリーを小さなタスクに分割する、慎重なスプリント計画を立てる、早期にコードをマージして、ダーク機能としてリリースすることで、短期間のフィーチャー ブランチを作成できます。

ヒント 3: Git はアジャイル開発に透明性と品質を提供する

Git やアジャイルのストーリーは、効率性、テスト、自動化、全体的なアジリティに関するものです。ブランチをメイン ブランチにマージすれば、アジャイル ワークフローは完了です。また、プル リクエストを通じてコードをマージするということは、コードが完了したときに、作業に問題がなく、他のチーム メンバーもコードを終了してリリースの準備ができていると自信を持って把握するための文書があるということです。これが、アジャイル チームをスピーディーに動かして、頻繁にリリースする自信に繋がります。そう、優れたアジャイル チームの印です。

ヒント

アジャイル開発にとっては、定期的なリリース サイクルを採用することが重要です。アジャイル ワークフローで Git を動かすには、メインが常にゴーサインであることを確認する必要があります。つまり、機能の準備が整っていなければ次のリリースまで待たなければなりません。より短いリリース サイクルを採用している場合、これは大きな問題にはならないはずです。

トピック一覧
Git はソフトウェア開発を簡単にする

Git をアジャイルワークフローに合わせる (またはアジャイルワークフローに Git を合わせる) ための 3 つのヒント

作成者:Laura Daly

Laura は、元プロダクト マーケティング マネージャーとして Jira や Bitbucket などさまざまな製品チームを率いた実績があります。アジャイルのベスト プラクティスについて執筆していないときは、山で嵐と闘ったり、最高の脇道を探し求めたりしています。

DevOps プロジェクト計画テンプレートを無料で使い始める

オープン ツールのアプローチをアプリケーションの開発・管理からデプロイまで適用

アジャイル ソフトウェアと DevOps ソフトウェアの開発チームにとっては、Git は事実上業界標準のバージョン管理システムであり、DevOps ツールチェーンに不可欠な部分です。サポートも十分なこのオープン ソース プロジェクトは柔軟性に富むため、あらゆるソフトウェア チームの要求に沿ったさまざまなワークフローをサポートできます。集中型ではなく分散型であるためパフォーマンス特性が優れており、開発者はローカルでテストを実施したりチームに配布するときにのみ変更を公開したりできる自由を手にします。

柔軟性と配布のメリットだけではありません。Git にはアジャイルと DevOps の各開発チームをサポートして強化する主要な機能があります。Git はアジャイル開発と DevOps 開発のコンポーネントだと考えてください。一体型のリリースと集中型のバージョン管理システムを使用している場合よりもデプロイ パイプラインで変更を迅速に配信できます。Git はアジャイルと DevOps の各チームの働き方 (または理想の働き方) に合わせて機能します。

ヒント 1: タスクを Git ブランチとして考える

機能が具体化され、製品ロードマップに追加され、開発チームの準備が整ったら、Git の出番です。しかし、ここで一歩引いてしまうと、アジャイル機能開発はあっという間に失敗してしまいます。製品、デザイン、QA (品質保証)、エンジニアリング チームで機能キックオフ ミーティングを開催し、どのような機能を作成するか (要件)、プロジェクトのスコープ、完了するために機能を分割して作成すべきタスクは何かについての理解を共有します。ユーザー ストーリーとも呼ばれるこれらのタスクは、その後個々の開発者に割り当てられます。

Git はこの時点で、アジャイル ワークフローに適合し始めます。アトラシアンでは、すべての課題に対して新しいブランチを作成しています。新しい機能でも、バグ修正でも、既存コードにおける小さな改良でも、すべてのコード変更に独自のブランチが割り当てられます。

ブランチングはシンプルで、チームは 1 つの中心的なコード ベース内で簡単にコラボレーションできます。開発者がブランチを作成すると、実質的に分離された固有のコード ベースのバージョンができ上がり、それに変更を加えることができます。アジャイル チームにとってこれは、機能をユーザー ストーリーに、それからブランチに分割することで開発チームが個々にタスクに取り組み、同じコード上でも異なるリポジトリでより効率的に作業できるようになることを意味します。作業の重複はありません。個人が主要なリポジトリからは離れたリポジトリで、小さく分割された作業に集中できるため、開発プロセスの速度を落とすような依存関係が減少します。

プロからのヒント:

Git ブランチには、タスク ブランチ以外の種類もあり、相互排他的ではありません。たとえば、リリースのためのブランチも作成できます。これにより開発者は、将来のリリースに向けて作業している他の開発者の進行を妨げることなく、特定のリリースのためにスケジュールされた作業を安定化して強化できます。

リリース ブランチを作成したら、定期的にメイン ブランチにマージして機能が将来のリリースに含まれるようにします。オーバーヘッドを最小化するには、スケジュールされたリリース日時に可能な限り近いリリース ブランチを作成します。

Git branch detail view | Atlassian agile coach

ヒント 2: 個々にテストできる複数のブランチを活用する

ブランチが完了してコード レビューの準備ができたら、Git はアジャイル開発のワークフローにおけるもう 1 つの主要な役割であるテストを行います。成功を収めるアジャイル チームと DevOps チームは、コード レビューを実施して自動化テストを設定します (継続的なインテグレーションまたは継続的なデリバリー)。開発者はコード レビューとテストのために、ブランチ作業のレビューの準備ができたこととプル リクエストを通じてレビューする必要があることを、簡単にチームの他のメンバーに通知できます。プル リクエストをさらに掻い摘んで説明すると、ブランチの 1 つのテスト準備が整ったのでメイン ブランチにマージしてほしいと他の開発者にリクエストする方法だと言えます。

適切なツールを使用すれば、継続的インテグレーション サーバーを構築し、マージする前にプル リクエストをビルドおよびテストできます。これにより、マージによって問題が発生しないことを確信できます。この確信により、バグ修正や競合の再ターゲットが一般的に容易になります。これは、Git によってブランチが分岐した後のブランチとメイン コード ベースの違いが明確になるためです。

ヒント

メイン ブランチにマージされないまま、長期間実施されているフィーチャー ブランチがある場合、チームのアジャイルさと反復性を損なうおそれがあります。長期間実施されているフィーチャー ブランチがある場合は、実質上、2 つの異なるバージョンのコード ベースが存在することとなり、バグ修正や競合が増えることになります。短期間のフィーチャー ブランチを作成することでこの問題を解決できます。ユーザー ストーリーを小さなタスクに分割する、慎重なスプリント計画を立てる、早期にコードをマージして、ダーク機能としてリリースすることで、短期間のフィーチャー ブランチを作成できます。

ヒント 3: Git はアジャイル開発に透明性と品質を提供する

Git やアジャイルのストーリーは、効率性、テスト、自動化、全体的なアジリティに関するものです。ブランチをメイン ブランチにマージすれば、アジャイル ワークフローは完了です。また、プル リクエストを通じてコードをマージするということは、コードが完了したときに、作業に問題がなく、他のチーム メンバーもコードを終了してリリースの準備ができていると自信を持って把握するための文書があるということです。これが、アジャイル チームをスピーディーに動かして、頻繁にリリースする自信に繋がります。そう、優れたアジャイル チームの印です。

ヒント

アジャイル開発にとっては、定期的なリリース サイクルを採用することが重要です。アジャイル ワークフローで Git を動かすには、メインが常にゴーサインであることを確認する必要があります。つまり、機能の準備が整っていなければ次のリリースまで待たなければなりません。より短いリリース サイクルを採用している場合、これは大きな問題にはならないはずです。

Recommended for you

テンプレート

すぐに使える Jira テンプレート

さまざまなチーム、部門、ワークフロー向けのカスタム Jira テンプレートのライブラリをご覧ください。

製品ガイド

Jira の包括的な概要

この段階的なガイドで重要な機能やベスト プラクティスを確認し、生産性を最大化しましょう。

Git ガイド

Git の基本を理解する

初心者から上級者まで、この Git ガイドを活用して、役立つチュートリアルやヒントで基本を学ぶことができます。