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

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

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

2012-09-13 13:28:16 | Weblog
ちょっと前に、

みんなが幸せに、儲かるんなら、どんな理論を使っても、いいんじゃないか?その1
http://blog.goo.ne.jp/xmldtp/e/d7848b56fdd3d83963b7611596e25261

というのを書いて、そのあと続きを書いていなかった。
今日はそのつづき

もともとの話は、

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


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

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


というエントリを書いて、有名になった?話について、

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

は書いた。今日は、

「(2)DB構造が複雑なシステムは、DOAで行えば、必ず成功する」とは言い切れない

から




■「(2)DB構造が複雑なシステムは、DOAで行えば、必ず成功する」とは言い切れない

 この例としては、要求工学―プロセスと環境トラックのP52、抽象モデルの構築に失敗した場合の例として、2つ上がっている

 ひとつは、ビジネスプロセスのオブジェクトモデルを構築したが、管理が複雑になり、顧客が構築したモデルを理解できず、検証できなかった例、もう一つは、ペトリネットを使って失敗した例が載っている。
 前者の例は、オブジェクトモデルなので、データ中心のモデルと似たようなものができるはず(エンティティ=クラスといえるので)。したがって、ここでの失敗は、同じ失敗がDOAでも起こりえるといえる。

 つまり、管理が複雑になり、検証できなくなるのだ・・・

 あまりにも、データが複雑になりすぎると、管理、つまり、データが適切にCRUDしているか、(生成されていないのに読み込むなどということはありえないか)、検証できるか(ユーザーが業務的に問題ないと追っていけるか)という問題に突き当たる。これは、ある一定の限度がある。

 と書いても、DOA中心の人には、「オブジェクトモデルとDOAはまったく違う、真逆の概念である」といいはってしまうだろうから、もっとDOAチックな例を挙げよう。

 昔、EAというのが盛んだった。これはDOA的なアプローチを取る
そして、EAによる政府の代表的な例として、人事院のシステムがある。このシステムは、はじめ、IBMと富士通が請けて、結局うまくいかず、その後、菊島氏がCIO補佐官となり、稼動にまでこぎつけた話がある。たしか、IBM+富士通のときは、EA(DOA)的なアプローチで、DFDを作って行ったんじゃなかったっけ?それでうまく行かず、ユースケースにしたんじゃなかったかな?菊島さんのときに・・・

 だとすると、「要求工学―プロセスと環境トラック」の定石、抽象モデルの構築に失敗した場合、ユースケースシナリオを使うという典型的な例になりますよね。




■大きいシステムは小さく分割して確認する-アジャイルもそのひとつ

 結局、大きいシステムは、POAにしろ、DOAにしろ、ある程度になると、人間の限界が来てしまう。
 そこで、限界が来る前に、小さく分割して、それを組み合わせるというアプローチを取るしかない(完全自動化による検証というアプローチもあるが・・これがモデル検査に繋がっていく)。

 その場合、小さく区切って、それをすばやく組み立てて確認することになるが、そのアプローチのひとつが、アジャイルなのであろう。
 また、小さく区切った中の部分は、好きなように開発してよい。POAでも、DOAでも、ウォーターフォールでもアジャイルでも・・ただ、POAで混乱する開発量と、DOAで混乱する開発量では、差があるかもしれない。なので、その際、どちらにしたほうがいいかという議論はある。





■宗旨替えの必要はない

 じゃあ、アジャイルがよくって、この人がアジャイルをやったほうがいいのかというと、そんなことはない。この人はDOAで成功してきたんだから、そのままDOAでよいのではないか。

 人によって、開発規模とか、開発期間とかは、まちまちだと思う。この人は、DOAで成功するが、POAでやると失敗する開発規模・開発期間なのであると思う。
 世の中、一般的に考えると、開発期間がとても短く、全体がはっきりしない中で開発しないといけない場合、修正されることを前提にPOAということもありえるだろうし(POAかDOAかは別として、この場合アジャイルの可能性が高い)、適当な規模の場合には、DOA+ウォーターフォールが一番開発しやすい場合もあるだろう。
 そして、たいてい営業がとってくる仕事、自分が取れる仕事というのは、似たような規模、似たようなケースが多い。だから、POAでやったほうがいい、DOAのほうがいい、アジャイルのほうがいい、ウォーターフォールのほうがいいなどは、決まってくる。ただ、これは絶対じゃないし、請けてくる仕事が変われば、おのずとベストな方法論は違う。

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

 でも、状況が変われば、自分の方法論では対応できなくなることがありえる。だから、ひとつの方法論に固執すべきでないし、自分以外の方法論を批判して、反撃すべきではない。その方法論を使わないと解けない問題が出てくるかもしれない。こっぴどく反撃したら、その理論は使えない(使ったら周りから蔑視されるだろう。「なんだあいつ、あんだけ言っておいて、結局その手法使うんジャン」と・・)

 そういう意味で、アジャイルも、DOAもPOAも、JavaもJavascriptもPythonもCOBOLもRDBもNoSQLも、何でもいいんじゃないかと思う。
 それを適切に使いこなせる人だけが、次の時代に生き延びれるんじゃないかなと思う。




長々と、駄文を書きすぎた・・
この話は、このへんでおしまい。

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

「HTML5に賭けたのは失敗」-FacebookのザッカーバーグCEO

2012-09-13 10:23:54 | トピックス
ここの記事


FacebookのザッカーバーグCEO、「HTML5に賭けたのは失敗」 Androidアプリも間もなくネイティブに
http://www.itmedia.co.jp/promobile/articles/1209/12/news032.html


たしかに、業務アプリのような場合は、HTML5で開発したほうが
生産性高いけど、
スピードを問題にした場合、HTML5では不利ですね。


ただ、だからといって、ネイティブにしてしまうと、iosはいいんだけど、
Androidの場合、いろんな機種があるから大変・・・
Facebookのようなお金持ち企業なら問題ないけど、
そうじゃない場合、Androidのネイティブアプリにおける機種の差とかも
問題になるかも

・・・いや、HTML5でも問題になるんだけど、度合いが違うかも・・


  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする