フローチャートの歴史

はじめに

以下の図はとある演習問題で僕が描いたフローチャートです。あるサポートセンターで1日に電話がかかってくるのが平均174.1件でまずはオペレータが対応し、それで解決しなかった場合はシニア・アソシエイトが対応します。もしくはオペレータの時点で顧客から指名があればシニア・アソシエイトに直接つなぎます。

f:id:gkuga:20200412023000p:plain

演習問題をやるにあたって例に出てきた逆三角形をそのまま使ったのですが、フローチャートで逆三角形ってあったっけなと疑問に思い、フローチャートについて調べることにしました。

Wikipediaにわかりやすくまとまっていたので、読んだことや僕の思ったことを日記のように書いていこうと思います。

ja.wikipedia.org

フローチャート

プロセスの流れを構造的に表す手法はコンピュータ・プログラミングが生まれる以前から使われており、最初は労働者の作業プロセスの見直しなどに使われたようです。

1921年に“Process Charts—First Steps in Finding the One Best Way” と題して発表されたものが最初の標準化された資料です。発表者はフランク・ギルブレスとリリアン・ギルブレスというどちらも産業工学を研究していた夫妻によるものでした。

フランク・ギルブレス

フランク・ギルブレスは3歳の時に父親を亡くし母子家庭で育ちました。母親は教師の仕事をしていましたが、それだけでは生活できず下宿も営んでいました。フランクは優秀な生徒ではなかったのですが、母親の教育や彼自身が数学や科学の授業に興味を持つようになり成績も上がっていきました。そして大学はMITを受験するほどになりました。しかし、彼は母親が下宿を辞めても大丈夫なようにと大学への進学を辞め、働くことを決意しました。

オペレーションの効率化

フランクは1885年、17歳の時にレンガ積み職人の手伝いを初めました。そして学んだレンガ積む手法を効率化していったそうです。大学進学をあきらめ、単純労働作業をする17歳が後には労働者の生産性を向上させるための科学的管理法を研究するようになります。そして大学で非常勤講師を務めたり、経営コンサルの会社を作ったりと活躍していきます。どんな仕事でも頭を使って改善をするような彼の姿勢は見習いたいなと思います。

プログラミングのためのフローチャート

ダグラス・ハートリーは1949年イリノイ大学出版の「Calculating Instruments and Machines」でプログラミングのためのフローチャートハーマン・ゴールドスタインフォン・ノイマンにより開発されたと説明しました。

その後一時期、高級プログラミング言語の登場でフローチャートが使われなくなった時代もあるようですが、フローチャートは現在でも使われますし、UMLのアクティビティ図や構造チャートなど様々に拡張されています。

フローチャートの規格

フローチャートの規格はISO 5807:1985のようです。対応するJIS規格はJISX0121です。

様々なフローチャート

アルゴリズムを表すフローチャートですが、構造化プログラミングの登場やビジネスなど他の用途で使うには表現力が足りなく、拡張されたり新たに考案されたりします。

全く関係ない経緯から考案されたものもあるかもしれませんし、ギルブレス夫妻による1921年発表のFlow process chartが少なからず全てのフローチャートに影響を与えているかもしれません。

もしプログラミング用のフローチャートに影響を与えているとしたら、それが元になっているであろうUML(アクティビティ図)からBPMNという流れは面白いですね。

逆三角系の図

最初に出した以下の図ですが、ISO 5807にはありませんでした*2。拡張された図形のようです。調べるとプログラミングの文脈ではフローの統合で、プロセス・マッピングという業務フローの改善の手法の文脈では保存という意味があるようでした。

f:id:gkuga:20200412042717p:plain

おわりに

一概にフローチャートと言っても自分が思っていたより古いし種類がありすぎて何を使うか困ります。ただ個人的にはUMLとISO 5807のフローチャートをベースにしつつ、アルゴリズムを表すのか業務フローを表すのか、誰が読むのかなど、時と場合によりその時にふさわしい図を選んでいきたいなと思います。

参考

*1:ISO/IEC 8631で紹介されている

*2:正確にはJIS X0121を見てありませんでした