こんにちは
前の記事には、アジャイルとウォーターフォールの開発モデルの概要や徹底について理解していました。これらの開発モデルがオフショアプロジェクトを開発する際によく適用されている有名なモデルであります。但し、近年IT技術が進化し並びにビジネスのスピードが加速されるため、スクラム開発という他の開発手法がオフショア開発会社においてよく適用されている状態です。
スクラム開発は、1990年代に米国の技術者によって生み出され、「スクラムガイド」で定義されています。その中、「スクラムとは、複雑な問題に対応する適応型のソリューションを通じて、人々、チーム、組織が価値を生み出すための軽量級フレームワークである」と定義しています。 すなわち、スクラム開発(Srum)とはアジャイル手法の1つで、少人数のチームに分かれ短期間の開発サイクルを繰り返し行うフレームワークです。
スクラムは「経験主義」と「リーン思考」に基づいています。その中、経験主義が知識や経験から生まれ、意思決定が観察によってなされます。リーン思考で、ムダを省き本質に集中します。スクラムが機能するのは3つの本柱を実現しています。詳細は以下となります。
透明性とは作業状況がわかるようになることです。作業内容及びよい事実も悪い事実もどちらともの状況はチームメンバーやその作業結果を検収する人に見えるようにしておくということです。透明性が欠けた状態では誤解を招き、無駄なものとなる恐れがあります。
チームメンバーが進捗状況やプロセスなどに問題発生がないかどうかを確認するということです。検査は透明性の上に成り立ち、望ましくない状況や問題に気づくために積極的に行う必要があります。
スクラムスプリントを始めるには、チームリーダーがやるべき仕事を決定し、バックログという一か所で文章化して、管理します。 スプリント計画セッションでは、そのスプリントでバックログのどの仕事に注力するのかを決定します。 スプリントが終わったら、その感想を共有し、次回以降どういった点が改善できるかについて話し合います。この振り返りはレトロスペクティブと呼ばれます。 スクラム開発におけるルールは、「3つの役割」「5つのイベント」「3つの作成物」といわれています。具合を説明していきます。
スクラム開発には、「プロジェクトリーダー」がいることなく、スクラムチームに所属するメンバーは大きく3つ役割にわかれています。
プロダクトオーナー(Product Owner) プロダクトオーナーは「何を開発するか決める人」と定義されています。ユーザーの要望を把握し、ユーザーの体験談を開発チームに伝えることに重点を置きます。設計やコーディング、テストなどの開発作業には直接関わりませんが、進捗状況は把握します。
スクラムマスター(Scrum Master) スクラムがうまく回るように全体を調整するチームリーダーの役割があります。おもな仕事はスクラムのルールや進め方を決め、開発チームが開発期間内に全てのタスクを終わらせることができるように進捗を管理し、開発チームが解決できない課題に取り組み、スクラムの仕組みや進め方を改善するのことです。
スクラム開発の5つイベント スクラムイベント(Event)とは、スクラム開発を実践する上で必要なミーティングです。プロダクトの検査と適応の機会として設けられていて、スクラムに必要な透明性が実現できるようになっています。クラムイベントを実施することは、規則性を生み、スクラムで定義されていない不要な会議を最小限に抑えることができます。すべてのスクラムイベントは、単純に運用できるように、同じ時間、同じ場所で開催されることが必要です。 スプリント(Spint)とは、アウトプットを出すまでの期間のことです。スクラムチームでスプリントの期間を決めて、スプリント内のスクラムイベントを通して、検査と適応を行います。スプリント期間が長すぎると、検査と適応を小まめに実施できないので、リスクが高まります。スプリント期間を短くすると、より多くの学習サイクルが生まれ、リスクが大きくなる前に潰せます。ただ、スプリントは一ヶ月以内の期間で終了します。
プロダクトバックログ(Product Backlog) プロダクトの開発や改善に必要なタスクを優先度順に並べた一覧です。この一覧がチームのメンバー全員に共有され、作業内容を確認でき、ゴールを共通認識できるためです。
スプリントバックログ(Sprint Backlog) スプリントで実施するプロダクトバックログの項目を実行可能なタスクレベルにまで詳細化したものです。プロダクトバックログが開発メンバーより日々確認されて、ゴールが達成できるかを検査し、リスクに適応するように計画を立てていくためです。
インクリメント(Increment) インクリメントとは、スプリントの終わりに納品される、開発者が作成する成果物のことです。新製品や機能、改善、バグ修正など、チームによって異なります。スクラムの関係者がそのインクリメントについて考え、「完了」かどうかを判断します。
まとめ、スクラム開発は柔軟性高いをもち、継続的に更新が必要となりそうなシステムに適すると言われる、優れた開発手法の一つです。ただし、すべてのプロジェクトはスクラム開発が向いているわけではありません。そのため、スクラム開発の特徴をしっかりと、より良い開発の実現に相談します。
このメールアドレスは既に登録済です。