ニーズ/シーズ指向、改善型開発と脆弱性を排除する構造設計(その1)
このエントリのネタ元と結論
たまたま目に入った3つの文章に無理やりだが、つながりを感じたので、そのまま書いてみる。ネタ元はこの3つ
- いつもネタ元にしているhttp://secure.ddo.jp/~kaku/tdiary/で、なぜか紹介されていたニーズ指向とシーズ指向。
- 前から何か書こうと思っていたブログエントリ改善型開発 〜 システムを作るのではなく育てるという発想 - kuranukiの日記(移転しました)→ http://kuranuki.sonicgarden.jp
- 定番高木先生の記事高木浩光@自宅の日記 - 「高橋メソッド」的突貫工事と、脆弱性を排除する構造設計は両立するか
情報システムって、大体以下の4つくらいの立場の人が関与しているはず。
- 実際に利用する真のユーザ
- 真のユーザに提供する管理者(≒発注者)
- 請け負うSIer(全体)
- 直接コードを開発する開発者
ネタ元の各文章の問題は結局この4者がてんでばらばらに動いていてそれぞれの立場で利益を最大化していることにあるんじゃなかろうかということ。
書いているうちに結論が変わったらごめんなさい。
ニーズ指向とシーズ指向
この文章の問題点は2つ。「シーズ」「ニーズ」の前提がおかしいことと「ユーザ」が誰かということがあいまいなことだ。
シーズはニーズに対して依存的
純粋にそれのみで存在できるシーズというのはぶっちゃけありえないと思う。
たとえそれが技術者のごく個人的な満足(りんごが落ちるのを説明できないかなみたいな)だとしても、それはそれで立派なニーズだ*1。
つまり、
シーズ指向、すなわち技術の種が開発されてからその使い道を考える
っていうのは、ロジックからして間違っていると思う。「なんだかよく分からないけどすごいものを何の目的も無くつくりました」なんてどういう状況?
結局現時点でのニーズが限定的なものをもっともらしく「シーズ」などといっているだけで、「なんか他にも使えないかな」っていう「シーズ指向」の進め方というのは普通だとおもう*2。
「ユーザのニーズ」とは何か
ニーズ指向というときのユーザについて、黒須教授も含め一般的に結構無頓着だ。
「このシステムをみんなが使ったら、俺が楽できる」
たぶん多くの人はこれはニーズ指向ではないというだろう。ではこれはどうだろう。
「このシステムをみんなが使ったら、みんなが楽できる」と俺が思う
多数のユーザの声「システムの導入は大賛成。だが、システムや全体の作業効率を落としてでも今までとまったく同じ操作にしてほしい」
たぶん人気は出ないと思うがこの2つも立派なニーズ指向だ*3。
結局誰のニーズかということを明確にしない限り、この議論はかみ合わない。
さらに、「ニーズが少ない」からといって開発しなくていいというわけではないことにも注意が必要だ。
たとえば、「東横イン」の社長は「めったに使われない施設のために大多数のニーズを犠牲にできない」といって顰蹙を買った。
「セキュリティ」のニーズもあまり明確ではない(価格メソッド)。