いままで、「利用者指向」ということを書いてきました。
これは、
・開発しようとするシステムを、外部入出力によって定義して
(ってことは利用者だけでないのですが)、
・利用者の一連の業務の流れに対応する、システム内部の流れを明らかにしていこう
というものです。
そして、利用者の業務範囲や、利用者の種類を広げることで、システムを拡張していきます。
(その場合でも、つねに、業務範囲の一連の流れをトレースして決めます)
で、実際に、どうやるかということを、給与システムを例にまとめてみたいと思います
(以前、大体書いた気もするけど、例をつけてまとめます)
■まずは、利用者を体系づけて分けます
利用者にはいろいろいて、いっぺんに扱うとたいへんなので、
利用者を恣意的にではなく、分類基準を付けて、体系的に分けます。
たとえば、給与だったら、支払い方に応じて、分類します
・時給の人
・正社員で月給の人
・年俸制の人
などなど。。
この分類の仕方は、いろんな仕方ができます(たとえば上記の例なら
・独身の人
・結婚した人
・子持ちの人
や、
・こきつかわれる社員
・管理職
・役員
・一番偉い人
などなど)
で、どの分類にするかは、その後、大きく影響してしまうのですが。。
。。。ここがセンスです。つまり、システム構築とは経営の一種でありまして、
経営とは、客を見抜いて分類し、それぞれに、対応することなんであります。
■今回対象の顧客について、システム利用(入出力)場面を考えます
顧客が、どのときにシステムを使うかについて考えます。
そのときの入出力を明らかにします。
たとえば、給与システムだと、
・会社入社時に、入社したよと利用します。
・やめるときに、退職したよと利用します。
・毎日(毎月)勤務時間などを入れます
・月一回計算して、給料をもらいます
・ボーナスももらいます
・退職金ももらいます
・出張のとき精算します・・・・
:
書いてると、切りないのでやめますが、とにかく、システムを使うときを挙げます
(ここで、仮にもれていても、次の作業で、明らかになるので、あんまり気にしなくてOK
です)
なお、このとき、どの範囲までシステムを使うかを考えながら挙げます。
出張費は関係ないかもしれません。退職金は扱わないかもしれません。。
などなど。。
■ひとつの場面をとって、入出力を、まず出力から確認します
その中の場面1つ1つをとって、まず、出力を確認し、
その出力値を生み出すために、入力情報が足りているかどうかを確認します。
たとえば、給料をもらうことを考えて見ましょう
このとき、システムからの出力は、給料と、給料明細です。
さて、給料のほうですが、これは、何とか銀行に、いくらいくら振り込まれているわけです。
そのとき、銀行を、入力しているか?って考えます。
入社時はいいかもしれませんが、銀行が変わったときの変更はしてないかもしれません
そしたら、銀行変更処理を上記の「システム利用(入出力)場面」として追加します。
金額は。。。給与明細に書かれた金額です。
では、給与明細を確認しましょう。
基本給は。。。どうやって決まるんでしょう。入力は足りているでしょうか?
手当ては。。どうやって決まるんでしょう。それを計算するための入力は足りているでしょうか?
てな具合に考えていきます。
これを、全出力やります。。。っていうときついので、
今対象にしたいものだけ、やって、先に進んでもOKです(結局最後には全部やんないといけないけど)
■入力を受け取ったら、どうやって出力まで持っていくか、システム内のプロセスを考える
さて、入出力ができたら、その入力を、どうやって出力にまで持っていっているのか、システム内部の処理の流れを考えます。
外部入出力には、かならず、それに対応するシステム内部の処理がありますが(コレがバウンダリ)それだけではすみません。そのとき、どんな処理があって、どんな入出力をやっているのかを考えます。
たとえば、給与だったら、勤務状況入力と、給与支払いはありますが、この間に何があるか?ということです。それは実際に、勤務状況を入力してもらったあとに、何をしているかを考えれば(多分計算をして、振り込み手続きをしている)わかるので、それを、必要データはちゃんと来ているか、おさえながら、プロセスを追加していきます。
■ある出力ごとに、シナリオをつくる
そしたら、ある出力イベントごとに(必ずしも全部ではない。一通り出てくればOK、場合によっては入力だけのこともありえるけど)、利用者が何をして(入力)、そーすると、システムのどのプロセスで受けて、その後、何して、どー出力されて、利用者に届くかのシナリオを、具体的数値をいれて、作成します。
■で、範囲を広げていく
で、必要なら、範囲を広げ、違う利用者で、やはり入出力をチェックし、上記作成のプロセスで処理可能か、追加するものがあるかどうかを確認し、修正・追加する必要があれば、修正・追加します。
ここまでで、現状(AsIs)の状態ができます。
ToBeにもっていくには、どうするかについては、長くなってしまうので、別の機会に書きます。