少しずつ読んでいきたいと思います。で、気になったところをメモ。
そもそもアジャイルって何
そういえば「アジャイル」ってそもそも何なのか気になったので調べました。
アジャイルソフトウェア開発 (アジャイルソフトウェアかいはつ、英: agile software development) は、ソフトウェア工学において迅速かつ適応的にソフトウェア開発を行う軽量な開発手法群の総称である。
アジャイルソフトウェア開発 - Wikipedia
これだけだとちょっと漠然としてますね。WikiPediaをざっと読んだ感じでは「設計、実装、テストを少しずつ横断的にやってそれを繰り返す手法」と考えればいいのかなと思いました。厳密には違うと思いますが、読書をすすめるうちに追々勉強していこうと思います。
また、よくアジャイル開発の話で出てくる下記の単語
- スクラム
- エクストリームプログラミング
- ユーザ機能駆動開発
とかはアジャイル開発の種類の一つみたいですね。
計画の目的
ここから本編です。
計画づくりとは、「なにをつくるべきか?」に対する答えを探る試み。
よい計画作りとは、下記のような特徴を持ったプロセスのこと。
- リスクを軽減する
- 不確実性を減らす
- 意志決定を支援する
- 信頼を確立する
- 情報を伝達する
上記はそれぞれ「きちんと計画を立てよう!」と考えて実行していったらこうなるよねーといった感じの特徴ですね。
例えば
- 不明な点について下調べをしたらリスクが減り、
- プロダクトに関する新しい知識はプロダクトを洗練させ、
- メリットやコストについて調べたらそれはプロジェクトを実施するかどうかの意志決定の材料になり、
- 計画に沿った開発が出来たら顧客との信頼関係が育まれ、
- 根拠のある計画はプロジェクト内コミュニケーションの基盤になる。
こんな感じでしょうか。
アジャイルな「計画づくり」とは
最初に決めたゴールになんとしてもたどり着くのが目的ではなく、よりよいゴールが見つかったら方向転換できるようにする。また、よりよいゴールを積極的に探していくのがアジャイルな計画作り。
アジャイルな計画作りを定義すると
- 計画よりも計画作りを重視する
- 変化を促進する
- 計画そのものは容易に変更できる
- プロジェクト全体にわたって繰り返される
"フィーチャ"の定義
この本でのフィーチャの定義は、ソフトウェアの機能、特性や特徴、性能目標、見た目や使い勝手など、ソフトウェアを使う側の視点で見た機能のこと。(cucumberのfeatureも同じ意味でつかわれているのかな?→そうっぽい)
アジャイルな開発手法の本
そういえばあまり気にしていなかったけれど、アジャイルな"開発方法"ではなくて、アジャイルな"見積もりと計画作り"なのね。開発方法自体はまた別の本があったりするのかな?→探してみた
今の本読み終わってからどちらか買う