スクラムとは
スクラムは、自己組織化し、共通の目標に向けて取り組むためにチームが使用する管理フレームワークです。効率的なプロジェクトの実現のための一連の会議、ツール、役割について記述します。重要な試合のために練習しているスポーツチームのように、スクラムの練習は、チームが自己管理し、経験から学び、変化に適応することを可能にします。ソフトウェアチームは、複雑な問題を費用対効果が高い方法で持続的に解決するために、スクラムを使用します。
スクラムの方法論とは何ですか?
スクラムの方法論は、特定の原則と価値観によって特徴付けられます。
プロジェクトの成功のためのスクラムの原則
透明性
チームは、他の人が経験している可能性のある課題を誰もが認識している環境で作業します。部門の枠を超えたチームメンバーとプロジェクトオーナーの間の定期的な対面の会話は、誤解や情報のボトルネックを防ぎます。
振り返り
頻繁な振り返りポイントがフレームワークに組み込まれているため、チームメンバーは進捗状況を確認できます。プロジェクトマネージャーは、これらのレビューミーティングで得たインサイトを見積もりと将来の計画に使用します。その結果、プロジェクトは、予算内でより効率的かつスケジュールどおりに実行できます。
適応
チームメンバーは、顧客の要件の変化に基づいてタスクの優先順位を変更できます。これらのメンバーは、最初に完了するタスクと、将来再検討するタスクを決定します。
プロジェクトチームにとってのスクラムの価値
スクラムチームは、5 つのコアバリューに従います。
コミットメント
スクラムチームのメンバーは、時間ベースのタスクと目標にコミットしており、最適なソリューションを見つけるための継続的な改善に力を注いでいます。
勇気
スクラムチームは、オープンで困難な質問をすることで勇気を示します。 同チームは、最善の解決策にたどり着くために、正直で透明性のある議論をしています。
フォーカス
任意の期間中、チームメンバーは、タスクのプロダクトバックログから作業します。これらのメンバーは、限られた時間枠内で成果物を提供するために、選択されたタスクに焦点を合わせます。
オープンネス
スクラムチームのメンバーは、個人の学習とプロジェクト全体の質をサポートする新しいアイデアと機会に対してオープンな姿勢を維持します。
リスペクト
チームメンバーは、プロジェクトマネージャー、相手、およびスクラムプロセスを尊重します。このリスペクトの文化は、チーム内でのコラボレーションと協力の精神を生み出します。
スクラムはどのように機能しますか?
スクラムは、学ぶのは簡単ですが、精通するのは難しいフレームワークです。スクラムの共同創設者である Jeff Sutherland 氏と Ken Schwaber 氏は、「The Scrum Guide」で基本的な概念を説明しています。このガイドでは、スクラムプロセスの詳細な概要と、それらを効果的に実施する方法について説明しています。
スクラムの本質は、スプリントと呼ばれる一定期間に顧客価値を実現する自己組織化チームです。スクラムは、各スプリントに関連付けられたアーティファクト、役割、イベントを定義します。これらのそれぞれについて、詳しく見ていきましょう。
スクラムアーティファクトとは何ですか?
スクラムチームは、スクラムアーティファクトと呼ばれるツールを使用して、問題を解決し、プロジェクトを管理します。スクラムアーティファクトは、チームメンバーとステークホルダーに重要な計画とタスク情報を提供します。3 つの主要なアーティファクトがあります。
プロダクトバックログ
プロダクトバックログは、プロジェクトを成功させるために完了する必要のある機能、要件、機能強化、修正の動的なリストです。これは基本的にチームの To Do リストであり、マーケットの変化に適応するために絶えず再検討され、優先順位が付け直されます。プロダクトオーナーはリストを維持および更新し、無関係なアイテムを削除したり、顧客からの新しいリクエストを追加したりします。
スプリントバックログ
スプリントバックログは、現在のスプリントサイクルで開発チームが完了する必要のあるアイテムのリストです。各スプリントの前に、チームはプロダクトバックログから作業するアイテムを選択します。スプリントバックログは柔軟性があり、スプリント中に進化する可能性があります。
インクリメント
インクリメントは、目標またはビジョンに向けた一歩です。スプリントの使用可能な最終製品です。チームは、さまざまな方法を採用して、スプリントゴールを定義および実証できます。柔軟でありながらも、基本的なスプリントゴール (チームが現在のスプリントから達成したいこと) について妥協することはできません。
例えば、一部のチームは、スプリントの終了時に顧客に何かをリリースすることを選択したため、ソフトウェアの変更がリリースされると、スプリントゴールは完了します。他のチームは、一緒にリリースされる一連の機能の完成に取り組む可能性があります。この場合は、機能テストが正常に完了すると、スプリントゴールが完了します。
スクラムにはどのような役割がありますか?
スクラムチームには、プロダクトオーナー、スクラムリーダー、開発チームの 3 つの特定の役割が必要です。
プロダクトオーナー
プロダクトオーナーは、開発チームがビジネスに最大の価値を提供できるようにすることに注力します。エンドユーザーや顧客の変化するニーズを理解し、優先順位を付けます。有能なプロダクトオーナーは次のことを行います。
- 次に提供する機能について、チームに明確なガイダンスを提供します。
- ビジネスが望んでいることとチームが理解していることの間のギャップを埋めます。
- リリースのタイミングと頻度を決定します。
スクラムリーダー
- 各スプリントに必要なリソースをスケジュールします。
- 他のスプリントイベントやチームミーティングをファシリテーションします。
- チーム内でデジタルトランスフォーメーションをリードします。
- 新しいテクノロジーを採用する際に、チームのトレーニングをファシリテーションします。
- チーム全体が直面する可能性のある課題を解決するために、外部グループと連絡を取ります。
スクラム開発チーム
スクラムチームは、テスター、デザイナー、UX スペシャリスト、Ops エンジニア、デベロッパーで構成されます。チームメンバーは異なるスキルセットを持ち、相互にクロストレーニングを行うため、いずれのメンバーも業務を遂行する際のボトルネックになることはありません。
Amazon の創設者であるジェフ ベゾスは、チームのサイズを決定する際にピザ 2 枚ルールのルールを推奨しています。すなわち、チームの規模は、チーム内で共有するピザが 2 枚で十分な大きさである必要があります。
スクラム開発チームは次のことを行います。
- スプリントを確実に成功させるために協力して作業します。
- 持続可能な開発慣行を擁護します。
- 明確な We Attitude でプロジェクトを自己組織化し、アプローチします。
- 各スプリントで完了できる作業量の計画と見積もりを推進します。
スクラムイベントとは何ですか?
スクラムイベントまたはスクラムセレモニーは、スクラムチームが定期的に行う一連のミーティングです。一部のスクラムイベントには、次のものが含まれます。
スプリントプランニング
このイベントでは、チームは次のスプリントで完了する予定の作業を見積もります。メンバーは、具体的で、測定可能かつ達成可能なスプリントゴールを定義します。プランニングミーティングの終わりには、すべてのスクラムメンバーは、各インクリメントをスプリントで実現する方法を認識しています。
スプリント
スプリントは、スクラムチームが協力してインクリメントを完了する実際の期間です。スプリントの一般的な期間は 2 週間ですが、プロジェクトとチームのニーズによって異なる場合があります。作業の複雑性がより高いほど、また、未知の領域が多いほど、スプリントは短いものであるべきです。
デイリースクラムまたはスタンドアップ
デイリースクラムは、チームメンバーが状況を確認して、その日の計画を立てる短いミーティングです。メンバーは完了した作業について報告し、スプリントゴールを達成する上での課題を伝えます。全員が立っているときのように、ミーティングをできるだけ短くすることを目的としているため、スタンドアップと呼ばれます。
スプリントレビュー
スプリントの最後に、チームは非公式のセッションのために集合し、完了した作業を確認して、ステークホルダーに伝えます。プロダクトオーナーは、現在のスプリントに基づいてプロダクトバックログを作り直すこともできます。
スプリントレトロスペクティブ
チームで集まって、スプリント中に何がうまく行き、何がうまく行かなかったのかを文書化して話し合います。得られたアイデアは、将来のスプリントを改善するために用いられます。
ソフトウェア開発においてスクラムが重要なのはなぜですか?
HR、マーケティング、デザインなど、あらゆる種類のチームがスクラムを効果的に使用しています。ただし、スクラムはソフトウェア開発およびエンジニアリングチームでより広範に用いられています。これにより、チームは、コストと予算が制御不能にならないようにしつつ、変化する要件に迅速に対応できます。これは、次の理由で重要です。
困難な状況でも質を維持する能力
品質保証チェックはスクラムフレームワークに組み込まれています。チームは、各スプリントの開始時に要件を定義します。チームはまた、完了に向けたチームビジョンを確立しながら、ソフトウェアまたは製品のライフサイクルを包括的に評価します。これは、要件が関連性のあるままとなり、短期間で達成可能であることを意味します。定期的なプロダクトオーナーのフィードバックとスプリントレビューにより、プロジェクトを通じてチームを継続的に改善できます。
投資利益率の向上
スクラムチームは、顧客の価値とリスク分析に基づいて要件に優先順位を付けます。焦点は、初期の顧客からのフィードバックを収集するためにマーケットにリリースできる、第一次的な機能する製品の開発にあります。スクラム開発は、コストのかかる欠陥が少なく、チームの効率が高く、長期的にはコストを削減できる Fail Fast アプローチが特徴です。
満足度と生産性の高いチーム
見積もりを改善する関連メトリクス
スクラムチームは、プロジェクトのパフォーマンスを測定するために独自のメトリクスを選択します。自らの経験と能力に基づいて、タイムライン、予算、および品質メトリクスを見積もります。見積もりは相対的なものであるため、プロダクトオーナーが管理します。チームはプロジェクトの開始時にさらに多くのサポートを受け、時間の経過とともに作業スピードは自然に上がっていきます。プロジェクトのステークホルダーは、プロジェクトが順調に進むように、作業中の製品をレビューして定期的なフィードバックを提供します。
スクラムとアジャイルの違いは何ですか?
アジャイルとは、ソフトウェア開発におけるマインドセットまたは考え方をいいます。すべてのチームメンバーが継続的な改善と顧客への価値提供に注力できるようにすることは、組織レベルで採用された哲学です。スクラムは、アジャイルで作業を完了するためのフレームワークです。スクラムは、アジャイルのすべてのコア原則を使用してプロジェクトをファシリテーションする方法を定義しますが、アジャイルは必ずしもスクラムを意味するわけではないことに注意することが重要です。多くの異なる方法論は、プロジェクト管理にアジャイルアプローチを採用しています。
スクラム開発チームが DevOps を採用するにはどうすればよいですか?
- ソフトウェアテストの自動化とすべての機能開発のための新しいテストの作成
- 継続的デプロイをサポートするテクノロジースタックとツールの使用
- 各スプリントの終了時における本番稼働環境への変更のリリース