Ognacの雑感

木漏れ日々

目次

Blog 利用状況

書庫

ギャラリ

非オープン系の人への説明

 オープン系の開発が増えたとは言え、現場では非オープン系のSE/PMさんが実権を握っている事が多いと思います。
「オブジェクト指向開発ってなんだ」と聞かれたのですが、仕組みや考え方を説明しても理解してもらえる可能性は低い。
過去の経験則では、継承などの3大要素を躍起になって説明しても、理解されたためしがありません。
相手は原理や仕組みを知りたいのではなく、開発効率の良し悪しの面のみを知りたいみたいです。
説明放棄すると、オブジェクト指向を否定されることが多い(経験則)ので最近は、説明の仕方を変えました。
彼らは「標準化」「共通部品化」「生産効率アップ」という言葉に弱い。そこで、システム全般を見回して、サブシステムを問わず、因数分解出来る部分を洗い出して、共通部品を作る。
サブシステムはその共通部品を使って構築する。同じソースは複数箇所に書かない。使いまわしの出来る部品が増えれば増えるほど生産効率が上がる。
例として、仕入システムと受注システムは、画面的には同一で裏返しになっていることが多いので、基本クラスを作りそこから派生させれば、製造は1個で済む。
サブシステムは仕入システムと受注システムの2つなので請求は2サブですればよい。...云々と説明した所、すんなり「理解できた」と言ってくれました。
実際には説明にもなってないのですが、彼ら的にはこのような理解でも前進なのかも知れません。アカンような気もしますが....orz;
 納品物が問題だと指摘がありました。業務用件として仕入と受注があれば、仕入詳細設計,受注詳細設計の工程となり、製造物は仕入プログラム、受注プログラムの2本になる筈。
  それが、仕入と受注を使い回ししたら、プログラムは1本になってしまう。契約と違う納品物になるのが問題だ。........??????
そもそも納品物の意識ってそんなものなの? 業務からみた機能本数と開発者からみた機能本数は別次元のものです。
外部設計から導いた本数と、機能分析して製造過程に立脚した詳細設計書から導いた本数は一致しなくてもいいと思うのですが。
用件定義=>外部設計 =>詳細設計=>製造 の各過程が 1:1 で結合するという意識は変えてくれませんかねぇ。

投稿日時 : 2007年8月7日 17:34

Feedback

# re: 非オープン系の人への説明 2007/08/07 17:52 裏口

そんな「彼ら」の一人ですwww
実際の製造に当たるのでなければ概念的な理解で十分かと。

オブジェクト指向の開発言語で実際にモノづくりしないと、おそらく絶対に真の理解はできないと思います。
# そうした方にはオブジェクト指向の特性を生かした設計がデキナイ・・・はず。

>用件定義=>外部設計 =>詳細設計=>製造 の各過程が 1:1 で結合するという意識

ホントにこんな発送してる方いらっしゃるの?

# re: 非オープン系の人への説明 2007/08/07 17:55 凪瀬

契約書の方で合致しないという話題は私の近辺でもありました。
そもそも、要件定義からやっているから、結局そこはご破算になりましたっていう要件がでてきて、しかし、契約書には納品物としてリストアップされている…

慣習としてそういう契約書だったのは分かるとして、直すべきは成果物のほうではなく、契約書のほうだろうと。
縦割りの弊害だなぁ、と思った一コマでした。

# re: 非オープン系の人への説明 2007/08/07 18:13 Mr.T

Mr.Tです、こんにちは。
契約書に、「~プログラム 1本」って書いてあるパターンは、まだお目にかかったことないです。

>仕入詳細設計,受注詳細設計の工程となり、製造物は仕入プログラム、受注プログラムの2本になる筈。

ここ違うんでしょうけどね。

WindowsアプリならDLLとかは、どうやって契約するんでしょうねぇ?って、オープン系じゃねーからいいのか(^^

こういうのって、システムとして~の機能があるよ、という点だけを契約書に抑えておくだけじゃダメなんですかね?

# re: 非オープン系の人への説明 2007/08/07 20:44 はつね

契約書には「一式」で納品書には「一式○○本」とか書いた事はあるけど、契約時にプログラム本数決められているってのはお目にかかったことない。
でも、今回のケースだって.NETなクラスライブラリだとすれば、
・ちっちゃな仕入アセンブリ(EXE)
・ちっちゅな受注アセンブリ(EXE)
・陰で仕切っている共通部品(DLL)
な感じで決して1本にはならんと思う。
非オープンな世界だって共通化はするんだしDLLなんて考え方だってあるのに、何をそんなに警戒しているのやら。

# re: 非オープン系の人への説明 2007/08/08 0:21 Ognac

>実際の製造に当たるのでなければ概念的な理解で十分かと。
「人を見て法を説け」の意味が解りかけ気がします。
>契約書の方で合致しないという話題は私の近辺でもありました。
>契約書に、「~プログラム 1本」って書いてあるパターンは、まだお目にかかったことないです。
 契約上の明記は私もないのですが、要件設計/概要設計でサブシステム数が出る=> サブシステムの外部設計書で画面xx本、帳票yy本、バッチzz本と明記されるケースがあります。その本数単位に詳細設計書の作成を強要されたりするのでこのようなことになるかと。(詳細設計書とプログラム設計書の区別がつかないのでしょうね)
結果的に業務要件から見た本数なので、製造の結果と合わなくなる。いかにPMの目を誤魔化すかがPGの能になったりして..orz;

>何をそんなに警戒しているのやら。
 汎用機文化の影響なのかも知れませんが、1画面= 1.EXE という設計文化があり、それに固執する人も時々います。 DOSの時代ですが 1EXEに複数の機能画面を混在させたらエラク起こられたことがあったのは秘密です。
オブジェクト指向以前の問題ですが「論理的な本数と機能本数と実装本数は独立した数え方だ」というのが理解し難いのかも知れませんね。

# re: 非オープン系の人への説明 2007/08/08 11:00 NAO

概念を教えたいのであれば、例え話にすると解って貰えると思います。

私がよく使う方法ですが。

車を考えてみると。
かなり大ざっぱに言えば

エンジンや車台やタイヤが部品
エンジンを使って駆動系を作ればカプセル化
駆動系が同じで車台が違えば多態化

つまり
同じ部品(プログラム)を使っていても車台(画面)が違う事はあるよねぇ?
同じ車でも排気量が違う(駆動系が違う)って事はあるよねぇ?

な~んて感じで説明すると良いかも。

# re: 非オープン系の人への説明 2007/08/08 17:29 Ognac

車の例え話は良いですね。使わせて貰ぉっと。
エントリーに出てくる彼らは概念を知りたいのではなかったのて、グシュンなんですよねぇ。
損得面でしか見てくれないのはナンカ悲しい。

タイトル
名前
Url
コメント