Agile手法
Agileとは何ですか?
Agileソフトウェア開発は、段階的で反復的なアプローチに基づいています。 Agile手法は、プロジェクトの最初に詳細な計画を立てるのではなく、時間の経過とともに変化する要件に対応し、エンドユーザーからの絶え間ないフィードバックを促します。 部門を超えたチームは一定期間内に製品のイテレーションに取り組み、この作業はビジネスや顧客の価値に基づいて優先順位付けされたバックログに整理されます。 各イテレーションの目標は、作業製品を作成することです。
Agile手法では、リーダーシップがチームワーク、説明責任、対面のコミュニケーションを促進します。 ビジネス関係者と開発者は協力して、製品を顧客のニーズや会社の目標に合わせる必要があります。
Agileとは、Agileマニフェストの概念に沿ったあらゆるプロセスを指します。 2001 年 2 月、17 人のソフトウェア開発者がユタ州で軽量開発方法について話し合うために会いました。 彼らは「Agileソフトウェア開発のためのマニフェスト」を出版し、「ソフトウェアを開発し、他の人を助けることによるソフトウェア開発のより良い方法」を発見した方法を説明し、4 つの価値と12の原則を含めました。 Agileマニフェストは、従来のテキスト「プロジェクト管理知識体系ガイド (PMBOK® ガイド)」や「基準へのガイド」と劇的な対照をなしています。
Project Management Guide
Your one-stop shop for everything project management
Ready to get more out of your project management efforts? Visit our comprehensive project management guide for tips, best practices, and free resources to manage your work more effectively.
Agile手法の 12 の原則
Agileマニフェストには、アジリティで実行する方法に関するチームをガイドする12 の原則がリストされています。 以下に示す原則は次のとおりです:
- 当社の最優先事項は、価値のあるソフトウェアを早期かつ継続的に提供し、顧客を満足することです。
- 要件の変更、開発の遅れでも歓迎します。 Agileプロセスは変化を活用して顧客の競争優位性を高めます。
- 数週間から数か月の間に、より短いタイムスケールを好む、頻繁にソフトウェアを提供します。
- ビジネスユーザーと開発者は、プロジェクトを通じて毎日協力する必要があります。
- やる気のある個人を中心にプロジェクトを構築する。 必要な環境とサポートを提供し、信頼して仕事を成し遂げましょう。
- 開発チーム内で情報を伝達する最も効率的で効果的な方法は、対面での会話です。
- 作業ソフトウェアは、進捗を示す主な指標です。
- Agileプロセスは、持続可能な開発を促進します。 スポンサー、開発者、ユーザーは、常にペースを維持できる必要があります。
- 技術的卓越性と優れたデザインへの継続的な注意は、アジリティを高めます。
- シンプルさ — 完了しない作業量を最大化する方法は必須です。
- 優れたアーキテクチャ、要件、設計は、自己組織化チームから生まれます。
- チームは一定の間隔で、より効果的な方法を考え、それに応じてその行動を調整します。
Agileの利点
Agileは 1990 年代にさまざまな軽量ソフトウェア アプローチから進化し、一部のプロジェクト マネージャーが厳格で直線的なWaterfall手法を嫌うという反応です。 柔軟性、継続的な改善、スピードに重点を置いています。
Agileの最も優れた利点は次のとおりです:
- 変更は受け入れらえられます: 計画サイクルが短い場合、プロジェクト中いつでも変更に対応して受け入れやすくなります。 バックログを改善し、変更する機会は常に存在し、チームは数週間以内にプロジェクトに変更を導入できます。
- 最終目標は不明な場合があります: Agileは、最終目標が明確に定義されていないプロジェクトに非常に有益です。 プロジェクトが進むにつれ、目標が明るみに出て、発展は変化するこれらの要件に簡単に適応できます。
- より迅速で高品質なデリバリー: プロジェクトをイテレーション (管理可能な単位) に分割することで、チームは高品質の開発、テスト、コラボレーションに集中できます。 イテレーションのたびにテストを実施すると、バグがより迅速に特定され、解決されます。 そして、この高品質のソフトウェアは、一貫した反復を繰り返しながら、より速く提供することができます。
- 強力なチームインタラクション: Agileでは、頻繁なコミュニケーションと対面のやりとりの重要性が強調されています。 チームは協力し合い、メンバーは責任を持ってプロジェクトの一部を担当できます。
- お客様の声: お客様は、提供されている作業を確認し、自分の意見を共有し、最終製品に本当の影響を与える多くの機会があります。 プロジェクトチームと非常に緊密に連携することで、オーナーシップを得ることができます。
- 継続的改善: Agileプロジェクトでは、プロジェクト全体を通してユーザーやチームメンバーからのフィードバックが促されるため、教訓は今後のイテレーションを改善するために使用されます。
Agile手法を使用して、次のプロジェクトに役立つヒントとベストプラクティスを紹介します。
Agileプロジェクト管理について知っておくべきことと、Agile PM のベストプラクティスの導入を開始するのに役立つヒントをすべて学びましょう。
Agileのデメリット
Agileの柔軟性のレベルは通常ポジティブですが、トレードオフもあります。 確実な納品日を定めるのは難しい場合もあれば、文書を放置したり、最終製品が当初の意図と大きく異なる場合もあります。
Agileのデメリットは次のとおりです:
- 計画は、より少ない具体的なことができます: 確実な納品日を固定するのが難しい場合もあります。 Agileは時間区切りのデリバリーに基づいており、プロジェクトマネージャーはタスクのリオリジを行うことが多いため、納品予定の一部のアイテムが期限内に完了しない可能性があります。 また、プロジェクト内の任意の時点でスプリントを追加して、全体的なタイムラインに追加できます。
- チームは知識が必要です: Agileチームは通常小さいため、チームメンバーはさまざまな分野で高いスキルを持つ必要があります。 また、選択したAgile手法を理解し、快適に感じる必要があります。
- 開発者からの時間のコミットメント: Agileは、開発チームがプロジェクトに完全に専念している場合に最も成功します。 Agile プロセス全体を通して積極的な関与とコラボレーションが必要ですが、これは従来のアプローチよりも時間がかかります。 また、開発者はプロジェクトの全期間にコミットする必要があります。
- ドキュメントは無視することができます: Agileマニフェストは包括的なドキュメントよりも実際に動くソフトウェアを好むので、チームメンバーによってはドキュメントに集中することがあまり重要ではないような気がするかもしれません。 包括的なドキュメント自体がプロジェクトの成功につながるわけではありませんが、Agileチームはドキュメントとディスカッションの適切なバランスを見つける必要があります。
- 最終製品は非常に異なる場合があります: 初期のAgileプロジェクトには決定的な計画がない可能性があるため、最終製品は当初意図した内容とは大きく異なる場合があります。 Agileは非常に柔軟であるため、進化する顧客のフィードバックに基づいて新しいイテレーションが追加され、最終的な成果物が非常に異なる場合があります。
Agile開発サイクル
Agile開発サイクルのフェーズを次に示します。 これらのフェーズは、後から続けて行うべきではありません; 彼らは柔軟性があり、常に進化しています。 これらのフェーズの多くは並行して発生します。
- 計画中: アイデアが実行可能で実行可能と判断された後、プロジェクトチームは一緒に機能を特定します。 このフェーズの目標は、アイデアをより小さな作業 (フィーチャー) に分割し、各フィーチャーに優先順位を付け、イテレーションに割り当てることです。
- 要件分析: このフェーズでは、マネージャー、関係者、ユーザーと多くのミーティングを行い、ビジネス要件を特定します。 チームは、製品の使用者や使用方法などの情報を収集する必要があります。 これらの要件は、定量化可能で、関連性があり、詳細である必要があります。
- デザイン: システムとソフトウェアの設計は、前のフェーズで明らかになった要件に基づき準備されます。 チームは、製品やソリューションの外観を考える必要があります。 テストチームはまた、テスト戦略を思いついたり、進める計画を立てることもできます。
- 実装、コーディング、開発: このフェーズでは、フィーチャーの作成とテスト、デプロイのイテレーションのスケジュールを設定します (反復型および増分型開発アプローチ [IID] に従います])。 フィーチャーが提供されていないため、開発フェーズはイテレーション 0 から始まります。 このイテレーションでは、契約の締結、環境の準備、資金提供などのタスクを含む、開発の基礎を定めます。
- テスト: コードを開発したら、要件に照らしてテストを行い、製品が実際に顧客のニーズを解決し、ユーザーストーリーを一致させるかどうかを確認します。 このフェーズでは、ユニットテスト、インテグレーションテスト、システムテスト、受付テストを行います。
- 展開: テスト後、製品は顧客に提供され、顧客に使用されます。 しかし、デプロイはプロジェクトの終わりではありません。 お客様が製品の使用を開始すると、プロジェクト チームが対処する必要がある新しい問題が発生する可能性があります。
Agileの実装に使用される方法論
Agileはフレームワークであり、Agileの動きにはいくつかの特定の方法があります。 これらはAgileの異なる味わいだと考えることができます:
- エクストリーム プログラミング (XP): XP としても知られるエクストリーム プログラミングは、進化する顧客要件に対する品質と応答性を向上させることを目的としたソフトウェア開発の一種です。 XP の原則には、フィードバックが含まれており、シンプルさを前提とし、変化を受け入れるのです。
- 機能に基づく開発 (以下を行います): この反復的でインクリメンタルなソフトウェア開発プロセスは、業界のベストプラクティスを 1 つのアプローチに融合します。 基本的なアクティビティは、以下の 5 種類です: 全体的なモデルの開発、フィーチャー リストの構築、フィーチャー別の計画、フィーチャー別の設計、フィーチャー別のビルドが含まれます。
- 適応型システム開発 (ASD): 適応型システム開発とは、プロジェクトは常に継続的な適応の状態にあるべきであるという考えを表します。 ASD には 3 つの繰り返し系列のサイクルがあります: し、推測、コラボレーション、学習を行うことができます。
- 動的システム開発手法(DSDM): このAgileプロジェクトデリバリーフレームワークは、ソフトウェアや非 IT ソリューションの開発に使用されます。 予算オーバー、期日の超過、ユーザーの関与の欠如など、IT プロジェクトでよくある失敗に対処します。 DSDM の 8 つの原則は次のとおりです: ビジネスニーズに焦点を当て、納期に間に合わせる、コラボレーションを行い、品質に妥協しない、堅実な基盤から段階的に構築し、反復的に開発し、継続的かつ明確なコミュニケーションを行い、コントロールを示す、などです。
- リーン ソフトウェア開発 (LSD): リーンソフトウェア開発では、リーン製造とリーン IT の原則を取り入れ、ソフトウェア開発に適用します。 それは7つの原則によって特徴付けることができます: 無駄をなくし、学習を拡大し、可能な限り遅い時間で決定し、可能な限り迅速にデリバリーし、チームの力を引き出し、誠実さを築き、全体を見ていきます。
- Kanban: 日本語の「視覚的サイン」または「カード」を意味するKanbanは、Agileを実装するための視覚的フレームワークです。 現在のシステムに対する小さな継続的な変更を促進します。 その原則は次のとおりです: ワークフローを視覚化し、進行中の作業を制限し、フローを管理および強化し、ポリシーを明示し、継続的に改善できます。
- クリスタルクリア: クリスタル クリアは、クリスタル ファミリーの方法論の一部です。 6 人から 8 人の開発者のチームで使用でき、プロセスやアーティファクトではなく、人々に焦点を当てます。 クリスタルクリアには以下が必要です: ユーザーに使用可能なコードを頻繁に提供する、反射的改善、浸透型コミュニケーションが好ましいのは、同じ場所に配置されることです。
- Scrum: Scrumは、Agileを実装する最も一般的な方法の 1 つです。 これは、一連の役割、責任、会議に従い、変化しない反復型ソフトウェア モデルです。 通常 1 ~ 2 週間のスプリントでは、チームは定期的にソフトウェアをデリバリーできます。
Agileのその他の慣行
Agileに関連する慣行やフレームワークは他にもたくさんあります。 これらは以下を含みます:
- Agile モデリング (AM): Agile モデリングはソフトウェア システムのモデリングや文書化に使用され、Scrum、エクストリーム プログラミング (XP)、Rational Unified Process (RUP) などの他のAgile手法を補足するものです)。 AMは、単独では完全なソフトウェアプロセスではありません。 コードを使ってモデルを改善するのに役立ちますが、プログラミングアクティビティは含んでいません。
- 合理的統一プロセス (RUP): RUP は、IBM の一部門である Rational Software Corporation によって作成された、反復型の適応型ソフトウェア開発フレームワークです。 Rational 氏によると、RUP はプログラム開発のガイドライン、テンプレート、実例を提供するオンライン メンターのようなものです。 RUP の主要な側面には、リスクに基づくプロセス、ユースケース重視の開発、アーキテクチャ中心のデザインなどがあります。
- リーンとAgile: リーン開発では、無駄 (価値を生み出さない活動) の排除と削減に重点を置いています)。 リーン開発はリーン製造の原則を受け入れ、ソフトウェア開発に適用します。 これらの原則はAgileと非常に似ていますが、リーンはそれを一歩先に進めます。 開発フェーズでは、1 つのフィーチャーを選択、計画、開発、テスト、デプロイしてから、次のフィーチャーのプロセスを繰り返します。
- テスト主導型開発 (TDD): テスト主導型開発では、繰り返しの短い開発サイクルに依存します。 最初に、開発者が新機能の (最初は失敗していた) 自動テストケースを作成し、そのテストに合格するための最小限のコードでテストを素早く追加します。 次に、新しいコードを受け入れ可能な基準にリファクタリングします。
- 拡張Agileフレームワーク(SAFeのロゴロゴ): Scaled Agile Framework は、大企業がAgileの導入を開始するのを支援する非常に構造化された方法です。 SAFe はリーンとAgileの原則に基づいており、アーキテクチャ、統合、資金、大規模な役割など、大規模な組織で困難な問題に取り組んでいます。 SAFe には 3 つのレベルがあります: チーム、プログラム、ポートフォリオに関する情報を提供します。
- ラピッド アプリケーション 開発 (RAD): RAD のソフトウェア開発アプローチでは、タスクを計画するよりも開発に重点が置かれています。 これはインクリメンタルモデルに従い、各コンポーネントが並行して開発されます。 RAD のフェーズは次のとおりです: ビジネスモデリング、データモデリング、プロセスモデリング、アプリケーションの生成、テストと離職。
- 経験的制御法: Agileソフトウェア開発では、経験管理法を使用して、実際のプロジェクトで実際に観察した現実に基づいて意思決定を行うことができます。 プロセス管理の経験モデルには、次の 3 つの部分があります: 可視性、検査、適応性を高め。
Agileで予算を見積もる方法
事前に綿密な計画を立てなければ、多くのプロジェクトマネージャーはAgileプロジェクトのコストと予算を計算する方法に迷っています。
どのプロジェクト手法を使っていても、プロジェクトが始まる前にコストを見積もることは常に困難です。 しかし、Agileプロジェクトでは、プロジェクトにかかる時間と総コストを結び付けることができます。
まず、バーンダウンチャートを作成し、バーンダウンレートを使用して、プロジェクトに含まれるスプリントの数とプロジェクトの終了時期を推定します。 次に、チームの時給に基づいて、チームのコストを計算します。 各メンバーのレートに週の作業時間数を掛け、それにスプリントの週数を掛けます。 チームの当初の予算を見積もったら、テクノロジー、出張、設備などのその他のコストを追加できます。
また、各ユーザーストーリーをタスクに分割することもできます。 各タスクを完了するのに何時間かかるかを把握したら、プロジェクトの予算を見積もります。
最後に、プランニング ポーカーを使用して、開発目標に必要な工数を見積もることができました。 プランニング ポーカーは、開発目標の工数を見積もるための、合意に基づくゲーミ化された手法です。 各チームメンバーは、大きな声で言うのではなく、表の上に数字のカードを並べて見積もりを行います。 その後、カードが明らかにされ、見積もりがチーム全体で話し合われます。
Agileプログラミングとペアプログラミング
ペアプログラミング (別名「ペアリング」) はエクストリームプログラミング (XP) の慣行の一部です。 2 人のプログラマーが 1 つのワークステーションを共有し、これには 1 つの画面、キーボード、マウスの共有が含まれます。 このテクニックの目的は、より良いコミュニケーション、問題の明確化、解決策の理解を促進することです。 組み合わせは、高品質の製品を迅速に提供するためにAgileプロジェクトでよく使用されますが、それは常に必要ですか?
答えは、プログラマー、会社、目標によって異なります。 プロジェクトやプログラマーの場合、ペアを組み合わせることで生産性が向上する場合があります。 しかし、必ずしもすべてのプロジェクトに適しているわけではありません。 最善の方法は、実験し、それが自分に合うかどうかを確認する方法です。
ソフトウェア要件にAgileがどのように対応するか
Agileは、開発チームが顧客の最も重要な要件にできるだけ早く集中するのに役立ちます。 継続的なフィードバックと頻繁な対面のやりとりにより、プロジェクトチームと関係者は適切な要件を理解し、優先順位を付けます。
Agileチームは、ユーザーストーリーを含むバックログを使用して要件を管理します。 イテレーションが始まる前に、チームは次のデリバリーで満たす要件について合意します。 この共同作業型のアプローチにより、最も重要な機能に優先順位を付けます。 また、新しい情報が表面化すると、要件はプロジェクト全体を通じて継続的に更新されます。
ソフトウェア以外のプロジェクトでもAgileを使用できますか?
Agileは従来、ソフトウェア開発のために作成されましたが、他の多くのプロジェクトや業界でも使用できます。
Agileソフトウェア開発は、リーン生産と組織の学習の原則から生まれたものであることを覚えておきましょう。 これらのアイデアは、そもそもソフトウェアに基づいていたわけではありません。 また、スタンドアップミーティングやビジュアル管理など、Agileにおける多くの慣行は非常に一般的で、あらゆる業界に応用できます。
ソフトウェア以外の目的でAgileを使用しているチームの事例は少なくないが、いくつかの事例がある。 たとえば、ザ・ロンリー・惑星の法務チームの企業弁護士であるサルト・サリバンは、Agileで法務サービスの提供を変革しました。 チームはホワイトボードとカード、朝のスタンドアップミーティング、優先順位付け、毎週のイテレーション、定期的なふりかえりを使用します。
Agileはソフトウェア開発以外のプロジェクトにも確実に適用できますが、ニーズに合った方法とアプローチを見つけるだけで十分です。 まずはボードやカード、作業バックログ、スタンドアップミーティング、イテレーション (週次計画ミーティング) から始めて、チームの反応を確認します。
Agileの使い方
Agileを始める簡単な方法は、毎日のスタンドアップミーティングをプロジェクトに組み込むことです。 毎日のスタンドアップミーティングは、すでに使用しているプロジェクト手法 (Waterfallでも) に取り入れやすく、トレーニングや知識移転は必要ありません。 毎日 10 分ほど同じ場所でミーティングを行い、前日の仕事、今日の仕事、障害について全員に話し合います。
Agileへの完全な切り替えを一度に行う場合は、まずチームや組織がこの変更を行いたい理由を理解するとよいでしょう。 何が機能しているのか、うまくいっていませんか? 何を改善したいですか? その後、Agile評価を実施し、使用されている人、スキル、テクノロジーを完全に把握できます。
どちらのルートを選択するにしても、Agileはその性質上柔軟であることを忘れないでください。 Agileを始める方法に間違いや正しい方法はありません。 あなたとあなたのチームに役立つ仕事をする。
Smartsheetの最新ビューであるカード ビューは、Agile チームがSmartsheetで作業、コミュニケーション、コラボレーションを行うより視覚的な方法を提供します。 カード ビューを使用すると、豊富なカードで注目を集め、柔軟なビューで視点を与え、仕事の優先順位付けと視覚的な調整を行うことができます。 視覚的なカードで焦点を絞る:カスタム フィールド、画像、色設定などを使用して重要な情報をわかりやすく表示すると、チームの焦点が明確に絞られます。 カードをレーンに分類して、作業をより視覚的に整理します。
Scrum手法
Scrumの利点
Scrumは、特定の役割とセレモニーを備えた非常に規範的なフレームワークです。 習得することは多くの場合がありますが、これらのルールには多くの利点があります。 Scrumのメリットは次のとおりです:
- 透明性とプロジェクトの可視性の向上: 毎日のスタンドアップミーティングで、チーム全員が誰が何をしているのかを知り、誤解や混乱を多くなくします。 課題は事前に特定されているため、チームは手に入る前に問題を解決できます。
- チームの説明責任の増大: プロジェクトマネージャーがScrumチームに何をいつ行うべきかを指示する必要はありません。 代わりに、チームは各スプリントで完了できる作業を共同で決定します。 全員が協力し合い、お互いに助け合うことで、コラボレーションを改善し、各チームメンバーが独立できるようになります。
- 変更に対応しやすい: 短いスプリントと絶え間ないフィードバックにより、変更に対処し、対応しやすくなります。 たとえば、チームがあるスプリントで新しいユーザーストーリーを発見した場合、バックログ改善ミーティング中にその機能を次のスプリントに簡単に追加できます。
- コスト削減の増加: 絶え間ないコミュニケーションにより、チームはすべての問題や変更を発生時にすぐに認識し、経費を削減し、品質を向上させるのに役立ちます。 より小さなチャンクで機能をコーディングしてテストすることで、継続的なフィードバックがあり、ミスは早い段階で修正でき、その前にコストが高くなりすぎて修正できません。
Scrumのデメリット
Scrumはいくつかの具体的な利点を提供しますが、いくつかの欠点もあります。 Scrumにはチームの高い経験とコミットメントが必要であり、プロジェクトは要件変更のリスクにさらされる可能性があります。
Scrumのデメリットは次のとおりです:
- 要件変更のリスク: Scrumのプロジェクトの中には、特定の終了日がないために要件変更が発生する場合があります。 完了日がない場合、関係者は追加の機能を要求し続けたくなるかもしれません。
- チームには経験とコミットメントが必要です: 定義された役割と責任を持つチームは、成功するためにScrumの原則に精通している必要があります。 Scrumチームには役割が定義されていないため (全員がすべてを担当します)、技術的な経験があるチームメンバーが必要です。 また、チームは毎日のScrumミーティングにコミットし、プロジェクト期間中はチームの上に残る必要があります。
- 間違ったScrumマスターは、すべてを台無しにすることができます: Scrumマスターはプロジェクトマネージャーとは大きく異なります。 Scrumマスターはチームに対する権限はありません; 彼または彼女は、彼らが管理しているチームを信頼し、何をすべきかを決して伝えない必要があります。 Scrumマスターがチームをコントロールしようとすると、プロジェクトは失敗します。
- 定義の不十分なタスクは、次の異常につながる可能性があります: タスクが明確に定義されていないと、プロジェクトのコストとタイムラインは正確ではありません。 当初の目標が不明確な場合、計画は難しくなり、スプリントは当初の推定よりも時間がかかることがあります。
Scrumにおける役割
Scrumには具体的な役割が 3 つあります。 これらは次のとおりです:
- 製品所有者: Scrum製品の所有者は、自分が何を構築したいのかというビジョンを持ち、そのビジョンをチームに伝えます。 製品所有者は、ビジネスと市場の要件に重点を置き、すべての作業に優先順位を付けます。 バックログを作成および管理し、次にリリースする機能に関するガイダンスを提供し、チームや他の関係者とやり取りして、全員が製品バックログの項目を理解できるようにします。 製品所有者はプロジェクトマネージャーではありません。 ステータスと進捗を管理するのではなく、目標とビジョンを持ってチームのモチベーションを高めるのが仕事です。
- Scrumマスター: チームのコーチと見なされることが多いScrumマスターは、チームが可能な限り最善の仕事をするのに役立ちます。 つまり、会議を開催し、障害や課題に対処し、製品所有者と協力して次のスプリントに向けて製品バックログの準備を整える必要があります。 また、Scrumマスターは、チームがScrumのプロセスに従っていることを確認します。 チームメンバーに対する権限はありませんが、そのプロセスに関する権限はあります。 たとえば、Scrumマスターは誰かに何をすべきかを伝えられませんが、新しいスプリントの頻度を提案できます。
- Scrumチーム: Scrumチームは 5~7 名で構成されています。 プロジェクトのメンバー全員が協力し合い、お互いを助け合い、仲間意識を深く感じさせます。 従来の開発チームとは異なり、プログラマー、デザイナー、テスターなど、明確な役割はありません。 全員が一緒に一連の作業を完了します。 Scrumチームは各スプリントの計画を所有しています; 各イテレーションで完了できる作業量を予測します。
Scrumプロセスのステップ
Scrum フローには、特定の、変更が入る一連のステップがあります。 これらは以下を含みます:
- 製品バックログ: 製品オーナーとScrumチームがミーティングを行い、製品バックログの項目に優先順位を付けます (製品バックログの作業はユーザーストーリーと要件から得られます)。 製品バックログは完了すべきもののリストではなく、製品に必要なすべての機能のリストです。 次に、開発チームは製品バックログから作業を引き出し、各スプリント中に完了します。
- スプリント計画: 各スプリントの前に、製品所有者はスプリント計画ミーティングでバックログのトップアイテムをチームに提示します。 次に、チームはスプリント中に完了できる作業を選択し、作業を製品バックログからスプリントバックログ (スプリントで完了すべきタスクのリスト) に移動します)。
- バックログのリファインメント/グルーミング: 1 つのスプリントの終了時に、チームと製品所有者がミーティングを行い、次のスプリントに向けてバックログの準備が整っていることを確認します。 チームは、関連性の高くないユーザーストーリーを削除したり、新しいストーリーを作成したり、ストーリーの優先順位を見直したり、ユーザーストーリーをより小さなタスクに分割したりします。 このグルーミングミーティングの目的は、バックログに関連性が高く詳細で、プロジェクトの目標を満たす項目のみが含まれるようにすることです。
- 毎日のScrumミーティング: デイリー Scrumは 15 分間のスタンドアップミーティングで、各チームメンバーが目標や問題について話し合います。 デイリー Scrumはスプリント中に毎日行われるので、チームを順調に進められます。
- スプリントレビューミーティング: 各スプリントの終了時に、チームはスプリントレビューミーティングで完了した作業を提示します。 このミーティングでは、レポートや PowerPoint プレゼンテーションではなく、ライブのデモを開催します。
- スプリントふりかえりミーティング: また、各スプリントの終わりには、スクラムがどれだけうまく機能しているかを振り返り、次のスプリントで行うべき変更について話し合います。 スプリント中に何がうまくいき、何がうまくいかなかったか、また、別の方法でできることについて話し合う場合があります。
Scrumのツール、アーティファクト、メソッド
Scrumプロジェクトには、役割やセレモニーに加えて、特定のツールやアーティファクトも含まれています。 たとえば、チームはScrumボードを使ってバックログを視覚化したり、バーンダウンチャートを使って未解決の作業を表示したりします。 最も一般的なアーティファクトと方法は次のとおりです:
- Scrumボード: Scrumタスクボードを使ってスプリントバックログを視覚化できます。 ボードにはさまざまな形式があります; インデックスカード、Post-It メモ、ホワイトボードなどが使われるのが一番昔からある。 通常、Scrumボードは 3 つのカテゴリに分けられます: タスク、進行中の作業、完了を確認できます。 Scrumチームはスプリント全体を通してボードを更新する必要があります。 たとえば、誰かが新しいタスクを思いついた場合、新しいカードを書いて、それを適切な列に書き出します。
- ユーザーストーリー: ユーザーストーリーとは、顧客の視点から見たソフトウェアの機能を指します。 これには、ユーザーの種類、必要なもの、必要な理由が含まれます。 これらの短いストーリーは、似たような構造に従います: の一環として、
、したい 私ができるように 開発チームは、これらのストーリーを使用して、ストーリーの要件を満たすコードを作成します。
- バーンダウンチャート: バーンダウンチャートはすべての未解決の作業を表します。 バックログは通常、縦軸に、時間は水平軸に沿って配置されます。 残りの作業は、ストーリーポイント、理想的な日、チームの日数、その他の指標で表すことができます。 バーンダウンチャートは、物事が計画通りに進まない場合にチームに警告し、意思決定の影響を示すのに役立ちます。
- 大規模Scrum (LeSS): Scrumの要素を何百人もの開発者に拡張したい場合は、Large-Scale Scrum (LeSS) フレームワークを使用すると、Scrumのコアを失うことなくルールとガイドラインを拡張できます。 原則はScrumから直接取り上げられますが、オーバーヘッドを追加せずに拡張することに重点を置いています (役割、アーティファクト、プロセスの追加など)。
- 時間区切り: 時間区切りとは、チームが目標の達成に向けて取り組む一定の期間を指します。 目標に到達するまでチームを作業させる代わりに、時間区切りアプローチは時間制限に達すると仕事を停止します。 時間区切りのイテレーションは、多くの場合、Scrumとエクストリーム プログラミングで使用されます。
- 冷蔵庫: 記録され、開発に移動されていないユーザー ストーリーは、アイスボックスに格納されます。
「アイスボックス」という用語は、Agile型プロジェクト管理ツールである Pivotal Tracker によって作成されました。
- Scrum対RUP: Scrumと Rational Unified Process (RUP) はどちらもAgile フレームワークに従っていますが、RUP ではスコープ、主要なマイルストーン、特定の日付がより正式に定義されています (Scrumではスコープではなくプロジェクトバックログを使用します)。 さらに、RUP にはプロジェクトライフサイクルの 4 つの主要なフェーズ (開始、詳細化、構築、移行) が含まれますが、Scrumは「従来のライフサイクル」全体を 1 つのイテレーションに適合させる必要があります。
- リーン対Scrum: Scrumはソフトウェア開発のフレームワークですが、リーンはそのプロセスを最適化するのに役立ちます。 Scrumの主な目標は人々に、リーンはプロセスに焦点を当てます。 どちらもAgile手法と見なされます: 無駄をなくし、フローを改善する。
Scrumの使い方
Scrumと一緒に働くことは、多くの場合、チームの習慣を変えることを意味します。 より多くの責任を負い、コードの品質を向上させ、デリバリー速度を向上させる必要があります。 このレベルのコミットメントは、変更エージェントとして機能します; チームがスプリントの目標に取り組むにつれ、質の高い製品を提供するために、より良く、より速くなりたいというモチベーションがますます高まります。
Scrumから始めるのに、役割について話すのがよいでしょう。 すべてのプロジェクトには、Scrumマスター、製品所有者、Scrumチームが必要です。 Scrumマスターと製品所有者は誰であるべきか、またはこれらの役割がすでに割り当てられている場合は、その役割と責任を明確にしてもよいでしょう。
チームがScrumにどれだけ慣れているかによっては、トレーニングセッションを調べたいかもしれません。 認定Scrumコーチとトレーナー、Scrumアライアンス登録教育プロバイダは、チームがScrumを学び、受け入れるのに役立ちます。
Smartsheetの最新ビューであるカード ビューは、Agile チームがSmartsheetで作業、コミュニケーション、コラボレーションを行うより視覚的な方法を提供します。 カード ビューを使用すると、豊富なカードで注目を集め、柔軟なビューで視点を与え、仕事の優先順位付けと視覚的な調整を行うことができます。 視覚的なカードで焦点を絞る:カスタム フィールド、画像、色設定などを使用して重要な情報をわかりやすく表示すると、チームの焦点が明確に絞られます。 カードをレーンに分類して、作業をより視覚的に整理します。
次回のScrumミーティングでカードビュー Smartsheet使用しましょう。
Waterfall手法
Waterfallとは?
Waterfall手法は、連続する線形プロセスに従い、ソフトウェアエンジニアリングや IT プロジェクトで最も一般的なシステム開発ライフサイクル (SDLC) です。 また、各タスクの開始日と終了日を示す棒グラフの一種であるガントチャートを使って計画することもあります。 8 つのステージのうちの 1 つが完了すると、開発チームは次のステップに進みます。 チームはプロセス全体を最初から始めなければ前の段階に戻れません。 また、チームが次のステージに進む前に、要件を顧客にレビューし、承認する必要があるかもしれません。
このモデルは製造業と建設業で生まれたモデルで、変更が高すぎたり、時には不可能だったりする高度に構造化された環境が生まれました。 Waterfallの最初の正式な説明は、Winston W に起因します。 1970年の記事で、彼は欠陥のあるソフトウェアモデルについて説明しました。
Waterfallのメリット
Waterfallは、シンプルで、変化に優れたプロジェクトに最適です。 直線的で剛直な性質により、使いやすく、詳細な記録が可能になります。
Waterfallの利点は次のとおりです:
- 誰でも簡単に使用: Waterfallモデルはプロジェクトごとに同じシーケンシャルパターンに沿っているため、使いやすく理解しやすいです。 Waterfallプロジェクトに取り組む前に、チームは事前の知識やトレーニングを必要としません。 Waterfallは剛体モデルでもあります; 各フェーズには特定の成果物とレビューがあるため、管理と管理が容易になります。
- 規律が強制されます: Waterfallの各フェーズには開始日と終了日があり、進捗状況を関係者や顧客と簡単に共有できます。 コードを作成する前に要件とデザインに焦点を当てることで、チームは締め切りを逃すリスクを減らすことができます。
- 十分に文書化されたアプローチが必要です: Waterfallでは、各フェーズの文書化が必要になり、コードとテストの背後にあるロジックをより深く理解できます。 また、将来のプロジェクトに備えて紙の跡を残したり、関係者が特定のフェーズについて詳細を確認する必要がある場合にも残ります。
Waterfallのデメリット
Waterfallの最大のデメリットは、変化への対応方法です。 Waterfallは線形でシーケンシャルなモデルであるため、予期しない変更が発生してもフェーズ間を直帰することはできません。 フェーズが終わったら、それです。
ここでは、Waterfallのデメリットについて詳しくご紹介します:
- 変更を簡単に修正することはできません: チームがフェーズを完了すると、元に戻れません。 テスト段階に到達し、フィーチャーが要件フェーズに含まれなかったことに気づいた場合、元に戻って修正するのは非常に難しく、費用がかかります。
- ソフトウェアは遅くまで提供されません: コーディングが実際に始まる前に、プロジェクトは 2 ~ 4 つのフェーズを完了する必要があります。 その結果、関係者はライフサイクルの後半までソフトウェアの使用を確認できません。
- 正確な要件の収集は困難な場合があります: Waterfallプロジェクトの最初のフェーズの 1 つは、顧客や関係者に相談し、要件を特定することです。 しかし、プロジェクトの早い段階で、何を求めるのかを正確に特定することは困難な場合があります。 多くの場合、顧客は何を早い段階で必要としているのかを知らず、プロジェクトの進捗に合わせて要件を学習し、特定します。
滝のステージ
Waterfallには 8 つのステージがありますが、すべて順番に行う必要があります。 たとえば、開発チームがテスト段階に入っていると、分析フェーズに戻れません。
- 構想: このフェーズは、アイデアから始まります。 コンセプトフェーズでは、プロジェクトの大まかな評価、それがなぜ有益なのか、初期のコスト見積もりを見ます。
- 開始: アイデアが形成されたら、プロジェクトチームを雇い、目標、スコープ、目的、成果物を定義する必要があります。
- 要件の収集と分析: 要件を収集して分析し、プロジェクトが実際に実現可能かどうかを確認します。 これらの情報はすべて要件仕様文書に記載されています。
- デザイン: このフェーズで作成されたデザイン仕様は、実際にコードを書くためにコーディングフェーズで使用されます。 要件を検討し、評価し、システムの設計を準備します。 チームの目標は、どのような行動をとるべきか、どのような行動をとるべきかを理解することです。
- 実装/コーディング: ソフトウェアの実際のコーディングが始まります。 設計段階で作成されたフローチャートやアルゴリズムはすべて、プログラミング言語に翻訳されます。
- テスト: コードが完成したら、エラーがないかソフトウェアをテストする必要があります。 テストが完了すると、ソフトウェアは顧客に提供されます。 一部のチームでは、一般に展開する前にソフトウェアをテストするユーザー承認テスト (UAT) を含める場合があります。
- メンテナンス: お客様が現実の世界でソフトウェアを使用していると、追加の問題が見つかるかもしれません。 開発チームは、引き続き効果的にソフトウェアを解決、変更、変更する必要があります。
反復型Waterfall型開発
従来のWaterfallモデルでは、チームはプロジェクト全体の各フェーズを経ます。 たとえば、プロジェクト全体の分析を行い、次にプロジェクト全体のデザインを行うなどです。
反復型Waterfallモデルでは、まだ多くの事前計画が必要です。 計画が完成すると、チームは従来のWaterfallと同じパターンに従いますが、ストーリーごとに実行します。 1 つのストーリーに対して分析を行い、次に 1 つのストーリーのすべてのデザインを作成し、次に 1 つのストーリーに対するすべてのコーディングとテストを行います。 次に、別のストーリーに対してプロセスを繰り返します。 作業は開発チームにメリットのあるチャンクに分割されます。
Waterfallがソフトウェア要件にどのように対処するか
Waterfallプロジェクトは、すべてのソフトウェア要件を事前に定義します。 これらの要件が特定され、文書化されていなければ、プロジェクトは進行できません。
Waterfallプロジェクトの中には、これらの要件を把握、収集、収集するための専門チームを設ける場合があります。 また、関係者や顧客の要件を把握するために、アンケート、対面または電話インタビュー、ホワイトボード、モデリングツールを使用する場合があります。
初期要件を定義した後、チームは要件仕様文書を作成します (複数作成する場合もあります)。 このドキュメントでは、全員がプロジェクトのスコープを理解できるように、提供する必要のある内容を定義します。
Kanban方式
Kanbanとは何ですか?
Kanbanとは「視覚的なサイン」または「カード」の日本語です。」 Agileを実装するために使用される視覚的フレームワークで、何を生成するのか、いつ生成するのか、どのくらいの量を生成するかを示します。 現在のシステムに対する小さな段階的な変更を促し、特定の設定や手順を必要としません (つまり、他の既存のワークフローの上にKanbanを引き付けることができます)。
Kanban方式は、トヨタ生産システムとリーンマニュファクチャリングに影響を受けました。 1940年代、トヨタはスーパーマーケットの在庫棚をモデル化してエンジニアリングプロセスを改善しました。 大野耐一氏は、スーパーマーケットでは需要に合うだけの商品が揃っており、スーパーマーケットと顧客の間の流れを最適化していることに気づきました。 在庫の補充は、シェルフに空のスペースがある場合にのみ補充されます (視覚的な合図)。 また、在庫が消費と一致していたため、スーパーマーケットは在庫管理の効率を改善しました。
トヨタは同じ原則を工場にも持ち込みました。 さまざまなチームがカード (またはKanban) を作成して、余力があり、資料を引き出す準備ができていることを伝えました。 部品に対するすべての要求が注文から引き出されたため、Kanban方式は「プル システム」と呼ばれることもあります。」
これらのアイデアは、今日のソフトウェア チームや IT プロジェクトにも当てはまります。 このコンテキストでは、開発進行中の作業 (WIP) が在庫の代わりに使用され、新しい作業はチームの視覚的なKanbanボードに「空のスペース」がある場合にのみ追加できます。 Kanban方式は WIP の量をチームの許容量と一致させ、柔軟性、透明性、アウトプットを改善します。
Kanbanブログによると、「Kanban方式は、非常に効率的な方法でソフトウェア開発プロセスを管理するためのテクニックです。 Kanban方式は、トヨタの「ジャストインタイム 」(JIT) 製品システムを支えています。 ソフトウェアの制作は創造的な活動であるため、自動車の生産とは異なりますが、生産ラインを管理するための根本的なメカニズムはまだ適用できます。”
KanbanとAgileを見る際には、KanbanはAgileの一つの特徴であることを忘れてはならないのです。 Agileソフトウェア開発の実装に使用される多くのフレームワークの 1 つです。
Kanbanボードについて
Kanbanボードは、プロジェクトにKanbanメソッドを実装するためのツールです。 従来、このツールは物理的なボードで、ホワイトボードに磁石、プラスチックチップ、または付箋を貼り付けて作業項目を表しています。 しかし、近年では、オンラインのKanbanボードを作成するプロジェクト管理ソフトウェアツールが増えています。
Kanbanボードは、物理的なものであれオンラインであれ、異なるスイムレーンまたは列で構成されています。 最もシンプルなボードには 3 つの列があります: 実行、進行中、完了です。 ソフトウェア開発プロジェクトの列には、バックログ、準備完了、コーディング、テスト、承認、完了の列が含まれます。
Kanban カード (付箋など) は作業を表し、各カードはその作業のステータスを表すレーン内のボードに配置されます。 これらのカードはステータスを一目で伝えます。 また、さまざまなカラー カードを使用して、さまざまな詳細を表すこともできます。 たとえば、グリーン カードはフィーチャーを、オレンジ色のカードはタスクを表します。
Kanbanのメリット
Kanbanの視覚的性質は、Agileを実装する際にユニークな利点を提供します。 Kanbanボードは学習と理解が簡単で、作業フローを改善し、サイクル時間を最小限に抑えます。
Kanbanの利点は次のとおりです:
- 柔軟性を高める: Kanbanは進化する流動的なモデルです。 フェーズの期間は設定されていないので、新しい情報が出てきたら優先順位も再評価されます。
- 無駄を削減する: Kanbanは無駄を減らすことを中心に展開し、チームが必要ではない仕事や間違った種類の仕事に時間を費やさないことを保証します。
- 理解しやすい: Kanbanの視覚的な性質は、非常に直感的で習得しやすいものにするのに役立ちます。 チームはまったく新しい手法を学ぶ必要はなく、Kanbanは他のシステムの上に簡単に導入できます。
- デリバリーフローを改善する: Kanban チームは、顧客への作業フローを最適化します。 継続的なデリバリー (CD) と同様に、Kanbanは顧客にジャストインタイムで価値を提供し、定期的に作業を提供することに重点を置いています。
- サイクル時間を最小限に抑える: サイクル期間とは、作業がチームのワークフローを移動するのにかかる時間のことです。 Kanbanプロジェクトでは、チーム全体がプロセスを通じて仕事が迅速に順調に進んでいるか確認するのに役立ちます。
Kanbanのデメリット
Kanbanに関連するデメリットの多くは、Kanbanボードの誤用や誤った扱いによって得られます。 ボードが古かったり、複雑過ぎたりすると、混乱、誤ったやり方、コミュニケーションの誤りにつながる可能性があります。
Kanbanのデメリットは以下の点でご紹介します:
- 古いボードは問題につながる可能性があります: チームはKanbanボードを最新の状態に保つことにコミットする必要があります。 また、古くなったボードに基づいて作業が完了すると、物事を順調に進めるのは難しくなります。
- チームはボードの複雑さを超える可能性があります: Kanbanボードは明確で読みやすいままである必要があります。 Kanbanボードにこのような種類のベルとホイッスルを追加するだけで、重要な情報が埋もれになります。
- タイミングの欠如: Kanbanに関する頻繁な不満は、いつ物事が終わるかわからないということです。 Kanbanボードの列にはフェーズ (To Do、進行中、完了) のみが表示されるため、各フェーズに関連付けられているタイムフレームがないため、To Do フェーズがどれくらい続くかわからないのです。
Kanbanの基本慣行と原則
Kanbanプロジェクトはすべて、以下の基本原則に従う必要があります:
- ワークフローを視覚化する: 自分の仕事を視覚的に表現することで、全体像を理解し、仕事の流れがどのように進んでいるかを確認できます。 ブロッカーやキューなど、すべての作業を可視化することで、早期に問題を特定し、コラボレーションを改善できます。
- 進行中の作業 (WIP)を制限します): 進行中の作業制限 (WIP 制限) によって、ボードの各列または各ワークフローの最小作業量と最大作業量が決まります。 WIP に制限を設けることで、スピードと柔軟性を高め、タスクの優先順位付けの必要性を減らすことができます。
- フローの管理と強化: Kanbanボード全体の作業フロー (作業の移動) をモニタリングし、改善する必要があります。 理想的には、チームが迅速に価値を生み出していることを示す、迅速かつスムーズなフローが必要です。 チームはフロー内の問題を分析し、変更を実装する必要があります。
- プロセスポリシーを明示する: Kanbanシステムで共同の変更を行うには、プロセスを明示する必要があります。 物事がどのように機能するか、または「完了」の本当の意味を誰もが理解する必要があります。 これらのプロセスをより明確にするためにボードを変更することができます; たとえば、作業の流れ方を指定するためにデザインを変更できます。
- 継続的に改善する: Kanban方式では、継続的な小さな変更が推奨されます。 Kanbanシステムを導入すると、チームは問題を特定して理解し、改善を提案できます。 チームはフローを追跡し、サイクル時間を測定し、仕事の質を高めることで効果を測定します。
Kanbanに関するよくある質問
Q: Scrumマスターを使わずにミーティングを整理し、集中力を維持するにはどうすればよいでしょうか?
チームの誰かが率先して会議をカレンダーに表示し、会話が順調に進むようにする必要があります。 Scrumマスターがいなくても、通常はそれほど大きな問題ではありません。
Kanbanボードは、会議中に集中力を維持するのに役立ちます。 会議中に、ボードを左から右に移動して、前回のミーティングから移動しなかったストーリーを探すことができます。 達成したことを話すのではなく、ボードのカードを見るだけでいいのです。 会議中に聞く必要がある質問の 1 つは、項目を完成させるのに必要な障害や課題についてです。
目の前のタスクに参加している人だけを招待するカイゼンミーティングを試すこともできます。 それぞれが問題や課題について話し合い、自分の仕事をより効率的に行う方法について話し合います。 続いて、グループ全体で解決策について話し合います。
カイゼンにはカイゼンの進行役も含まれるため、チームは重大な問題について率直に議論するよう促します。
Q: Kanbanは、予測可能な納品に対する経営陣の欲求をどのように満足させるか?
ある程度、Kanbanは効率の予測可能性を取引しています。 時間区切りの制約や計画はありませんが、チームが仕事の流れを最適化し、特定のタスクにどれくらいの時間がかかるかを把握できたら、ある程度の予測可能性が高まります。
それでも管理に、より明確な予測可能性 (Kanbanアプローチではない) が必要な場合は、期待値を管理する必要があるかもしれません。 従来のモデルでは、納品日が予測可能ですが、実際には完了していない製品であれば、その日までに製品を納品する人はいません。 元の日付セットに関係なく、経営陣は常に製品の完成を待つつもりです。 Kanbanモデルでは、製品の準備が整い完成したら納品することに集中するために、期待値を調整する必要があります。
Q: 締め切りを守っているときにKanbanをどのように使うのですか?
Kanbanモデルでは、締め切りに対処する方法がいくつかあります。 Kanbanカードに締め切りを書くだけで、締め切りがハードで速い期日ではなく、よりガイドラインとして機能することを確認できます (Kanbanでは、タイミングの品質を損なってはいけません)。
締め切りに対するチームのアプローチ方法を変更することもできます。 Kanbanの最も正確な形式では、それらを必要としません。 Kanbanシステムでは、すべてのタスクができるだけ早く完了するようにするため、締め切りは不要になります。
Q: Kanbanはソフトウェア開発以外のプロジェクトにも使用できますか?
はい、Kanbanはプロセスの結果を改善し、生産時間を短縮し、ほぼすべての業界でワークフローを管理するのに役立ちます。 たとえば、ゲーム開発業界では、Kanbanは動画プロセスのタイムラインを短縮し、無駄を減らすのに役立ちます。 不動産では、契約、見込み客、各種ボードのリストを追跡することで、効率を高めます。 また、財務部門では、Kanbanはボトルネックをすばやく特定し、市場投入までの速度を向上できます。
Q: WIP はリソースの可用性によって駆動されますか?
はい。 WIP 制限を設定する際には、チームに所属するメンバーの数と同時に取り組んでもらいたいタスクの数を確認する必要があります。
Q: WIP 制限が正しいかどうかをどのように知るのですか?
適切な WIP 制限を設定するための公式はありません。 最初は制限が間違っているのが一般的ですが、プロジェクトの進行に合わせて調整するだけです。 使用可能なリソースについては 1.5 から始めるのがよいでしょうが、この数を常に見直し、必要に応じて変更を加える必要があります。
AgileとScrum
AgileとScrumの違いと類似点
AgileとScrumは同じシステムに従っていますが、ScrumとAgileを比較するといくつかの違いがあります。 Agileは、反復型開発を通じてソフトウェアを構築するためのAgileマニフェストの一連の原則を説明しています。 一方、ScrumはAgileソフトウェア開発を実践する際に従う特定のルールセットです。 Agileは哲学であり、ScrumはAgileの哲学を実装するための方法論です。
ScrumはAgileを実装する方法の 1 つであるため、両者とも多くの類似点を共有しています。 両者ともソフトウェアを早期かつ頻繁に提供することに重点を置き、反復型プロセスであり、変化に対応します。 また、透明性と継続的な改善を促進します。
ScrumとAgileの相性は?
Scrumは、Agile プロセスの実装に使用される多くのフレームワークの 1 つです。 Agileとは、エクストリーム プログラミング、Kanban、クリスタル、Scrumなどの他のプロセスを含む包括的な用語です。 ScrumはAgileですが、AgileはScrumではありません。
Scrumを使用するタイミング
以下の場合はScrumの使用をお勧めします:
- プロジェクトの要件は変化し、進化します
- 継続的なフィードバックが必要です
- これまで仕事をしたことがないので、仕事の大部分をこなす方法を見つける必要があります
- 固定リリース日にコミットする必要はありません
- プロジェクトチームは自主性を求める
- ソフトウェアを定期的に提供する必要がある
Scrumは、不明な点が多いプロジェクトや、時間の経過とともに進化するプロジェクトに適しています。 Scrumはこうした変更に非常に効果的に対処するため、プロセス全体を通じて簡単に新しい情報や機能に対応できます。
Agileを使用するタイミング
Agileを使用するタイミングとScrumを使用するタイミングの間の線はあいまいです。 ScrumはAgile プロセスの 1 つのフレームワークであるため、両者に多くの共通点があります。 まずはAgile全般を使うべきかどうかを理解しておくとよいでしょう。 Agile手法が自分に合っているような場合は、使用するAgileのフレームワークを選択できます (Scrumは 1 つのフレームワークです)。
以下の場合はAgileの使用をお勧めします:
- 最終製品が明確に定義されていない
- クライアント/関係者はスコープを変更できる必要があります
- 変更はプロセス全体で実施する必要があります
- 開発者は適応性があり、独立して考えることができます
- 迅速なデプロイに向けて最適化する必要があります
ハイブリッド型アプローチ
純粋なScrumアプローチがプロジェクトに合わない場合は、ハイブリッドモデルを試すこともできます。 AgileまたはScrumの原則を組み合わせ、フレームワークを適応させ、より効果的に拡張する方法がいくつかあります。
たとえば、Disciplined Agile Delivery (DAD) はAgile、Scrum、リーンの慣行に基づいて構築され、しっかりとした基盤を提供して拡張できます。 DAD は、Scrum、Kanban、エクストリーム プログラミングなどの戦略を取って、Agileに対してより一貫性のあるアプローチを提供するために開発されました。 DAD は、これらの既存のフレームワークのいずれかを学び、必要に応じて協力し合う時間を取るのではなく、関連するすべてのテクニックをすでに組み合わせています。
その他のハイブリッド手法には、スケーリング ルールとガイドラインでScrumを拡張する Large-Scale Scrum (LeSS) や、基本的なリーンとAgileの原則に基づく Scaled Agile Framework (SaFE) などがあります。
KanbanとScrum
相違点と類似点: ScrumとKanban
ScrumとKanbanはどちらもAgileの味わいですが、いくつかの明確な違いがあります。
- Scrumには要特定の役割が必ですが、Kanbanには必須の役割はありません。
- Scrumは時間区切りされたイテレーションに基づいており、計画、プロセスの改善、リリースを組み合わせたものです。 Kanbanでは、これらのアクティビティを定期的に、または必要なときにいつでも行うことができます。
- Scrumでは各イテレーションで進行中の 作業 (WIP) を 制限し、Kanbanでは各ワークフローの WIP を制限します。
- Scrumは 変化に抵抗する一方で、Kanbanは簡単に変化に対応し、受け入れます。 Scrumでは、チームがスプリントにストーリーをコミットしたら、後でストーリーを追加することはできません。 Kanbanでは、WIP 制限内にある場合に限り、ストーリーを必要に応じて追加または変更できます。
- Scrumボードは各スプリントの後にリセットされます。 Kanbanボードは継続的に使用されます。
- Scrumチームは 部門 を超え、1 つのチームがScrumボードを所有します。 Kanbanでは、チームが部門横断型である必要はなく、誰でもKanbanボードを所有できます。
- Scrum チームでは見積もりが必要ですが、Kanbanは見積もりを必要としません。
また、ScrumとKanbanにはいくつかの類似点があります:
- 経験的です。 自分に何が適しているかを確認するには、プロセスを実験する必要があります。
- 両者とも、チームメンバーが一度に複数の製品に取り組むことができます。
- リーンとAgileです。
- 両方とも WIP を制限します (ただし、各制限 WIP の方法は異なります)
- プルスケジューリングを使用する
- ソフトウェアの提供を早期かつ頻繁に行うことに重点を置く
- どちらも透明性を使用してプロセスを改善します
KanbanとScrumは、お互いにどのように関連していますか?
KanbanとScrumはどちらもAgileソフトウェア開発のフレームワークです。 どちらも大きく複雑なタスクを取り、小さなチャンクに分割します。 KanbanとScrumはまた、プロセスの継続的な改善と最適化に取り組み、仕事を非常に可視化したいと考えています。
KanbanもScrumも非常に適応性が高い一方で、ScrumはKanbanよりも厳格です。 Scrumにはより多くの制約があるのに対し、Kanbanはより柔軟です。
Kanbanを使用するタイミング
以下の場合は、Kanbanの使用をお勧めします:
- その場でストーリーを追加したり、スプリントを変更したりする必要があります
- イテレーションは必要ありません
- 見積もりは必要ありません
- いつでもリリースできる機能が必要
- 継続的改善はすでに強調されています
- あなたのチームは大きな変化にうまく対応できません
- デリバリーフローを改善したい
- システムは理解しやすいものである必要があります
ScrumはKanbanよりも柔軟性が低い場合があります。 タイミングはスプリントを中心に展開され、各スプリントは 2 ~ 4 週間続きます。 各スプリントでは、チームは特定の役割を持ち、特定のセレモニーに従います。
Scrumバンとは?
ScrumバンはScrumとKanbanの原則をプルベースのシステムに組み合わせたものになっています。 チームは、立ち上げ時に確立された作業を計画し、バックログを継続的にグルーミングします。 同じScrumミーティングを開催する必要がありますが、頻度はコンテキストやニーズに応じて変化します。 Scrumバンの最も重要な部分は、進行中の作業制限 (WIP 制限) に従うということです。
Scrumバンは、ScrumとKanbanの両方からビットとピースを取ります。 たとえば、定義された役割、毎日のScrum、Scrumからのその他のミーティングなどが含まれます。 Kanbanからは、Kanbanボード、継続的なフロー、必要に応じてボードに変更を追加する機能が必要です。
Scrumばんは技術的なレベルではScrumに似ていますが、文化的なレベルではKanbanによく似ています。 Scrumバンは、一度に大きな変更を行うのではなく、段階的な変更を促します。 チームがScrumからKanbanへの移行を検討している場合、Scrumバンは穏やかな移行を提供できます。
どれがベストですか? KanbanとScrum
KanbanとScrumを比較すると、決定的な結果が得られます。 最適なフレームワークは、プロジェクト、チーム、目標によって異なります。 KanbanもScrumも柔軟なAgile手法であるため、原則を取り入れ、必要に応じて簡単に適用できます。
真のScrumはKanbanよりもはるかに大きな変化であることを忘れてはいけません。 チームはセレモニー、具体的な役割、イテレーションについて学ぶ必要があります。 一方、Kanbanは段階的な改善を促します。 Kanbanの原則は、Scrumでも、すでに実施済みのプロセスに適用できます。 Kanbanを始めるために大幅に変更する必要はありません。
経験則として、チームや組織が非常に行き詰まり、大きな変更が必要な場合は、Scrumの方が適しているかもしれません。 すでに満足しているプロセスがあっても、いくつかの小さな変更を実装したい場合は、Kanbanがおすすめです。
AgileとWaterfall
Waterfallを使用すべきタイミングとAgileを使用するタイミング
Waterfallは、以下の場合に使用することをお勧めします:
- スコープの変更や固定価格契約の使用は想定できません
- プロジェクトは非常にシンプルまたはあなたが前にそれを何度もやった
- 要件は非常によく知られており、固定されています
- 顧客は、事前に何が必要かを正確に知っている
- あなたは整然とした予測可能なプロジェクトに取り組んでいる
Agileは次の場合に使用する必要があります:
- 最終製品が明確に定義されていない
- クライアント/関係者は、スコープを変更する能力を必要とします
- プロジェクト中にどんな種類の変更も予想できます
- 迅速なデプロイが目標
AgileとWaterfallのどちらを選ぶかは、すべて次のようになります: プロジェクト全体で変化が予想される場合や変更が予想される場合は、Agileをご利用下さい。 プロジェクトが固定され、そのまま変わらない、予測可能であることがわかっている場合は、Waterfallの方がよいかもしれません。
どちらが良いですか? AgileとWaterfall
AgileとWaterfallは逆の立場なので、どちらが良いとは言い難いです。 プロジェクト、要件を明確にするレベル、柔軟性の高さによって大きく異なります。
最終製品がどうあるべきかという明確なイメージがあり、変更されない固定要件があり、比較的単純なプロジェクトに取り組んでいる場合、AgileよりもWaterfallの方が良いという意見もあります。 変更に対処する必要がない場合は、Waterfallはシンプルで効率的なプロセスです。 Waterfallの問題点は、変化に対応しなければならないときに発生します。
最終製品の全体像を把握できなければ、変化を予測し、複雑なプロジェクトに取り組んでいるのであれば、Agileが優れています。 Agileは、プロジェクト期間中いつでも新しく進化する要件に対応するように設計されています。
ハイブリッド: AgifallまたはWagile
WaterfallとAgileについてまだ疑問に思っているなら、両方の原則を常に組み合わせてハイブリッドモデルを使用することができます。
たとえば、Agifall はWaterfall プロセスにAgile手法を追加することで、スピードと品質を向上させます。 Agifall プロジェクトでは、調査、戦略、計画の各フェーズをタスクに分割し、スプリントを進め、それらを完了します。 開発フェーズは他のAgileプロジェクトと同様に、前もってより多くの情報を用意します。 また、純粋なWaterfallでは伝統的な次のフェーズが始まるまで、1 つのフェーズが終わるのを待つ必要もありません。 Agifall では、プロジェクトが開始できる時点で開始する必要があります。
Wagileは、Agifallよりもネガティブな意味合いがあります。 ウィキペディアによるWagileの定義は、「AgileからWaterfallに戻り、短いWaterfallをたくさん作り、Agileソフトウェア開発を装ったAgileなWaterfallモデルだと考えることで生まれるソフトウェア開発方法論のグループ」です。
Wagile は、従来のWaterfall モデルを変更することなく、短いイテレーション、毎日のスタンドアップ、または継続的インテグレーションなどのAgile プラクティスをWaterfall モデルの上に採用します。
KanbanとAgile
相違点と類似点: AgileとKanban
KanbanはAgileを実装するための視覚的な方法ですが、多くの違いがあります:
- Kanbanは継続的なフローを提唱し、Agileはイテレーションに取り組みます。
- Kanbanはあらゆる種類の作業に対して 同等に機能しますが、Agileは他のプロジェクトよりもむしろ一部のプロジェクトに適している場合があります。
- Kanbanは誰でも手に入れられますが、Agile手法の中には知識やトレーニングが必要なものもあります。
- Kanbanではワークフローを視覚的に 表現 する必要がありますが、Agileは必要ありません。
- Agileプロジェクトの中には、部門を超えたチームが必要な場合もあれば、Kanbanは必要としないプロジェクトもあります。
- Agileは理念であるのに対し、Kanbanはメソッドです。
AgileとKanbanにも類似点があります:
- どちらもプロジェクトをより小さなチャンクに分割します。
- 継続的改善を重視しています。
- 透明性に高い価値を持たせています。
- どちらも事前に多くの計画を立てる必要はありません。
- デリバリーの高速化に取り組んでいる。
Kanbanを使用すべきタイミングとAgileを使用するタイミング
以下の場合は、Kanbanの使用をお勧めします:
- プロジェクトにはイテレーションは必要ありません
- いつでもリリースできる機能が必要
- チームはインクリメンタルチェンジを好む
- チームはビジュアルでうまく機能します
- デリバリーフローを改善したい
- わかりやすいシステムをお探しの方
そして、以下の場合はAgileの使用をお勧めします:
- 最終製品が明確に定義されていない
- 変更はプロセス全体で実施する必要があります
- 開発者は適応性があり、独立して考えることができます
- あなたは大きな変化を求めている
どちらが良いですか? AgileとKanban
他のプロジェクト管理手法と同様に、100% も優れたフレームワークはありません。 プロジェクトによってはKanbanを選択することもできますが、他のプロジェクトではAgileを実装する必要があります。
チームにどのようなレベルの変更を導入するかを検討してください。 小規模で段階的な変更を伴う既存のフレームワークの上に何かを追加する場合は、Kanbanがおすすめです。 より大きなプロセス変更を行いたいという方は、Agile (Scrumなど) を導入した方がよいでしょう。
また、プロジェクトチームに新しい手法をすぐに使って欲しいという方も、Kanbanは理解しやすいでしょう。 トレーニングは必要なく、既存のプロセスの上で使用できます。 一方、Agile手法の中には、チームの知識を増やす必要があるものもあります。 たとえば、具体的な役割、セレモニー、用語を学ぶ必要があるかもしれません。
リソースと関連する投稿
WaterfallチャートExcel無料のテンプレートをダウンロードするか、Waterfallチャートを一から作成する方法を学びましょう。 また、Waterfallチャートの使い方とWaterfallチャートの特徴をExcelで紹介します。
Agile製品バックログテンプレートからAgileプロジェクト憲章テンプレートまで、Excelで 8 つのAgileプロジェクト管理テンプレートをご覧ください。 Agile テンプレートの使用方法については、Smartsheet
コース:
- PMI Agile認定プラクティショナー (PMI ACP): プロジェクト管理協会 (PMI) が提供するこの認定では、Scrum、Kanban、リーン、エクストリームプログラミング (XP)、テスト主導型開発 (TDD) など、Agileに対する多くの異なるアプローチをカバーしています)。 前提条件には、チームでの一般的なプロジェクト経験 2,000 時間、Agile プロジェクト チームでの 1,500 時間の作業、Agile プラクティスに関する 21 時間のトレーニングが含まれます。
- 認定Scrumマスター (CSM): Scrumアライアンスによるこの認定は、チームがScrumを適切に使用し、価値観を理解し、気が散ることからチームを保護するのに役立ちます。 CSM では、ScrumマスターまたはScrumチームメンバーの役割を果たせます。 CSM 証明書を取得するには、Scrum アライアンス オーソライズド トレーナーの CSM コースを受講し、オンライン テストで進捗状況を示す必要があります。
- 認定Scrum 製品所有者 (CSPO): 認定Scrum製品所有者は、Scrumチームにおける製品所有者の役割を果たすために、Scrumの用語、慣行、原則を学習します。 プロジェクトのビジネス側に最も近く、製品バックログを維持し、全員が優先事項を把握できるようにします。 Scrumアライアンスの認定資格を取得するには、認定Scrumトレーナーが指導した 2 日間の CSPO コースに対して参加する必要があります。
- 認定Scrum プロフェッショナル (CSP): 認定Scrumプロフェッショナルは、すべてのプロジェクトにおけるScrumの実施方法を改善するために、Scrumチームに挑戦します。 CSP に申し込むには、現在、CSM、CSPO、または CSD の資格情報を保持し、最低 36 か月のAgile/Scrum経験を持ち、過去 3 年間で 70 のScrum教育ユニットを収集して提出する必要があります。
- 認定Kanbanプラクティショナー(AWK): 認定Kanbanプラクティショナーは、ソフトウェア開発のためのKanban実装に関する知識と専門知識を証明した専門家です。 この認定資格はAgile認定協会 (Inc.) によって提供されており、Agileプラクティスに関する事前トレーニングを受け、ALKP 認定試験に合格する必要があります。
Smartsheetでプロジェクトを管理
ニーズに合わせ変化に対応できるようデザインされた、柔軟性のあるプラットフォームで、チームの能力を最大限に引き出しましょう。 Smartsheet プラットフォームなら、いつでもどこでも簡単に作業の計画、保存、管理、およびレポート作成が可能なため、チームはより効率的かつ効果的に仕事を進めることができるようになります。作業に関して主要なメトリックを表示したり、リアルタイムの可視性を提供したりするために、ロールアップ レポート、ダッシュボード、および自動化されたワークフローを作成する機能も装備されており、チーム メンバーをつないで情報共有を促進することが可能です。 やるべきことを明確にすると、チームの生産性と作業達成能力が向上します。ぜひこの機会に Smartsheet を無料でお試しください。
リソースと関連する投稿
WaterfallチャートExcel無料のテンプレートをダウンロードするか、Waterfallチャートを一から作成する方法を学びましょう。 また、Waterfallチャートの使い方とWaterfallチャートの特徴をExcelで紹介します。
Agile製品バックログテンプレートからAgileプロジェクト憲章テンプレートまで、Excelで 8 つのAgileプロジェクト管理テンプレートをご覧ください。 Agile テンプレートの使用方法については、Smartsheet
Agile計画: プロジェクトマネージャーのためのベストプラクティス
コース:
- PMI Agile認定プラクティショナー (PMI ACP): プロジェクト管理協会 (PMI) が提供するこの認定では、Scrum、Kanban、リーン、エクストリームプログラミング (XP)、テスト主導型開発 (TDD) など、Agileに対する多くの異なるアプローチをカバーしています)。 前提条件には、チームでの一般的なプロジェクト経験 2,000 時間、Agile プロジェクト チームでの 1,500 時間の作業、Agile プラクティスに関する 21 時間のトレーニングが含まれます。
- 認定Scrumマスター (CSM): Scrumアライアンスによるこの認定は、チームがScrumを適切に使用し、価値観を理解し、気が散ることからチームを保護するのに役立ちます。 CSM では、ScrumマスターまたはScrumチームメンバーの役割を果たせます。 CSM 証明書を取得するには、Scrum アライアンス オーソライズド トレーナーの CSM コースを受講し、オンライン テストで進捗状況を示す必要があります。
- 認定Scrum 製品所有者 (CSPO): 認定Scrum製品所有者は、Scrumチームにおける製品所有者の役割を果たすために、Scrumの用語、慣行、原則を学習します。 プロジェクトのビジネス側に最も近く、製品バックログを維持し、全員が優先事項を把握できるようにします。 Scrumアライアンスの認定資格を取得するには、認定Scrumトレーナーが指導した 2 日間の CSPO コースに対して参加する必要があります。
- 認定Scrum開発者 (CSD): 認定Scrum開発者は、専門的なAgileエンジニアリングスキルを学び、正式なトレーニングと技術スキル評価を通じて知識を実証します。 CSD のコースは、Scrum環境で作業するソフトウェア開発者を目指しています。 Scrumアライアンスで CSD を獲得するには、Scrumアライアンス登録教育プロバイダとScrumアライアンス認定インストラクターによる 5 日間の正式なトレーニングが必要です。
- 認定Scrum プロフェッショナル (CSP): 認定Scrumプロフェッショナルは、すべてのプロジェクトにおけるScrumの実施方法を改善するために、Scrumチームに挑戦します。 CSP に申し込むには、現在、CSM、CSPO、または CSD の資格情報を保持し、最低 36 か月のAgile/Scrum経験を持ち、過去 3 年間で 70 のScrum教育ユニットを収集して提出する必要があります。
- 認定Kanbanプラクティショナー(AWK): 認定Kanbanプラクティショナーは、ソフトウェア開発のためのKanban実装に関する知識と専門知識を証明した専門家です。 この認定資格はAgile認定協会 (Inc.) によって提供されており、Agileプラクティスに関する事前トレーニングを受け、ALKP 認定試験に合格する必要があります。
Smartsheetでプロジェクトを管理
ニーズに合わせ変化に対応できるようデザインされた、柔軟性のあるプラットフォームで、チームの能力を最大限に引き出しましょう。 Smartsheet プラットフォームなら、いつでもどこでも簡単に作業の計画、保存、管理、およびレポート作成が可能なため、チームはより効率的かつ効果的に仕事を進めることができるようになります。作業に関して主要なメトリックを表示したり、リアルタイムの可視性を提供したりするために、ロールアップ レポート、ダッシュボード、および自動化されたワークフローを作成する機能も装備されており、チーム メンバーをつないで情報共有を促進することが可能です。 やるべきことを明確にすると、チームの生産性と作業達成能力が向上します。ぜひこの機会に Smartsheet を無料でお試しください。