見出し画像

「アジャイル開発」、「スクラム」、「スプリント」とは?

42Tokyoにて、チーム課題に取り組んでいる。

そこで耳にしたのが「アジャイル開発」や「スクラム」、「スプリント」という言葉。

実際にビジネスの現場で使われる開発の手法のようだ。

結論からいってしまうと、これらは別々のものではなくつながっており、「アジャイル開発」の一つの手法が「スクラム」と呼ばれ、その「スクラム」の中でひとつの基準となる考え方が「スプリント」だ。

今回は、これらの意味や違いが判らなかったのでまとめてみる。

アジャイル開発とは

アジャイル開発は、トライアンドエラーを前提とした開発方法。

適宜、計画の見直しを検討しながら、絶えず開発を続けていくのが特徴だ。

数週間や数ヶ月の短い期間で開発を行う。

アジャイル開発のメリットは、顧客からの要望をもとに「最低限の機能」を持つプロダクトを「すぐにローンチ」できる点。

そして、顧客の声をこまめにフィードバックできるので、機能の調整もしやすい。

さらに、柔軟な変更も含めた計画立案、開発作業実行が可能な点だ。

このアジャイル開発とよく比較されるのが、「ウォーターフォール開発」というむかし主流だった手法。

アジャイル開発は、設計に余白を持たせることで、柔軟に仕様変更やトラブルに対応することが可能となっている。

アジャイル開発はのデメリットは、WebサービスやWebアプリ、スマホアプリなどの開発に向いているが、企業の基幹システムや医療システムといった「大規模な開発」には適さない。

そして、アジャイル開発の手順を簡単にまとめたのが以下となる。

1.顧客満足を最優先に動く

2.ソフトウェアを素早く提供

3.クライアントと開発者がプロジェクトにおいて協力して動く

このアジャイル開発にはさまざまな手法がありますが、特に有名なのが「スクラム」だ。

スクラムとは

名前の通り、ラグビーのスクラムに由来した開発手法。

チームメンバー間の連携を重要視しており、チームを構成して役割やタスクを分散して開発を行う。

スクラムは、サービスやプロダクトの開発スピードを高め、変化に強く柔軟性が高いの手法といえる。

スクラムの特徴の一つは「2種類のバックログ」。

バックログとは、チームにとっての「達成すべき目標」や「実現するべき機能」を意味している。

最初のものは「プロダクト・バックログ」とよばれ、機能や改善要素などをリスト化したもの。

システムにおける機能の優先順位が記載され、定期的にステークホルダー全員で共有し、プロダクトの現在の状況を共有、把握するのに役立つ。

もう一方は「スプリント・バックログ」とよばれ、プロダクト・バックログをスプリントごとに切り分けた、タスクリスト。

これは次の項で詳しく説明する。

スクラムの二つ目の特徴は「チーム主体のロール」だ。

リーダーやマネージャーに責任を押しつけず、チームで一丸となってマネジメントを行うことが、スクラムチームの在り方となる。

そのため、メンバー間のコミュニケーションがとても重要視されている。

ここで、スクラムのメリットについてまとめる。

まず、顧客との認識のズレをなくし、具体的なイメージを提示できる点。

スクラムでは、短い期間で顧客にシステムを提示することができるので、もし顧客の要望と乖離したものを開発してしても、開発途中での軌道修正が容易にできる。

二つめに、問題が起きても、迅速に対応することができる点。

毎日チームでミーティングを行い、進捗報告や課題、困っていることを報告する機会が設けられので、メンバー間で課題解決・問題解決に取り組むことができる。

三つめに、機能という単位で工数を見積もることができ、計画がより現実に近いものになる点。

「以前に似たような機能を開発したときに、○人日かかった」、「この機能を製造するのに〇人日かかったから、この機能は〇人日くらいだろう」といったように、以前の経験を蓄積することが可能。

その経験を、新機能製造のさいの計画見積時に参考にできるため、よりリアルな数字で計画を立てることができる。

スプリントとは

スプリントは日本語で「短距離走」という意味。

スクラムにおいて、細切れにして開発を行うことを示している。

具体的には、スプリントでは1週間から2週間を基準に、タイムボックスという期間を構築し、そのタイムボックスごとに仕様設計や開発、リリースを行う。

この工程を繰り返して開発を行うことがスプリントの特徴だ。

スプリントを上手く組み立てて開発を行っていくには、以下のような役割が必要となる。

プロダクトオーナー:プロジェクト管理をおこなう総責任者

スクラムマスター:開発における課題解決やルール説明をおこなう調整役

開発メンバー:実際にシステム設計や開発をおこなうスキルを持ったメンバー

スプリントのメリットは、アジャイル開発やスクラムのメリットと同様だが、より短期目標を設定するので、モチベーションの向上につながる。

具体的な進め方だが、まずはプロダクト・バックログをもとに「スプリント・バックログ」と呼ばれる計画書を作成。

スプリント・バックログには、以下のような項目を記載していく必要があります。
・スプリントの目標
・開発期間
・システムの詳細仕様
・作業の内容
・作業に当たる各担当者

スプリント・バックログの制作が完了したら、次は実際にスプリントを実施する。

この期間中は「デイリースクラム」と呼ばれるミーティングを定期的に開催。

デイリースクラムでは、今までの作業状況や本日の作業予定、現状の課題などを短時間で共有していくのが理想といわれる。

進捗に問題があったり、課題が見つかったりした際は、放置せずにすぐに対策する。

つぎに「スプリントレビュー」というシステム検証をおこなう。

プロダクトオーナーが立ち会い、完成したステムの動作を確認する。

必要であれば、開発に直接かかわっていない顧客などの関係者も参加する必要がある。

機能に問題がなければリリースへ移行し、問題があれば次のスプリントで解決するといった対策をおこなう。

スプリントのプロセスがいったん終了したあとは、反省会として「スプリントレトロスペクティブ」を行う。

スプリントレトロスペクティブでは、次のスプリントをより良く進められるように意見を出し合う。

たとえば、スプリント実行で良かった点や良くなかった点、フィードバックをどのように活用するか、など。

スプリントレトロスペクティブのあとは、またスプリント・バックログ作成に戻り、何回も繰り返してシステムを構築していく。

サポートいただけると、note発信の励みになります! いつもサポートしてくださっている皆様には大変感謝しています🙇 がんばっていきますので、何卒よろしくお願いいたします!