アジャイルな計画の有効性を伝えるための障壁とは 〜アジャイルサムライ新宿道場#04に参加しました!〜
アジャイルサムライ新宿道場#04に参加してきました。
下記、参加して私が感じたことのまとめです。
※例によって、勉強会のまとめではないことにご注意を。
他のアジャイルサムライ新宿道場#04の記事
- ryu22eBlog : アジャイルサムライ読書会 新宿道場#4 に参加しました #agilesamurai #新宿道場
- アジャイルサムライ読書会 新宿道場#4 - Yukarin'Note
- アジャイルサムライ新宿道場#4に参加しました - Munch Box
アジャイルな計画の有効性を伝えるための障壁
主要な(そして回答が難しい)批判
- 最初に全体を見通せないので、適当でないアーキテクチャになったり、局所最適化に陥らないのか?
- 最初に全体を見通せないので、契約や予算どりをどうするのか?
この辺りの問いはよく聞かれるが、(少なくとも私は)答えるのが難しい。
常に向き合っていくべき問いなのかもしれない。
下記は勉強会で学んだこと。
最初に全体を見通せないので、適当でないアーキテクチャになったり、局所最適化に陥らないのか?
陥る。
これは認識されており、アーキテクチャの大々的な変更は「アーキテクチャジャンプ」と呼ばれている。
※ニュアンスとして、「避けられればもちろんよいが、避けられない」もののように書かれている。
ただ、アジャイルなソフトウェア開発(主にXP)では、従来の常識と異なり、
変更コストは「時とともに急激に上昇」しない、という仮定を置いている。
※この仮定は、UT, CI, リファクタリング, DRY, YAGNI などのプラクティスからもたらされる。
よって、アーキテクチャジャンプのコストは、それほど大きくはならない。
でも、最初に全体を見通していれば効率よく出来たのに。
答えは二つ。
・変更は常に起こるし、最初から完璧なものは出来ない、とされている。
最初に全体を見通すためにいくら努力しても、結局それは正しくない、変更する必要が出てくる、よって無駄だ、という理念がある。
・インフラを構築するために、顧客に価値を提供しない時期が長時間あってはいけない、という理念がある。
では、アーキテクチャはどうすればよいのか?
アーキテクチャの創発を「自然に起こる」のを待つ とのこと。
何となくわかるものの、これでは説明できない。
私にはまだ答えが出せていない。ただ、下記が参考になりそう。
また Jim Coplien は、アーキテクチャとは? Grady Booch によると。。。:An Agile Way:ITmedia オルタナティブ・ブログ開発は2つのレベルで進行する。
(1) アーキテクチャ
(2) 実装
2つは同時進行し、かつ、お互いに強い相互作用がある。
新しい実装はアーキテクチャの変更を示唆する。アーキテクチャの変更は、ふつう大幅な実装の変更を強制する。
と示唆。
また、RUPではアーキテクチャを初期に構築している。こちらの考え方も学ぶ価値があるかもしれない。この辺り、もっと勉強したい。
最初に全体を見通せないので、契約や予算どりをどうするのか?
個人的な見解としては、アジャイルなプロジェクトが誠実なだけではないか、と思っている。
WF(ウォーターフォール)型では、本当に最初に全体が見通せているのか?
そもそも、WF型は全てが予測可能で変化しないことを、アジャイルでは全てが変化することをそれぞれ前提にしている。
両者とも上手くいく、という仮定をおけば、より都合のよい前提を置いているWF型の方が有利なことは当然である。
問題は、その前提が成り立つかどうかだ。私は(そしてアジャイルを推奨する方々も)その前提は成り立たないと確信している。
そして、WF型はこの前提が崩れると弱い。
アジャイルでは、最初に全体が見通ず、確実なコミットメントができないことを真摯に伝えている。
その他学んだこと
私のtwitter上のまとめメモを掲載します。
チーム運用島
チームの雰囲気作りはリーダーの責任である。あなたがリーダーでなく、チームの雰囲気が良くない場合に取るべき行動は、リーダーとコミュニケーションし、期待を伝えることだ。 #agilesamurai #新宿道場 #チーム運用島
2012-04-02 11:59:10 via web
大人数時のチームの分け方は、大まかには層で分ける(サーバ, クライアントとか)方法と、機能で分ける方法がある。欠点として、前者はチーム間の調整が頻発すること、後者はそもそも最初にどう分けていいか分からない、途中で暇になるチームが出る可能性がある、というものがある #新宿道場
2012-04-02 12:15:18 via web
conwayの法則を考えると、機能毎に分ける際には細心の注意を払わないと、よくない分断が起こるのかもしれない。もっと考えてみたい。#agilesamurai #新宿道場
2012-04-02 12:17:16 via web
宇宙チーム
緊急時に遵守されないルールは、無駄なことが多い。そのようなルールは、いっそのことなくした方がよいかもしれない。#agilesamurai #新宿道場 #宇宙チーム
2012-04-02 12:18:29 via web
プラクティスを導入する際には、チームでメリットデメリットを共有し、合意の上で導入するのがよい。#agilesamurai #新宿道場 #宇宙チーム
2012-04-02 12:19:31 via web
基本はアナログで充分かと思うが、TiDDをやりたければ、Redmineとかのチケット管理ツールでタスク管理する必要がありますね。#agilesamurai #新宿道場 #宇宙チーム
2012-04-02 12:20:37 via web
ワールドカフェ外
ツールの機能は多すぎても少なすぎてもよくない。利用者に必要な機能を網羅していれば、後はサポートする人の立場で考えて、最もサポートしていきやすいものを選べばよい。それはきっとシンプルなツールのはず。 #agilesamurai #新宿道場 via @troter さん
2012-04-02 11:55:27 via web