スクラムマスターをやっていた著者が,今回はスクラム開発について解説する。
スクラム開発とは,近年ソフトウェア開発の現場で用いられているアジャイル開発手法の一つである。アジャイル開発手法というのが,よくウォーターフォール開発と比較されるのだが,まずはここら辺の用語を整理しよう。
ウォータフォール開発
名前の通り,滝が落ちるようなイメージで,上流の工程から下流の工程に一方向に流れるように進める開発手法。一番最初に作りたいものをがっちり決めて,その通りに作りましょう,という手法。
以下がォータフォール開発の典型的な流れ
- 要件定義(何を作るか決める)
- 設計(どう作るか決める)
- 実装(実際にコードを書く)
- テスト(バグがないか確認)
- リリース(完成品を納品)
この1-5 の流れを1方向に行なっていく。前の工程に後戻りがしにくい。
柔軟な仕様変更が求められるソフトウェア開発の現場では,後戻りのできないウォーターフォール開発は機能しにくい。そこで,ソフトウェア開発の現場でよく用いられているのが,アジャイル開発である。
アジャイル開発
2001年 アメリカにて,17 名のソフトウェアエンジニアが,「アジャイルソフトウェア開発宣言(長いので以下アジャイル宣言)」というものを発表した。このアジャイル宣言(長いので以下ア宣)では,ソフトウェア開発に重要な12の価値観を宣言している。
ア宣で述べられている12の価値観を、超ざっくりまとめると,以下の特徴になる。
特徴 | 説明 |
---|---|
小さく早く作る | 大きな機能を一気に作らず、小さな単位で短期間に作って見せる |
繰り返し(イテレーション) | 開発・テスト・振り返りを何度も繰り返す |
顧客との協力 | 開発中も顧客とコミュニケーションをとりながら進める |
変化を歓迎 | 途中で要件が変わっても対応できる設計 |
チームで自己管理 | メンバーが自律的に動き、役割分担して協力しながら進める |
特に大事なのは,動くもの(多くはソフトウェア)を,短いスパンで作り続け,要求変更を受け入れながら修正していく点だ。
そして.アジャイル開発とは具体的な開発手法ではなく,ア宣によって定められた価値観や開発の考え方を指す。
ちなみにアジャイル(Agile)とは,「素早い」・「機敏な」といった意味である。
スクラム開発・スクラムチーム
スクラム開発は,アジャイル開発手法の一つ。アジャイル開発の価値観をベースにした,具体的な開発手法である。スクラム開発では,PO(Product Owner), SM(Scrum Master), 開発メンバー からなるスクラムチームを組み,開発を進める。
- PO (Product Owner): スクラム開発プロジェクトに必ず一人置かれる。開発メンバーとの兼任はできない。最終成果物であるプロダクトに対して責任を持つ人。 成果物のビジョンを説明したり,予算やスケジュール管理をざっくり決める人でもある(開発チームとの相談は必要)。開発チームに対して、相談は可能だが、原則干渉はできない。
- SM(Scrum Master): スクラム開発プロジェクトに必ず一人置かれる。開発メンバーとの兼任はできるが(非推奨),POとの兼任はできない。開発チームが円滑に開発できるように,障害を取り除いたり,スクラムチーム外部との交渉を行ったりする。また,チームがスクラム開発に慣れていない場合は,Scrum開発の専門家として,チームにスクラム開発の説明を行う。
- 開発メンバー: 通常3-9 人程度が好ましいとされる。実際にプロダクトの開発を行うメンバー。プロダクトを作るために必要な工程(設計・コーディング・テストなど)全てを開発メンバーで賄えていることが理想。また,実際の開発はこのチームメンバーでタスクや進捗管理を行い,開発メンバーで責任を持って進める(責任を取るのはPOだが)。
スクラム開発の具体的なやり方も書こうと思ったが,疲れたので今日はここまで。
コメント