2008年も終わりに近づいています。
今年もこのメルマガをご愛読いただき、本当にありがとうございました。
このメルマガは、自分がシステム設計するときに、どういう視点でどういったことを考えて設計しているのかを主に書かせていただいています。
それは、若い技術者にとって少しでも何かヒントになればいいなという気持ちからです。
ここで何度も語ったことかもしれませんが、「業務」をシステム化するという一番よくある、それでいて一番奥が深いことについて再考してみたいと思います。
この仕事を始めた若い頃には、私にとって業務という言葉は何を意味するかわからず、ただコンピュータプログラムを作ることだけが業務システムの入り口でした。
しかし、どんなシステムを作ってきたのか?と思い返してみれば、その類似性に驚きます。
業務フロー図といわれるものがありますが、要するに業務フロー図をシステム化することがほとんどの仕事でした。
今でもシステムを作る場合には、「システムフロー図」だけでなく「業務フロー図」を作成することを自分に課しています。
それは、業務システムを構築する上で一番重要なことは「流れ」だと思っているからなのです。
どこでその情報が入力され、付加され、更新されるのか、そして、どこでその情報が出力され、参照され、削除されるのか。
しかし、技術者の中にはシステムの一番重要な箇所は入力や更新だと思っている人がいます。
なぜなら、プログラマにとって入力や更新がバグを生みやすく、難易度が高い箇所だからです。
しかし、システム設計から考えれば、一番重要な箇所はどこでもありません。
すべてです。
すべて重要と言ってしまったら身もふたもないですが、実際はそうなのです。
システム全体の流れをすべて捉えて、その一箇所一箇所のどこででも正しい情報が出力されることが重要なことだと思っています。
そのために、業務フロー図をきちんと細部まで描き、お客様とともに「ここではどんな視点で帳票が必要なのか」「どんな視点で操作しているのか」をシミュレーションしながらシステムの妥当性を問う必要があるのです。
ただ、最初の頃は主体的に業務フロー図を描くことがなかなかできませんでした。
ビジネスのことを考えたこともない、やったこともない私が他の会社の知らない人がどうやって、何を考えて業務をしているかを想像することは不可能でした。
しかし、ある時考えました。
「コンピュータが無いときに人はどうやって業務を遂行していたのか?」「コンピュータが壊れたらこの会社はどうやって業務を遂行するのか?」と。
今となっては24時間無停止のシステムが普通にあるのですから、こんなことを考える必要は無いのかもしれません。
しかし、私のシステム設計の出発時点はこれでした。
コンピュータが無かったとしたら、どうやって業務を遂行するのか?
それを解決してくれたのは―――――。
次回はそのお話です。
Vol.00172