目標達成するために計画的に進める作業、プロジェクトの中でも最近注目されている「スクラム開発」は、プロジェクトを効率的に進めるための新しいアプローチ方法だ。
今回は、スクラム開発の流れとメリットについて、わかりやすく解説しよう。
スクラム開発は、小さなステップを繰り返すイテレーション方式で進める。
大きなプロジェクトを小さなタスクに分け、短期間で結果を出すことが特徴だ。
まずは、プロダクトバックログの作成。
プロジェクトで達成したい目標を洗い出し、それを実現するためのタスクをリストアップする。
次に、小さなタスクを1つのスプリント(短期間の作業期間)に割り当て、そのスプリントで達成する目標を決定する。
チームは毎日短いミーティングを行い、進捗状況や問題を共有し合う。
これがデイリースクラムミーティングだ。
スプリントの終わりにはスプリントレビュー、つまり、達成した成果物を見直し次に活かすための反省を行う。
そして最後がスプリントの進め方を振り返り、改善点を見つけ出すスプリントレトロスペクティブだ。
スクラム開発のメリットは下記のようなものがある。
短期間で成果物を作成するため、早い段階で実際の動作を確認できること。
スプリントごとに計画を立てるため、プロジェクトの途中で変更があっても対応しやすいこと。
チームメンバーが自らタスクを決定し、問題を解決するため、チームのモチベーションが高まること。
スプリントごとに顧客との意見交換を行うことで、顧客の要望を反映しやすいこと。
デイリースクラムミーティングやスプリントレビューを通じて、全員がプロジェクトの進捗を把握しやすくなることだ。
スクラム開発は、チームの協力と柔軟性が求められるアプローチだが、効率的なプロジェクト管理と顧客とのコミュニケーション強化に大きなメリットがある。
今後、さらに多くのプロジェクトで導入されていくことだろう。
ウォーターフォール型の開発では、全ての工程を要件定義・設計・開発・テスト・導入の5段階に分けて開発を進めていく。
要件定義では、まずシステムの完成形がどのようになるのかを定める。
開発を依頼したクライアントとのヒアリングやミーティングを重ね、どういった見た目や機能が欲しいのかを決めていく。
この工程は、たいていの場合キャリアの長い実力者が行う。
定義が決まり完成図ができれば、その完成図通りのシステムを作るために設計に取り組む。
搭載しなければならない機能や必要な情報、データベースの形式など細かい部分を定めていく。
この段階では、まだクライアントと話し合いをはさむことが多い。
設計が完成したら、その設計に従って開発を進めていく。
この過程が、一般的にイメージされるプログラマーの作業だろう。
開発に入るとエンジニアだけの世界になり、それぞれがひたすらコンピューターに向かってコードを打ちこんでいく。
全体の流れをわかっていなくてもできる作業が多いので、外注するケースもある。
プログラミングが済んだら、システムが上手く動くかチェックしていく。
テストでは、機能ごとの動作を確認する「単体テスト」と、全ての機能が上手く連動しているかを確かめる「結合テスト」に分かれる。
最後の仕上げの工程は、「導入」だ。
完成したシステムをクライアントの現場に導入し、正常に動作するかを確認する。
データ移行も必要になる場合があり、正常な動作を確認ができたら開発はそこで完了し、その後は運用・保守を継続的に行っていく。
なお、開発手法はウォーターフォール型だけではない。
このサイト<<http://waterfall-agile.com>>にもある通り複数存在するので、それらも把握しておくと戸惑うことはなくなるだろう。