システム開発にあたり「アジャイル」や「スクラム」といった開発を聞いたことがあると思います。アジャイル開発は、さまざまな開発を総称したもので、スクラム開発はその内のひとつです。
今回の記事では、スクラム開発の具体的な手順やメリットについて紹介しています。最後まで見ていただくことで、スクラム開発の注意点もわかるので、ぜひ参考にしてください。
アジャイル開発とは?具体的な進め方とは
アジャイル開発は、仕事をする期間や人数を決め、そこから重要な部分から順に作成していくという手法です。
【アジャイルの意味】
- 機敏な
- 素早い
- 頭の回転が早い
アジャイルは、上記のような意味をもち、システム開発において計画的な開発をおこないます。
特徴としては、一気に仕上げるという手順ではなく、開発手順を分けて少しずつ作るというところにあります。
また、進めながら継続的に利用者からのフィードバックを受け、計画を見直すといった手順が必要です。
まとめるとアジャイル開発は、ひとつの手法を指す開発手段ではなく、さまざまな開発をおこないながら、徐々に完成型を目指した手法と言えます。簡単に表現すると「作りながら考える」です。
スクラム開発とは?アジャイル開発との違いを紹介
スクラム開発とは、チーム開発のひとつです。コミュニケーションを図りながら一丸となって進めていく開発手法が特徴です。スクラムとは、ラグビー用語であり「しっかりと組む」「一致団結」という意味を持ちます。
アジャイル開発は、さまざまな手法がありますが、スクラム開発はその中のひとつとなります。
スクラム開発にはバックログの作成が必須です。バックログとは開発するチームで共有する「実現するべき機能」「達成するべき目標」を指します。
バックログがあることで、進捗管理ができ、目標が適切に進むため、スクラム開発には欠かせないものです。
また、スクラム開発では、マネージャーやリーダーといった役職者を主体にするのではなく、チーム内で役割を決めます。チーム内で、セルフマネジメントをおこなうため、コミュニケーションがとても重要になります。
スクラム開発を導入するメリット・デメリット
スクラム開発には、多くのメリットがある半面、デメリットもあります。確認しておくと、スクラム開発の導入の参考になるでしょう。
スクラム開発のメリット | スクラム開発のデメリット |
---|---|
|
|
上記のようなメリットとデメリットがありますので、ひとつずつ確認していきましょう。
スクラム開発のメリットのひとつ目は「急な変更にも柔軟に対応できる」という点です。
コミュニケーションを重視する手法のため、こまめなミーティングが不可欠です。そのため、都度「問題点」「進捗」「課題」などを話し合えるので、軌道修正を図りやすいでしょう。また、問題が早期に発見しやすいのも特徴です。
次に、「生産性向上が期待できる」というメリットがあります。
スクラム開発がうまく機能すれば、生産性が上がります。従来よりも短い期間で開発をおこなうため、生産性の向上に繋がります。また、スクラム開発は、チームで開発をおこない、コミュニケーションを密に図っていきます。個々のスキルや特徴を把握していけるというのも、生産性向上のひとつのポイントです。
最後のメリットとしては、「より正確に見積もることが可能」
スクラム開発は「1つのスプリント(決められた期間)でどれだけの開発ができるのか」が明確に判断できるため、見積がしやすいというメリットがあります。
チーム内でのコミュニケーションが円滑にいけば、さらに正確性が高くなるでしょう。
次に、スクラム開発のデメリットについて紹介します。
まず大きな問題として「スケジュール把握が難しい」という点があります。
スクラム開発は柔軟な開発をメリットとしますが、柔軟に対応できる分、方向性が変わることもあるでしょう。作業工程を細分化するため、全体のスケジュール管理が困難になるケースがあります。
また「協力体制が整わないことがある」というのも危惧されます。
スクラム開発は、短い期間での開発になります。そのため、不慣れなスタッフがいても、教育にあてる時間が持てず、不十分な関わりで終わることがあるでしょう。そのため、開発のスケジュールに合わせたメンバーの選定が必須となるのです。
「コミュニケーションが苦手なエンジニアには不向き」という側面もあります。
チーム内のコミュニケーションは必須です。ミーティングでタスクの進捗を説明する場面も多く、メンバーとの円滑なやりとりも求められます。
コミュニケーションが苦手と感じるメンバーがチームにいると、進行の妨げになってしまうことも考えられます。
スクラム開発のチーム編成には、コミュニケーションスキルも考慮しておこないましょう。
スクラム開発における役割
スクラム開発には、役割を決め各々に責任をもって取り組む必要があります。
【必要な役割】
- スクラムマスター
- プロダクトオーナー
- 開発チーム
役割について解説していきますので、確認していきましょう。
スクラムマスターとは、開発チームのリーダー的役割です。スクラムのルールを定めたり、プロダクトオーナーとの調整をおこなったりします。また、決定したことや変更点などを開発チームに伝え、行動を促します。
スクラムマスターは、各担当で作業の遅れがおこっていないかなどの確認が必要です。
中間管理職のような立場で、コミュニケーションスキルは高く求められます。
プロダクトオーナーは、プロジェクトの責任者の役割です。クライアントとの連絡や製品の方向性を検討していきます。
プロジェクトオーナーは、チーム全体がスムーズに進行できるように管理していきます。
開発チームとは、俯瞰した立場で対応できる人が望ましいです。
開発チームは、開発に専念するという役割です。開発を進める上で必要なものはスクラムマスターに適宜伝え、開発の遅れを発生させないように努めます。
開発といっても、設計やコーディングなどさまざまな役割があり、お互いが責任をもって担当することが求められます。
スクラム開発の手法・流れ
スクラム開発の手法や流れについては以下の通りです。
- プロダクトバックログの作成
- 計画立案(スプリントプランニング)
- 毎日の進捗報告(デイリースクラムミーティング)
- 振り返り(スプリントレビュー)
スクラム開発は上記の内容を繰り返しながらプロジェクトを進行します。順番に確認していきましょう。
①プロダクトバックログの作成
プロダクトバックログとは、どのように開発をおこなっていくか、優先順位が高いものからリスト化した計画書です。
プロダクトバックログの先頭箇所には、最重要項目が表示され、チームは一番初めになにをするべきなのかを把握できます。
プロダクトバックログの共有をおこなうことで、チームが目的を見失わず行動ができます。
②計画立案(スプリントプランニング)
スプリントプランニングは、プロダクトバックログから、スプリント(短い期間)を抜き出しタスク化したものを指します。
長期目標を「プロダクトバックログ」、短期目標を「スプリントバックログ」と分けて考えるとわかりやすいです。
ミーティングなどの報告は、スプリントバックログの進捗や達成度を報告します。
③毎日の進捗報告(デイリースクラムミーティング)
スクラム開発では、デイリースクラムミーティングという毎日の進捗報告をおこないます。ミーティングを通して、課題の共有をおこないます。
コミュニケーションが重要なため、欠かせないミーティングです。
④振り返り(スプリントレビュー)
開発が進み、機能が実装された時点でその都度テスト運用をおこないます。
テスト運用に対してレビューを実施します。このレビューをスプリントレビューといいます。
スプリントレビューが、バックログの基準を満たしているかを評価していくことが重要です。
まとめ
スクラム開発は、生産性の向上が見込めますが、一定のスキルをもったチームメンバーが揃う必要があります。
短期間のタスクを円滑に進めるコミュニケーションや、各々が責任を持ちスキルを発揮することで、チームとしての相乗効果が期待できます。また、Azureを活用することでセキュリティを強化しつつ、業務生産性向上も期待できます。
まずはスクラム開発の役割や意味を理解し、Azure導入によって効率的な開発チームを編成しましょう。