こんにちは、赤坂です。
川俣さん、お付き合いくださいまして有難うございます(^o^)
Akira Kawamata <autumn@....jp> san wrote:
> "Hidehiko AKASAKA <akasaka.h@....com>"さんは書きました:
> > 例えば、川俣さんのおっしゃる「シンプル」を目標にして実装を行い、その実装
> > に対して「自然な役割」になっているかをチェックするということで良いのでは
> > ないでしょうか?
> うーん、難しいですね。
> 上手く語れる自信はないのですが。
> 私の印象で言うと、「自然な役割」は曖昧さ無く定義できないので、チェック
> した結果は参考程度にしかならない感じがします。
> 確かに、リファクタリングの結果として複数の収束解があり得る状況で、不適
> 切な収束解に達してしまう可能性が無いとは言えませんが。不適切であることを
> 示すために、もっと具体的で明快な言葉で語ることは可能だと思います。
確かにおっしゃることは分かります。
でも「重複がなく」はとても明解ですが、川俣さん自身も指摘されているように
「リファクタリングの余地がない」については幾つかの集束解になると思います。
同様に「自然な役割」についても(は)、唯一の正解を決めるのは難しく、現実に
は"現実離れした"または"明らかに誤解した"ものでなければ、集束解に収まるも
のと考えています。
# ある程度オブジェクト指向の勉強や経験を積んでいれば、と限定されますが、
# ペアでやってるとすれば、その辺はクリアされると思います。
「もっと具体的で明解な言葉」については、私も切望するところです(^^;;
# 自然な役割というのは必要条件であって、十分条件ではないからです。
> 実はコミュニケーションというのは、極めて成立しがたいもので、曖昧さを一
> 切排除してすら伝わらないことが珍しくないというぐらい、難しいものです。そ
> ういう状況で、曖昧な言葉を使うことは、私としては非常にリスクの高い行為の
> ように思います。
なるほど。御意です。
> 逆に言うと、曖昧な言葉に過度に頼らないように出来ているからXPを評価して
> います。もし、XPのプラクティスに、「自然な役割分担になっているかチェック
> する」という項目があったら、評価していないと思います。
> 個人的には、XPを生み出した人達は、こういう項目を意識的に排除しているよ
> うな気がしますが、もちろん単なる私の印象で、本当かどうかは分かりません。
川俣さんのおっしゃっていることが正しい気がします。
# ここまでは全く反論の余地がありません。参りました m(_._)m
> 別の見方をするなら、「自然な役割分担」があるという自明の前提を置くこと
> は、「適応型ソフトウェア開発」(読みかけ)でいう、秩序の領域に転落すること
> のような気がしたりもしていますが、それが本当かどうかは全く分かりません。
> この本もまだ読み通していないし、複雑系も素人だし、何かを言えるような立場
> ではありませんので。
ASDですか。これは一本取られましたね(^o^;;
「自然な役割分担」は一意に決まるものではないし、状況によっては、不自然な
役割分担と分かった上で済ませるという決定をチームが行うかもしれません。
私はそのことについて否定するものではありませんけど、実際のところは、気が
付かずに「不自然な役割分担のまま」開発が行われてしまい、結果として、
・理解しにくい
・変更しにくい(ビッグリファクタリングが必要になる)
・テストしにくい(かも?)
ということになってしまうのだと思います。
今までの私の発言がどうだったのか、自分でも曖昧ですけど(^^;;
自然な役割分担を(過度にならず)心がける程度で良いのかもしれませんね。
# ペア、あるいはコーチが「不吉な匂い」を感じないのであれば。
> ただ、秩序界の住人とカオスの縁の住人では、かなり価値観に食い違いがあっ
> て、意見の一致を見ないのかも知れないという漠然とした印象は受けています。
> もしかしたら、赤坂さんと私の意見が一致しないのも、住む世界が違うせいかも
> しれません。
ちょっと待ってください。私はどちらの住人なんでしょう!?
# 私も川俣さんと同じ世界に住んでると思ってますよ(^^;;
住む世界が一緒でも、価値観は共通の部分もありますし、個々人それぞれに違う
部分もありますよね。
少なくともメンバーで、プロジェクトのゴールについては共通認識でないといけ
ないでしょうけどね。
実際のところ、「自然な役割分担」(=モデル)についてはメンバー間でそれぞ
れ異なる意見になることがあります。でも、それぞれの意見のどれが良いかでは
なく、結論を決めるのは担当者の判断です。
# 自然さ、分かり易さは、"許容範囲"に収まっていれば、GO!ですよね。
川俣さん、いろいろ勉強になります。有難うございましたm(_._)m。
P.S.
「自然な役割分担」については私自身も難しく感じているところです。
これをチェックリストに使うには(幅が広すぎて)無理がありそうだと思います。
でも、オブジェクト指向で開発するのなら(XPでなくても)、この根本的な部分
を野放しにしてはならないと思っています。
我々はプロなんだから、少しずつでも理想に近づかないと。
# 私は口ばかりなのですが(^^;;
最近読んだ雑誌の中で、(私の大好きな)小野伸二がこう言ってました。
<"Number Plus" September 2003(p.35)より引用>
「簡単なことは簡単にやる。簡単なことが一番難しいですけど、それは当たり前
にやらないと次に進まないんで、簡単に出来ることを当たり前にやれるように努
力する。そこからだんだんとステップアップして、難しいことを簡単にやると」
</"Number Plus" September 2003(p.35)より引用>
とりあえず、私は
自然な役割分担が難しくなくなるように、日々のモデリングを頑張ります。
P.S.2
お盆休みも今日でおしまいですね。
明日からは通常業務が待っています。
今後はのんびり議論していきましょう。> 皆様
--
赤坂 英彦 (Hidehiko AKASAKA)
akasaka.h@....com