IPOという言葉を御存知だろうか?
Input-Process-Output(インプット-プロセス-アウトプット)の頭文字をとったものだが、通常の事務処理はこのIPOの組み合わせで成り立っているといっても過言ではない。
システムの設計をする場合、仕事の手順をコンピュータに理解させるために、プログラム言語を使って、手順を一つ一つコンピュータが理解できる方式に置き換えていく。
このシステム化の時に、仕事の手順をIPOに沿って整理していく。
仕事の手順を整理した結果がシステムの中にあるので、極端な話、コンピュータを使っている仕事は、プログラムが読める人であれば、最悪何も手順書や引継書がなくても、プログラムソースを追っていけば、時間はかかるが仕事の手順は理解することができるはずである(誰もこんなバカなことはしないと思うが・・・)。
話が少しそれたが、システム設計をする時には、このIPOに整理した仕事を、いくつも組み合わせて処理手順を構成していく。
***
例えば、銀行のキャッシュコーナーでお金を下ろす処理を考えてみる。
一番大きなくくりのIPOは
I(インプット):
お客がキャッシュカードを入れて、暗証番号、引き出し金額を入力。
P(プロセス):
データベースで暗証番号、残高を確認後、引き出し処理、出金情報のキャッシュディスペンサへの返答。
O(アウトプット):
ホストコンピュータからの情報をもとに、お金を必要分取り出し口に用意。
この手順の中に
暗証番号確認のIPO
I:口座番号、暗証番号取得
P:暗証番号のデータペースチェック
O:暗証番号の正誤を回答
残高確認のIPO
I:口座番号、出金金額情報取得
P:口座情報から残高をチェック
O:出金できるかどうかの可否を回答
・
・
・
といくつもの細かいIPOがぶら下がっていて、お金をおろすという命令を処理していく。
***
この考え方、システムの設計だけに使うのではなく、通常の仕事を整理する上でもとても役に立つ。
(システム化すること自体が、仕事を整理することなので当たり前ではあるが・・・)
目の前にある仕事を常にこのIPOに分解して考えてみる。
すると、あるデータを加工して別の答えを出すことがとても多いことに気づく。
この場合Iは「あるデータ」、Pはデータ加工、Oは「出た答え」である。
昔はデータ処理をしようと思えば、汎用機でコボルやユーティリティのSORTなどを組み合わせて、処理する必要があり、システム部門の人間以外は近寄りがたいところがあった。
しかし、今ではエクセルやアクセスなどを使い、PC上で汎用機で処理していたのと同じような処理が可能になった。
シート1にインプットデータ、シート2にデータ加工の関数、シート3が結果出力。
実際には、インプットのデータにマッチングするデータが複数あったりして処理はもう少し複雑になる場合が多いが、自分の仕事をIPOに展開して手順をシステム化しておけば同じような内容の仕事があった場合、次からの処理が格段に楽になる。
また、上記の銀行の例で言えば、暗証番号確認のIPOなどは、お金を下ろす場合だけでなく、残高照会、通帳記帳の仕事をするシステムの場合にも使いまわすことができる。
こうした一つのユニットを、サブプログラムやサブルーチンと言ったりするのだが、自分の仕事で、使いますことができるユニットがあれば、一度整理してシステム化しておくことをおすすめする。
仕事の手順をIPOに分けて整理すると、仕事の手順が整理できるだけでなく、それを元にシステム化しておけば、後で使いまわすことができるというオマケもついてくる。
一度お試しください。
|