見出し画像

スクラム開発のポイント

こんにちは!ファンリードICTソリューション部です。

これまでウォーターフォール開発の経験しかありませんでしたが、初めてスクラム開発での業務を通じて、実感したことをまとめておきたいと思います。

スクラム開発とは、アジャイル手法の一つで、少人数のチームに分かれて短期間の開発サイクルを繰り返し行うフレームワークです。


1.スクラム開発の特徴

スクラム開発では、プロダクトオーナー、スクラムマスター、開発者ががっちりと連携し、スクラム開発の特徴を最大限発揮することで、スクラムチームとステークホルダーの両者がWinWinの関係を築けていけると感じています。

①タスクを価値、リスク、必要性を基準として並び替える

スプリントプランニングにて、タスクの並び替えを行い、その順にプロダクトを作成することで、成果を最大化させようとします。
(実施が決まったタスク一覧をスプリントバックログと呼びます。)

②固定の短い時間に区切って作業を進める

1~4週間の時間枠(タイムボックス)を1スプリントとし、スプリントバックログ内のタスクを遂行していきます。
各タスク実行時も、ペアプログラミングやモブ(3人以上)プログラミングで、15分程度で役割を入れ替わりながら進めていくことが効果的です。

③現在の状況や問題点を常に明らかにする

デイリースクラムやスプリント内の開発中に、作業の内容や障害になっていることを共有し、状況の変化に気づきやすくします。

④定期的に仕事の進め方に問題がないか確認する

スプリントレビューにて、進捗状況や作っているプロダクトで期待されている成果が得られているか、定期的に検査します。

⑤やり方を適宜、変更していく

スプリントレトロスペクティブにて、スプリント中に発生した課題に対して、対応方法に問題があるとかもっと良い方法があれば、やり方そのものを改善していきます。改善手法については、KPT法やYWT法などがあります。

2.実務を通じて感じたこと

スクラム開発に関する情報については、WEBや書籍でたくさん公開されていますが、実際に体験して感じたことを、まとめました。

良かった点

①スプリント終了毎に要望された機能をリリースし、動作するものをプロダクトオーナーやステークホルダーに確認していただける
開発者側としては製造の実感を持つことができ、プロダクトオーナー側としてはアウトプットが正しく出来ていることで安心感を得られます。

②スプリント毎に同じ工程を繰り返すため、工程間の立ち上がりに時間を要しない
ウォーターフォールでは工程の初期にドキュメントフォーマットやルール、環境が整っていなかったり、手順が定まっていなかったりして、立ち上がりに時間が掛かることが多いですが、アジャイル開発ではスプリント回数が増える毎に低減させることが出来ます。

③ペアプログラミング、モブプログラミングとすることで、レビューも兼ねられる
実装時に複数人の意見が反映されているため、本レビュー時の時間や指摘事項の低減に繋げられます。

苦労した点

①常にコミュニケーションを取り続ける必要がある
ペアプログラミング、モブプログラミングを採用している場合、他メンバーと常にコミュケーションを取る必要があり、自分のペースで仕事を進めたい人には向かないかもしれません。

②残業しない前提で考えた場合、数時間作業が停滞するとリカバリーが難しい
スプリントプランニング時に、タスク自体の見積時間と人員リソースを考慮して、スプリントで実行するタスクを決めています。
スプリント期間を1週間とした場合、期間あたりの時間の比重が高くなるため、数時間の停滞のリカバリーは難しくなっていきます。

③当該プロジェクトの経験が浅いメンバーが、うまく役割を果たせないケースが発生する
ペアプログラミング、モブプログラミングではドライバー(指示者)の役割があるが、経験が浅いメンバーでは作業者に速やかに正しい指示を出せないことがあります。

3.まとめ

スクラム開発はメリットを最大限に享受出来る環境下であれば、定期的に見える形で成果を出せる理想的な開発手法である反面、リソースや納期等の問題でうまくスプリントを回すことが出来ないリスクも考慮しておく必要があります。

参考資料

・アジャイル開発の進め方
https://www.ipa.go.jp/jinzai/skill-standard/plus-it-ui/itssplus/ps6vr70000001i7c-att/000065606.pdf

・スクラム開発とは何か?特徴やメリット、プロセスをやさしく解説 https://ssaits.jp/promapedia/method/scram.html

最後までお読みいただき、ありがとうございました!