システムを作るときの三つの関心事。
・網羅性
・整合性
・単純性
伝統的なシステム開発方法論は、網羅性と整合性に重点がある。
アジャイルな開発方法論は、単純性に力点がある。
単純に考える、ということをネットで検索していたら、こんなページを見つけた。
The Four Laws of Simplicity, and How to Apply Them to Life
四つのステップで、単純化する。
1.Collect 集める
2.Choose 選ぶ
3.Eliminate 捨てる
4.Organize 組み立てる
Collect 集める
関係ありそうなことを、とりあえず一か所にあつめる。
広いテーブルの上に集めるのが良いらしい。
システム開発だと、さまざまな要求事項の収集かな?
Choose 選ぶ
本当に重要なごく少数のものを選びだす。
これは、かなり難しい。
関係者が多いと、おそらく、合意は難しい。
まあ、だれかに「まかせた」とやるしかないかな?
良いシステム設計の基本は、おそらく、この、ほんとうに重要なごく少数のことを「選ぶ」こと。
ユースケース候補が、100とか200とか集まってきた中から、ほんとうに重要な5つを選べといわれたら、かなり大変。
でも、中核の5つのユースケースを見極めれば、システム全体の構造、開発の段取り、人の割り当てなどが、ともて簡単に決まってくる。
Eliminate 捨てる
これも、難しい。
「捨てます」「やりません」「いりません」とぶっきらぼうにいったら、トラブルの種かな?
まあ、私は、とりあえずの置き場所、たとえば、次のリリースの要求リストとか、検討リストとか、名前をつけて、そちらに回すようにする。
別の入れ物をつくって、とりあえずそっちに詰め込んでしまうことで、実質、捨てたのと似た効果を期待できる。
捨てきれなかったことで、後で不発弾として突然爆発、というリスクはあります。
可能であれば、廃棄しておきたいんですが。
Organize 組み立てる
集めて、選んで、捨てた。
あとは、残った重要な要素を、どうやって組み立てるか?
原理は簡単。
・関係するものを集めてグループにする。
・グループの間を空ける。
ソースコードだと、3行くらいをひとつのグループにして、空行でグループの区切りを表現する。
図や表でも「空き」を使って、グループ間の区切りを表現する。
システムでも、システムとシステムの間に「空き」を設けて、区別する。
組織化の基本は、「グループにする」ことと「間を空ける」ことです。
まとめ
集め上手 集め下手
選び上手 選び下手
捨て上手 捨て下手
組み立て上手 組み立て下手
私はどんなんだろう?
あなたはどうですか?
短い納期の仕事って、実はやりやすい。
集める時間がない
重要なことだけ選んで、あとは捨てざるを得ない。
結局、残った部品は少ないので、組み立ても簡単。
・網羅性
・整合性
・単純性
伝統的なシステム開発方法論は、網羅性と整合性に重点がある。
アジャイルな開発方法論は、単純性に力点がある。
単純に考える、ということをネットで検索していたら、こんなページを見つけた。
The Four Laws of Simplicity, and How to Apply Them to Life
四つのステップで、単純化する。
1.Collect 集める
2.Choose 選ぶ
3.Eliminate 捨てる
4.Organize 組み立てる
Collect 集める
関係ありそうなことを、とりあえず一か所にあつめる。
広いテーブルの上に集めるのが良いらしい。
システム開発だと、さまざまな要求事項の収集かな?
Choose 選ぶ
本当に重要なごく少数のものを選びだす。
これは、かなり難しい。
関係者が多いと、おそらく、合意は難しい。
まあ、だれかに「まかせた」とやるしかないかな?
良いシステム設計の基本は、おそらく、この、ほんとうに重要なごく少数のことを「選ぶ」こと。
ユースケース候補が、100とか200とか集まってきた中から、ほんとうに重要な5つを選べといわれたら、かなり大変。
でも、中核の5つのユースケースを見極めれば、システム全体の構造、開発の段取り、人の割り当てなどが、ともて簡単に決まってくる。
Eliminate 捨てる
これも、難しい。
「捨てます」「やりません」「いりません」とぶっきらぼうにいったら、トラブルの種かな?
まあ、私は、とりあえずの置き場所、たとえば、次のリリースの要求リストとか、検討リストとか、名前をつけて、そちらに回すようにする。
別の入れ物をつくって、とりあえずそっちに詰め込んでしまうことで、実質、捨てたのと似た効果を期待できる。
捨てきれなかったことで、後で不発弾として突然爆発、というリスクはあります。
可能であれば、廃棄しておきたいんですが。
Organize 組み立てる
集めて、選んで、捨てた。
あとは、残った重要な要素を、どうやって組み立てるか?
原理は簡単。
・関係するものを集めてグループにする。
・グループの間を空ける。
ソースコードだと、3行くらいをひとつのグループにして、空行でグループの区切りを表現する。
図や表でも「空き」を使って、グループ間の区切りを表現する。
システムでも、システムとシステムの間に「空き」を設けて、区別する。
組織化の基本は、「グループにする」ことと「間を空ける」ことです。
まとめ
集め上手 集め下手
選び上手 選び下手
捨て上手 捨て下手
組み立て上手 組み立て下手
私はどんなんだろう?
あなたはどうですか?
短い納期の仕事って、実はやりやすい。
集める時間がない
重要なことだけ選んで、あとは捨てざるを得ない。
結局、残った部品は少ないので、組み立ても簡単。