« 破天荒 | Main | プログラムに固定値を書いてはいけません »

May 18, 2014

複雜なシステムとは單純なものの積み重ね

複雜なシステムはそれなりに複雜な動きをするのだろうと考えている人たちがいる。そうでなければ複雜なことをしているということにならないからだと思っているのだろうか。

高度情報化を目指す企業はたいてい社内に情報システム部門を置いて、會社が求める要望に對應しようとする。彼らのミッションは社内の情報處理を高度化し效率化すること。これにより主に人件費のコスト削減を目指すが、さらにシステムの情報を經營狀態が分かるようサマリ化し、それを元に經營判斷出來るということまで要求されている場合がある。システムに對する要求が高度になれば、それを構築したり運用したりするのがたいへんになるが、情報システム部門が存在する以上、それを成し遂げなければ社内投資でメシを食う彼らはお拂い箱になる...というのが世の常だ。

そもそもシステムがどれほど複雜怪奇な要求に應えるものであっても、プログラムにより動作するものであれば、その枝葉末節までとことん單純化していかなければならない。要求を仕樣化し、その仕樣を滿たすための方式または機能の設計作業は、物事を單純化していく作業なのだ。よって、パッと考えてもどうしたら良いか分からないほど高度で複雜な要求の場合は、まずその要求が具體的にどういうものであり、どう運用出來なければならないかを時閒をかけて明確化しなければならない。そのため、それを依賴する側は要求事項自體の具體的な實現イメージと運用イメージを時と場合に分けて十分に檢討する必要がある。

なぜならば、システムベンダは顧客が抱える要求が高度かつ複雜であればあるほど、要求事項はお客樣ということにならざるを得ないからだ。よって、事前の依賴書や打ち合わせに出てくる資料の内容と發言のみが賴りになり、受け取った内容以上のものを實現しようとはしなくなる。つまり、顧客が具體的に提示していないことまで汲み取って要件定義をすることはない。

しかし、こういう場合であっても顧客の側が實現イメージや運用イメージを提示しなかったらどうなるだろうか。たとえば「情報は一元管理とし、どれかのシステムの設定を變更したら、他のシステムにも反映される必要がある」だとか、「投入されたデータは卽時的に樣々な臺帳類、帳票類、經營サマリなどに反映されなければならない」だとか、そういった要求事項の具體的イメージというより、評價ポイントのようなことしか言わなかったとしたら、誰がいつ何をどうしたときにどういう結果になれば良いかが不明となり、いくらお金をかけてもシステムは完成しない。それはお金をかければシステムベンダが自發的に考えて巧くやってくれる領域ではないのだ。

たいていの顧客は、本當に實現したいことをシステムベンダに傳え切れず、完成後に追加開發を依賴することが多い、これすなわち、出來上がったものを見ないとそれで良いのかどうか分からない證據ではないだろうか。そういう顧客は、コンサルを入れて要求事項を整理させることもあるが、所詮說明出來ないようなむずかしいことを傳えようとしてもダメなことに變わりはない。それは運用レベルの試驗項目を作成するに等しい作業であり、開發經驗のない素人に出來るものではない。そういう事情から、一般的な顧客はシステムパッケージの仕樣を澁々受け入れて運用することが多い。

いずれにせよ、むずかしいことを實現しようとする場合、システムベンダに過大な期待をしてお金を積んでも、顧客自ら積極的に要件定義をしない限り、ロクな結果にならないのは明白だ。


|

« 破天荒 | Main | プログラムに固定値を書いてはいけません »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/59663556

Listed below are links to weblogs that reference 複雜なシステムとは單純なものの積み重ね:

« 破天荒 | Main | プログラムに固定値を書いてはいけません »