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

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

あるシステム開発の場合、どの開発プロセス技法を使い、どういう方針で標準化するかのメモ

2005-06-28 18:04:58 | 開発ネタ

 システム開発の標準化の話題が多いんですけど、それを見ていると、このおはなしに行き着いているみたい。

開発プロセス標準化への道(1)
開発プロセスに対する幻想を破壊する


 やばやば。このお話の先の話をしないと、せっかく、かおる姫のすばらしさを書いても、ぜーんぜんつたわんないじゃないっすかあ!

 ということで、メモ程度に書きます。




 まず、今、学会に出ているような開発プロセス論は、そのまま使うと、現実の壁にブロックされてしまいます(後で、どんな感じか説明します)。
 なんで、実務上、開発する場合、それらをひねって使います。

 学会のいうように、ある開発プロセスをそのまま使って、ソフトウェアファクトリ(ソフトの自動生成工場をつくる)というのは、出来ないとは言わないけど、難しいと思います(たとえて言うなら、パワフルカナだけを使って、ブラジルに勝つようなもんだ。不可能ではないが、それには、爆発的なジャンプ力とアタック力が要る)。




 で、実際、ウィリアムのいたずらの場合、どうやって、なにを基準にひねるかというと、まず、ユーザーの要求と、利用しようとする技術等に対する情報の正確さから大きく分けている。

■■ ユーザーの要求が矛盾があったり、業務を表現できない、正しくいえない場合
 ユーザーの要求矛盾チェックをしないと、間違った方向に開発し、あとで結合テストのとき、結合しない!なんていうことになる。
 なんで、要求矛盾チェックなんだけど、これは、データを追っていくことによって、見つけるのが早い。なんで、構造化分析、とくにDOAによって、ER図を描くとわかりやすい。
 ただし、DOAなどは、利用する技術が、ちゃんと仕様どおり動くことが前提になる。

■■ 利用しようとする技術に不明箇所があったり、抜けがあったりする
 利用するクラスのJavadocが修正されていないで間違いだらけとか、BREWのように、マニュアルを信じてやるとえらい目にあう。マシンごとに動きが違うなどというとき。

 このときは、自分の目的とする動作を要求仕様として、その機能がちゃんと動くか、たしかめながら作るしかない。っていうことで、TDD的な開発論になる。

 ただし、TDDを採用する場合は、要求に矛盾がない必要がある。
 矛盾があると、TDDだと、まず、仕様を満たす実装しかしないので、要求がおかしく、あとで、全体的見直しで、仕様大幅変更になると、作り直しの手間が大きくなってしまう。




 と、大きく分ければ、こんなかんじなんだけど、実際には、利用しようとする技術もはっきりわからないし、要求も矛盾だらけとなる。

 なんで、単純にTDDをやったり、単純にDOAをやってもできない。ある程度TDDをいれながら、仕様の全体像を加味するようなひねりとか、DOAっぽいんだけど、局所的に分割して、そのある部分は、プロトタイプでテストを先行させてつくるといったようなひねりがいる。

 で、具体的に、どうするかというと、実際に開発するときにサブシステムに分割するけど、その中で、TDD的に開発したほうがいいものをわけ、その開発時期を確保し、さらに、DOAっぽく、全体のデータのデザインを明確化したほうがいいタイミングを見極める。

 結果として、インクリメンタルモデルが採用しやすい(サブシステムごとの独立性が高いので)。さらにサブシステムごとの独立性を高めるため、オブジェクト指向を採用するが、とはいえ、そうすると、全体のデータのデザインを明確化する部分と矛盾してくるので、そのへんのさじかげんが、問題になる。
(スクラムの体制にするかどうかというのはこの後の話。XPは、テストファースト部分以外、採用しにくい。で、テストファーストは、TDDのところになる)




 とはいえ、あまりにもさじかげんを、みんなで自由に出来るようにしてしまうと、管理もできないし(特に意識あわせなどのコミュニケーション上の管理)、とにかく、先が読めない。そこで、(開発プロセスの標準化もふくめた)開発標準をつくり、ある程度先が読めるようにするけど(この、先が読めることがリスクヘッジにつながっていく)、これを固定的にしてしまうと、結局TDDか、DOAっぽい方法かということになり、上記の問題を、もろにかぶってしまう。

 そこで、標準化に遊びをつくり、オブジェクト指向として、中は、ある程度自由に出来るようにさせ、その一方で、ERも入れさせて、全体データの整合性の確認をとらせたりする(その成果を、標準化された枠組みの中で、どうクラスに反映させるかが、PMの腕の見せ所になる。そのためには、クラスとERの関連を読みきれないと、まずだめだけど)。
 Excelファイルで、仕様を書く場合も、固定的な枠で縛りを入れながら、フリーフォーマットで、自由度を持たせている。

 そして、開発のタイミング的には、TDDの部分を前に持っていき、プロトタイプ、もしくは、全体共通の部隊が、その部分を明確にするようにさせ、利用技術を固めてから、全体データをみれるようにさせる。
 この固めた成果を、パターンにしてしまうということもありますね。

 っていうかんじかなあ。。。さいきんのおしごとの仕方は。。。




 もちろん、あんまりにも、自由にしてしまうと、CMMなんかを推進してる人から怒られそうだし、先も読めないのでリスク管理になんないし、コミュニケーション管理にも支障が出るので、どこを標準化としてきつくしめ、どこを本質的には甘くする(ただし、外見上は、ここも、びしっと締めている)かというのが、マネージャーの才覚になってくるところになる。




 で、大山さんの場合は、たとえば、「TDDだけしかできません。DOAだけしかできません。テストはJUNITでやって、時間頂戴ね」みたいな、状況がよければいいんだけど、そうでない場合(こっちが多いんだけどね)は困ってしまうというかんじ。ただし、生産性は、恐ろしく高い。

 宝来さんの場合、それではいけないということで、最後にひねりをいれる。だから、得点に結びつく。これだけで、すごい進化。

 そして、かおる姫は、DOAでもTDDでもできるし、テストエンジニアも、プログラマもSEも、なんでもこなしているので、状況に応じて、開発方法論をえらべ、それを、開発標準の枠組みにとりいれて、押し込めることが出来る。なんで、次元が違ってすごい、ビジュアル系「だけ」ではない!(でも、ビジュアル系)というお話なのでした。


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

スパム防止策としての表題への固定文字

2005-06-28 15:59:39 | Weblog

 よくメールの表題などで

  【申請】交通費申請

     とか

  【連絡】次回会議の日時

 のように、メールで、「各種申請のときは、表題の先頭に【申請】を付ける」のような、きまりがある場合がありますよね。
 決まった文字を付けることによって、メールの分類を早く行うという目的で。

 この方法の(多分)応用として、掲示板で、「自動的に投稿してくるスパム」を区別するという試みをやっている?サイトがあります。

 YAHOO掲示板 2321 ソフトフロント
http://messages.yahoo.co.jp/?action=q&board=2321


 このサイトを見ると、頭が【SF】とついているのと、ついていないのがあります。
 頭に【SF】とつけているのは、このソフトフロントの記事を書きたい人のもののようです。で、それ以外のものは、基本的にスパムになります(しらないで投稿した人もいるかもしれないけど)。

 スパムの掲示板書き込みは、プログラムでやっているだろうから、こういう特別な言葉をこの掲示板のためだけに付けないだろうと。。。




 この手、ブログなどでもつかえるのかもしれません。

 ”コメントやトラックバックするときには、タイトルの頭に【なんか言葉】をつけてください。そうでないものは、そっこー削除します”とかいえば。。。

 もっとすすんで、ブログを書く人が、あらかじめ、タイトルに含む言葉を登録しておいて、ブログに、「この言葉を書いてください」と書いておき、その言葉がなかったら、トラックバックも、コメントも受け付けないというようになると、すごいかも。。。

 まあ、それ以外でも、タイトルの頭に、文字を付けて、それを使い分けると(【賛成】【反対】【疑問】など)わかりやすかったりするかも。。。




 ということで、ある意味注目な?掲示板なのであった。
 

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

ブログ、最近のアクセスアップキーワードは、「かおる姫」のようだ!

2005-06-28 12:51:15 | Weblog

 昨日、本家のブログで、かおる姫(バレーボール全日本の菅山 かおる選手)のことを書いたら、アクセス数が急上昇(いつもの2倍、いや3倍くらい)!!
 ということで、いま、ブログでは、かおる姫ネタが旬のようです。

 このブログにも、かおる姫関係のトラックバックもらっているし。。。

 ランキングでも1位が「菅山 かおる」になってるし

 でも、このブログをご覧になっている方には、「かおる姫?さっぱりわからん」という感じかもしれません。
 ということで、このブログでは、圧倒的に開発の人が多いと思うので、開発にたとえて、「かおる姫」のすごさと魅力、そして、いま、ホットでなにが面白いのか!について、書いてみたいと思います。




 まず、かおる姫は、全日本にリベロ(守備専門)で招集されたのに、いきなり、アタッカーで起用されることになったのです。つまり、開発で言えば、テストエンジニアが、いきなり、「あ、人いないんで、システム切って、プログラムも作っちゃってくれる?」と、開発全部を任されたようなもんです。

 で、それで望んだ「ワールドグランプリ」なのですが、大山選手(まあ、若手で、MDAにより爆発的な生産性を誇ると思ってもらえばいい)は、怪我でいない状態で、はじめ、違う人(吉澤 智恵選手)が出ていたのですが、急に「かおる姫」の出番が回ってきたのです。

 そうしたら、すごいんです!!
 どんな、ボールがきても取ってしまうし、アタックなんかも、「ありえねー」というくらいの状態で打ってしまうのです。いままでの、大山選手のときと違い、悪いトスでも、打ち切ってしまうのです。さらに、大山選手は、レシーブいまいちですが、かおる姫は、リベロっす!




 つまり、開発に例えていえば、TDDだとして、

 レシーブを要求を聞いて、テストに落とすまで(テストデータを作るまで)
 トスを仕様を切る部分
 アタックをプログラミング・テスト実施とすると

 (したがって、レシーブからトスとアタックをあわせて2段で返す(仕様作成とプログラミング一緒)とか、ダイレクトに返す(すぐにプログラミング)もありえる)


■■ 大山選手の場合
 仕様をきっちりきってあげて、環境を整えてあげれば、MDAにより、爆発的な生産性を上げる(パワフルカナ)だが、仕様を聞いて纏め上げるのはいまいちだし、最近の若手同様、JUNITじゃないとだめ、流しでテスト実施(トスが流れてる状態でアタック)とか、ありえない!といい、得点に結びつかない

■■ かおる姫の場合
 仕様がなんだろうが、環境がなんだろうが、決めてしまうのです!
 要求がめちゃくちゃでもレシーブしてしまうのです。
 トスがみだれていようが(流しでテストしか出来ない環境でも)それを切り返してアタックするテクニック(一発でテストを決めてエビデンスを取れるように、仕様やプログラムを調整するテクニック)を持っているのです。
 さらに、ビジュアル最高っす!アタックNO1をリアルでやっちゃうような感じです。

■■ ほかの選手でも
 大山選手がいたときには、下でやっていた(つまり、大山選手がプロジェクトマネージャー級だったとき、プログラマだったような)宝来選手も、大活躍しているのですが、いままでのやり方とちがうのです。単調にうつだけでなく、ひねりをいれて、ブロックアウトにして、得点してしまうのです(開発で言うと、いままで、オブジェクト指向だけだったので、仕様間違いが指摘できなかったのに、ERからクラスへの変換などを簡単におこない、オブジェクト指向において、要求にむじゅんがあろうが、どんな状態でも、なんでも開発できるかんじ)




 つまりですね、「かおる姫」がはいることによって、バレーが急速にかわり、さらに変幻自在、猛スピードになってしまったのです。もはや、要求を出す前に開発体勢ができる(ブラジルがブロック体勢を整える前に攻撃してしまう)。

 開発でいうと、大山選手のときには、MDAを採用してました。なんで、ユーザーの要求がでるのをまって、それが正しいときは生産性が上がって開発してました。

 でも、「かおる姫」がはいったことにより、それじゃー、遅いだろう、要求待ってるんじゃあ。。っていう感じになり、もはや、要求が出ないんなら、こちらからDOAに変えてデータ分析をしてしまい、ここらへんでオチがくるだろうと、予測して開発するなど、もう変幻自在で、スピードなんです!!



(午後2時ごろ一部訂正:理由は下記)
 で、そこに、大山選手が、戻ってきたとしても。。。
 MDAの権威で、どんなにすごい人で、どんなに生産性が上げられても。。。

 もう、そういう時代ではないんです。
 かおる姫の出現によって、バレーは変わってしまったんです。
 つまり、要求によって、DOAなり、オブジェクト指向なり、アジャイルなり、アスペクト指向なり、状態遷移に基づく開発なり、開発方法論をすべて変えるような時代にかわってしまったんです。

 なんでも、できなきゃだめなんです!!

 JUNITでないとテストできないなんていっても、そんなテスト時間は与えられないし、与えられなくても、バチンと結果を出してくる仕様を切る能力、流しで障害箇所をキレイに切り分ける能力をみんな持っているっていう状態なんです。

 さらに、大山選手のライバル、プリンセスメグこと、栗原恵さんは、技巧派です。ある程度なんでもできます(DOAでも、オブジェクト指向でも、こなしちゃいます。テストもJUNITを使わなくても、自分でドライバつくって、自動生成くらいのことは、平気でできます)。




 ね、おもしろいでしょ。
 かおる姫が出てきたおかげで、バレーが、いま変わってるんですよ。
 そのうえ、かおる姫は、身長が169、大山選手は、187、つまり、大山選手が、慶応のSFCだとすれば、かおる姫は、ばりばり文系英文科みたいな感じなんです。

 みんな、かおる姫で盛り上がるの、わかっていただけますう??
 これからの、大山選手も見ものだよね!!

 ちなみに、大山選手、gooブログだしてるよ!! ここ

*午後に訂正した理由 この掲示板の内容を勘違いした:チームに戻るんですね。全日本に戻るとは書いていない。でも、北京までには。。。どーするんだろう。

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