アジャイル開発とスクラムの基礎勉
今日は昨日に続いてアジャイルについて学ぼうと翔泳社さんから2001年に刊行された『アジャイル開発とスクラム 第2版 顧客・技術・経営をつなぐ協調的ソフトウェア開発マネジメント』を読みました。昨日読んだ『SPRINT 最速仕事術』でsprintに触れたのですが、よくよく今回の本を読んで見えると、スクラムのスプリントとスプリントって別物だったんですね。今回は改めて、そういったアジャイルとスクラムの基礎を知ろうと思います。
【概要】
学んだこと:アジャイルとスクラムの基礎と進め方(プラクティス)を学んだ
実践すること:まずはインセプションデッキ(チーム結成時のドキュメント)作成から始める
読んだ理由
今までのキャリアのなかで、チームで動いたことがほとんどないので、うまくチームに馴染めるようスクラムはなんとなく学んでおきたいと思っていました。今回この書籍を読んだのは大正解で、やはりソフトウェア企業は面白そう、という気持ちになれました。時間があったらオーム社さんの『アジャイルサムライ−達人開発者への道−』も読もうかとは思いますが、現状ではこの本を読み込めば良さそうです。
学んだこと
まず勉強になったのが「IT(開発)のゴールはビジネスとしての効果をあげること」ということです。IT活用の本質として「業務の効率化」というのはよく言われていることではあるのですが、「完成させること」がゴールではないことは頭の片隅に入れておくのに良いと思いました。
その上で「アジャイルとは?」というお話ですが、もとはベトナム戦争従軍時に極限状態での臨機応変なマネジメントの重要さに気づき、その後ハイテク企業を渡り歩く中で作られた価値観だそうです。アジャイルは価値観なので、いくつか実践するための手法があるのですが、その中でも人気なのがスクラムです。
スクラムは全体が協同するためのコミュニケーションルールが以下の3つあります。
- 責任
- イベント
- 作成物
責任
責任はメンバーの役割を定めたもので役割は3つあります。
- プロダクトオーナー(プロダクトに責任をもつ)
- 開発者(コーダー、テスター、デザイナーといった区別はしない)
- スクラムマスター(チーム支持する責任を持つ。障害物を取り除く)
この3つがスクラムチームになります。一般的にはオーナーと開発者は揉めがちですが、同じチームに組み込むことによって「問題VS私たち」という構造にします。
イベント
イベントはプロジェクトを回す期間内で起す行動です。以下のような流れがあります。
- スプリント(1ヶ月以内の行動スパン)
- スプリントプランニング(1回のスプリントで行う計画を練るミーティング。スプリントのゴールをメンバー全員で合意する)
- デイリースクラム(15分の朝会。目的に合わせた再計画をしていく)
- スプリントレビュー(成果物をデモストレーションしてフィードバックを得る)
- スプリントレトロスペクティブ(スプリントの振り返り)
成果物
スプリントを回していくことで成果物が出てくるのですが、スクラムでは以下の3つが定義されています。
スクラムでは上記のルールがあるだけです。対話を重視しており、チーム内の暗黙知を共有し、テストとコードという動くものを作っていくことによって、品質を保っていきます。人とチームを育てる「場づくり」としても注目されている手法です。
スクラムを回していく方法はプラクティスと呼び、プラクティスには以下のようなものがあります。
インセプションデッキのみ初耳だったのですが、これはチーム結成時に作成するドキュメントです。プロジェクトに対してWhyとHowを表示しておくことによって、プロジェクトの灯台にします。
Why
- チームの目的
- プロダクトの説明
- メンバーの役割と強み、期待していること
- パッケージとデザイン
- やらないことリスト
- ステークホルダー
How
- 利用する技術
- リスクの特定
- スケジュール
- 最重要項目の洗い出し
- 初回の動き
スクラムを構成するものは以上です。スクラムはアジャイル開発の中でも人気の手法で、採用理由としては市場投入までの時間短縮があげられています。
実践すること
スクラムはチームで成果を作っていく活動でもあるので、どのようなプロジェクトにも組み込みやすいと思います。とはいえ、プラクティスはまだ実践する機会がないので、まずはインセプションデッキを作りながら、小さなチームで実行していきたいと思います。アジャイルやスクラムは勉強会でも人気のテーマなので、積極的に参加をしていきたいと思います。