今回は、プロジェクト手法のスクラムについて説明します。スクラムは、ソフトウェア開発手法アジャイルの1つのプロジェクト手法です。私がスクラムについて経験がなかったので、今回は勉強した内容のアウトプット記事になります。
これから、スクラムでプロジェクトを進める人に是非読んでほしい内容となっています。また、スクラムの手法は、通常、ソフトウェアの開発で使用されますが、様々な業種でプロジェクトを進める際に有効な方法がいくつか取り入れられているので、業種問わず、皆さんに読んでほしい内容となっています。
是非、最後までご覧いただけると嬉しいです。
開発手法の種類
まずは、主なソフトウェアの開発手法の種類について説明します。有名なものとして、下記があります。
- ウォーターフォールモデル
- アジャイル開発
- カンバン
1つずつ説明します。
ウォーターフォールモデル
従来の開発手法はウォーターフォールモデルが一般的でした。私も、以前は、この手法でプロジェクトを進めていました。ウォーターフォールモデルの特徴としては、下記特徴があります。
- フェーズモデル
フェーズモデルと呼ばれるプロセスを採用しています。よく耳にする上流工程や下流工程がこれにあたります。各工程が完了すると、次の工程に進みます。開発プロセスには、
①要件定義
②設計
③開発
④テスト
⑤リリース
のプロセスがあります。 - ドキュメント中心
各フェーズの終了時、ドキュメントを作成することが必要です。つまり、要件定義では、要件定義書を作成し、設計では設計書を作成する必要があります。 - 変更が困難
ウォーターフォールでは、各フェーズが終了すると、次のプロセスに進むため、前に戻ることができません。これは、一度決めたことを後で変更することができないという意味です。そのため、開発途中で変更が発生した場合、全体の工程に遅延が起こったり、作業量が増えるというデメリットがあります。 - プロジェクト全体の見通しがしやすい
開発プロセスが直線的なため、プロジェクト全体の見通しがしやすいという特徴があります。
以上が、ウォーターフォールモデルの特徴となります。昔も今もよく使用される手法の一つですが、後で仕様の変更がしずらいので、最近では、アジャイル開発手法がよく採用されます。
アジャイル開発
アジャイル開発は、ウォーターフォールモデルの開発に代わるものとして作られました。アジャイル開発は、ウォーターフォールモデルのデメリットをカバーした開発モデルとなります。アジャイル開発の特徴としては、下記ポイントがあります。
- 変更可能
ユーザーの要件が変わることを前提としている為、柔軟に要件の変更と優先順位を変更することができます。 - 短い反復サイクル
1つの機能を作成するのに、1-4週間の期間で反復して開発を行います。 - コミュニケーションロスが少ない
アジャイル開発では、開発チーム、ステークホルダー、ユーザー間でのコミュニケーションがとても重要です。開発チームは、ステークホルダーとユーザーから意見を聞いて、開発プロセスを改善することができます。 - テスト駆動開発
テスト駆動開発とは、プログラミングでコードを書く際、まず、コードに関するテストを作成します。その後コードを記述し、コードがテストに合格するかを確認する手法です。この手法を行うことで、ソフトウェアの品質を向上させることができます。 - チームが自己組織化する
自己組織化とは、チームの個々が自律した行動により、チームが秩序をもった組織になることをいいます。理屈は相反するこを言っているようですが、受け身の姿勢ではなく、メンバーが自律したことにより大きな秩序のある組織力をもつことができます。
アジャイル開発手法には、いくつかの種類がありますが、今回は私が参画するプロジェクトで採用するスクラムについて後で説明します。
カンバン
カンバンは、トヨタ自動車が生み出した手法で、タスクの視える化と管理を目的とした手法です。カンバンでは、タスクを表すカードを使用し、そのカードをプロジェクトの進行状況に合わせて移動することで、タスクの視える化を行い、優先順位を決定します。カンバンには、以下のような特徴があります。
- タスクの洗い出し
必要なタスクを列挙し、それらをカードに記述します。 - カードの分類
カードをフェーズに分類し、そのカードの状態を示すためにラベルを付けます。 - カードの視える化
カードを見やすく配置し、全体像をつかめるようにします。 - カードの移動
カードをフェーズからフェーズに移動し、カードの進捗状況を管理します。 - カードの更新
タスクが進行するにつれて、カードの情報を更新します。
カンバンは、プロジェクト全体を客観的にみて優先順位を決めるため、プロジェクト管理を効率的に行うことができます。また、進捗状況を視える化できるため、問題点を早期に発見し、改善することができます。
スクラムの説明
スクラムとは、アジャイル開発手法の種類の一つであり、チームワークに重点を置いたプロジェクト手法です。主な特徴として、下記のようなものがあります。
- スクラムチーム
スクラムチームには、おおきく3つのチーム又は役割があります。
①開発チーム:プロダクトを作成する作業者
②プロダクトオーナー:開発するプロダクトのビジョンを策定する人
③スクラムマスター:チームが円滑に活動できるようサポートする人 - スプリント
スクラムでは、短期間(1-4週間)の開発サイクルが反復されますが、そのことをスプリントといいます。スプリントは、チームがプロダクトの新しい機能を開発し、完成させるための期間です。 - プロダクトバックログ
プロダクトバックログとは、優先順位の付いたタスクリストのことをいいます。 - デイリースクラム
デイリースクラムとは、毎日のミーティングのことです。チームが集まり、
①昨日何を実施したか
②今日何を実施するか
③現状何か問題はあるか
を話します。 - スプリントレビュー
スプリントレビューは、スプリント期間終了後に実施する報告のことを言います。チームは、スプリント中に開発した機能のデモを行い、プロダクトオーナーやユーザーからフィードバックをもらいます。 - スプリントレトロスペクティブ
スプリントレトロスペクティブとは、スプリントの終わりに実施される会議のことです。チームがスプリント中に起こった問題点や改善点を共有し、次回のスプリントに取り入れるかを検討します。
以上が、スクラムの説明になります。
スクラムは、短いスパンでスプリントをこなしていきます。各スプリントでユーザーにレビューをしてもらうことで、方向性を間違えることなくプロジェクトを進めていくことができる手法だと私は考えています。
スクラムのデメリット
最後に、スクラムのデメリットについて説明します。下記のようなものがあります。
- 大規模なプロジェクトには向かない
スクラムは小さなチームで実施することが想定されているいた、大規模なプロジェクトには向きません。 - 時間管理が重要
スクラムは短いスプリントで成果を上げることが求められるので、時間の管理がとても重要になります。 - 長期的な結果が見えづらい
短期間で成果がでる一方、長期的な成果が見えづらいというデメリットがあります。
このように、スクラムにはいつくかの問題点があります。参画するプロジェクトによって、プロジェクト手法は、変更する必要があります。
まとめ
本日は、下記3点について説明しました。
- 開発手法の種類
- スクラムの説明
- スクラムのデメリット
プロジェクトの進め方には様々な方法があります。プロジェクトの規模やメンバー等で、プロジェクト手法は変わります。大切なのは、プロジェクトを成功させるために、メンバーやプロジェクトの種類から最適なプロジェクト手法を採用することです。
今後、実際にスクラムでプロジェクトを進めた際のレビュー記事にを書こうと考えています。
これからも、Macのシステムエンジニアとして、日々、習得した知識や経験を発信していきますので、是非、ブックマーク登録してくれると嬉しいです!
それでは、次回のブログで!