ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

みんなが幸せに、儲かるんなら、どんな理論を使っても、いいんじゃないか?その1

2012-09-10 07:03:28 | トピックス
ちょっと前に、

「データモデルなきアジャイル」の危うさ
http://watanabek.cocolog-nifty.com/blog/2012/08/post-def9.html


という話題が出て、その後、平鍋さんが

データモデリングなきアジャイル開発は危ういか?
http://blogs.itmedia.co.jp/hiranabe/2012/09/agile-and-data-modeling.html


というエントリを書いて、有名になった?話について、今日は書いてみる。




はじめの”「データモデルなきアジャイル」の危うさ”には、2つの暗黙の前提がないと、この話は成立しない(いや、もっとあるかもしれないが、とりあえず2つを挙げる)

(1)POAとDOAは、同時には成立しないか、同時に行うと
   悪い結果になる。

(2)DB構造が複雑なシステムは、DOAで行えば、必ず成功する




ちょっと解説する。

(1)について、POAとDOAが同時に成立して、それをやるのが良いことであれば、排除する必要はなく、両方ともやればいい。たとえば、アジャイルには、

アジャイルの「ライトウィング」と「レフトウィング」
http://blogs.itmedia.co.jp/hiranabe/2012/09/rightwing-and-leftwing-of-agile.html


ということで、ライトウィングとレフトウィングがあるそうだが、ライトとレフトが「われこそがアジャイルなり」といって対立したら、不毛な争いになるが、普通そうは考えない。ライトとレフト、同時に1プロジェクトの中に存在し、両方やったほうが良いと考える(むしろ、有機的につながり、補完する考えであり)。その中で、あなたは、どっちのほうが、比重が大きいですか?という意味である。

 つまり、抽象的に言うと、A・Bという2つの考えがあり、この考えは。
 ・AかBかというデジタルや、
 ・Aは20%、Bは80%といった、線上の考えではなく、
 あるプロジェクトは、Aは20時間、Bは80時間、
 別のプロジェクトでは、Aは10時間、Bは40時間というふう
  (おなじ1:4でも時間は違ってる)に、
 面、あるいは3次元?的な考えができて、混ぜたほうがよりよい効果がでる概念がある(こっちの方がたぶん多い)

 Aにアジャイルのライトウィング
 Bにアジャイルのレフトウィング

をいれればよい。

 で、ここで話題にしているのは、

 AにDOA
 BにPOA

 を入れることはできないか、POAとDOAは対立する概念ではなく、補完することができるとしたら、POAを一方的に非難している”「データモデルなきアジャイル」の危うさ”のロジックは崩れてしまう。


 (2)について、DB構造が複雑なシステムを、DOAで行って、もし失敗する事例があるとしたら、その事例でDOAを使えない。この事象が起こる場合、DOAをよしとしている、”「データモデルなきアジャイル」の危うさ”のロジックは崩れてしまう。 




■(1)について:DOAとPOAは同時に成立する

 そりゃ、目が細いお客さんの中には、

  横浜、たそがれ、ホテルの小部屋、口付け、残り香、タバコの煙

 と、事物だけしか説明しないお客さんもいるかもしれない
 (いや、いないだろ・・・五木ひろしか山口洋子以外・・・)

 だけど、ふつうのお客さんは、

  たそがれ時に、横浜のホテルに泊まりました。
  そのホテルの小部屋に入って・・・

 と、動詞と名詞を同時に話す。
 この動詞に着目するとPOA、事物に着目するとDOAになる。
 だから、お客さんレベルでは、POAとDOAは混在していて、開発者がヒアリングやドキュメントを意図的にどちらかに誘導することになる。

 ということは、開発者がDOA、POAと選んでいるわけで、POA、DOAにできる人はいるかもしれないし、1つの組織でPOAの見方をする人と、DOAの見方をする人がいて、2人で開発を進めていけば(アジャイルのペアプロのように)高品質なシステムが作れるかもしれない。

 で、そのように2つの見方、プロセスとデータの見方を同時にしてチェックするのが、たぶん鈴木 三紀夫氏のWモデルの「2つのキャップ」であり、開発者がPOA、テスタがDOAの立場を取ってチェックすると、バグが減るっていう話になるんだと思う。
(プログラマは、プログラムを考えるから、プロセス的に考えやすい。テスターは、テストデータを作る関係からデータ的に考えていきやすい)。

 POAとDOAが対立する概念とは、必ずしもいえない。という気がしてこないだろうか?




 長くなりすぎた。続きは後で・・・
 
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« スクリプト言語とかで、Ardui... | トップ | JQuery Mobileサンプル その1 »
最新の画像もっと見る

トピックス」カテゴリの最新記事