この前、利用者指向の設計方法っていうことで、現状(AsIsモデル)の作り方に関して、考えてみました。今度は、そこからToBeモデルを、どうやって考えるかについてみてみたいと思います。
前回、AsIsモデルを作ったとき、以下の手順でやりました
1.利用者を体系づけて分けます
2.今回対象の利用者について、システム利用(入出力)場面を考えます
3.利用者が利用する一場面をとって、入出力を、まず出力から確認します
4.利用者からの入力を受け取ってから、利用者への出力まで、システム内のプロセスを考える
5.利用者への出力ごとに、シナリオをつくる
6.利用者の範囲を広げていく
ToBeモデルを考える場合、2までは、終わっているものとします。
■利用者の入出力の最適化を考える
現状の利用者の入出力については、まとまっているはずですので、
それについての最適化が可能かどうかを考えます。
つまり、記入量がへるとか、ワンストップですむとか、もらえるお金が多くなる、早くなるなどです。
そして、それができない場合、次に、現状の入出力を固定し、システム内部の処理が最適化できるかどうか考えます。
逆に、システム内部が最適化されても、利用者の入出力が最適化されない、すなわち、負担増になるような場合は、利用されません。
具体的には、今の電子政府です。
電子化するのはいいのですが、そうすると、まず、電子認証が必要な場合が多く、これが手間というか、やりかた良く分かりません。
そうなってくると、この電子認証が障壁となり、使ってもらえません。
さらにすべて電子化されてればいいけど、一部してないものがあると、電子化した部分は電子申請、そうでないものは郵送とかなってしまいます。
だったら、郵送で全部送ったほうがいいじゃん!ってなると、みんな使わず、郵送になってしまいます。
このように、システム内部(政府内)を最適化しても、利用者の負担増になると、システムは使ってもらえません。
■最適化された入出力を元に、新たに出力から確認しなおす
上記で作った入出力をもとに、初めに示した手順3から、再びやっていきます。
つまり、
3.利用者が利用する一場面をとって、入出力を、まず出力から確認します
4.利用者からの入力を受け取ってから、利用者への出力まで、システム内のプロセスを考える
5.利用者への出力ごとに、シナリオをつくる
6.利用者の範囲を広げていく
とやっていきます。ただし、このとき、4、つまりシステム内部でも、最適化できればしたほうがいいです。このとき、システムの利用者に近いほうから、内部へどんどんと、システムの最適化を考えたほうが安全です。
で、その場合、外側のほうから最適化されているわけですので、外側(=外部)とのインターフェースは変えないことにします。つまり、オブジェクト指向でいう、リファクタリングになります。
こうやると、ToBeモデルができます。。。が、そうすると、AsIsモデルって、いらないのでは?と突っ込まれると、うーんとなってしまいます。たしかにそうですけど、いったん現状を作っておくと、ToBeモデルのときには、その修正になって簡単であるということはいえるかと思います。何もないところから考えるのは、やはりたいへんだし、漏れが出てきそうなので。。
で、このシリーズの次回は、この考え方を応用して、システムのチェック方法について考えます。