ERP・財務会計・経済学

2017/08/10

法律の背後には経済学の理論があるという仮説

法律の背後には経済学の理論があるという仮説についてメモ。
以下は主張がまとまっていないが、素人によるラフなメモ書き。

【1】とある会合に出た時、そこでは、参加者やスタッフが中小企業への施策を色々議論して、アイデアをまとめていた。
最終的には、それらのアイデアを施策としてまとめて、中小企業庁へ持参して、提案書として渡したらしい。
そして、今年度の中小企業への施策に、提案の内容が盛り込まれており、やった意義があった、という報告があった。
その時に、こういう施策が実行されると、我々士業にもお仕事が舞い込むんですよ、という話があった。

その話を聞いて、すごいな、と思うと同時に、別の考えが浮かんだ。
政治では、基本は法律を策定して、企業や人間の行動を規制したり、補助金のようなインセンティブを与えてある方向へ誘導したりする。
つまり、法律は、世の中の社会において、みんなの不利益となるような企業行動は規制し、将来の産業育成や弱者保護のような方向へ企業行動が向くようにインセンティブを与える。

法律の暗黙の前提には、人間は全てが善人とは限らず、悪人もいるので、そういう人たちを規制しなくてはいけない、という考えがあるような気がする。
すると、個人一人の思いや行動というミクロではなく、集団や企業、国家のように人間を集団というマクロで見て、その全体を規制したり、ある方向へ誘導するように制御したくなる。
実際、すべてを自由に任せていたら、悪い行動は誰も規制できなくなる。
そのために法律があるのではないか。

つまり、法律という制度によって、企業行動や人間の行動を規制して、ある方向にインセンティブを持たせるように仕向けているわけだ。
この考え方は、経済学における「制度経済学派」の考え方に近いのではないか。

【2】マンキュー経済学の本でも、「経済学の10の原理」で、「人々は様々なインセンティブに反応する」「通常、市場は経済活動を組織する良策である」「政府が市場のもたらす成果を改善できることもある」という原理があるが、それらを連想する。

経済学の十大原理

経済学の十大原理(マンキュー入門経済学) | 経済を10分だけ学ぶ

普通は、市場経済で自由に任せた方がいい。
企業も人間も、自由にアイデアを作り出し、事業を生み出して、自由に経済活動をすればいい。
でも、自由な市場経済原理で上手く行かない場合も多い。
そこで、法律という制度で、大企業が独占しないように規制したり、補助金を新産業で活動している中小企業に与えたりして、その方向へ他の企業が向くようにインセンティブを与えたりする。

【3】他に、独占禁止法が存在する理由がまさにそう。
独占・寡占市場に対しては、独占禁止法が対処法の一つ。

「市場の機能がうまくはたらけば、資源が効率的に配分される」というのが基本的な経済学の考え方だが、独占・寡占によりそれがうまく機能しない場合が「市場の失敗」。
そうならないように、自由な競争を生み出すように独占禁止法が存在し、公正取引委員会もある。

独占禁止法の存在意義には、経済学の理論が根底にある。

【4】他に、SCPパラダイムという言葉を知って、何となく関係があるような気がした。

SCPモデル/パラダイム - techdmba

SCPパラダイム - 人材開発・組織開発コンサルタント「ZOFFY」の日記

戦略論の復習②…ポジショニングアプローチ|田舎者の受験日記

SCPパラダイムは、ある業界の構造を分析する際の枠組み。
市場構造(Structure)が市場行動(Conduct)を規定し、市場行動が市場成果(Performance)を規定する(つまりS→C→P)という考え方で、外部環境が企業の行動を規定し、企業の利潤を規定する、という考え方。

この発想を展開すると、ある業界で独占利潤を得ている大企業がいて、消費者が不利益を被っているならば、余剰利益を得ている企業(P)に対し、その企業の行動を法律などで規制し(C)、とどめに法が無くても企業が余剰利潤を得られないような市場構造にする(S)というロジックも成り立つ。
つまり、法律によって、企業行動を規制することで、独占利潤を得られないようして、自由競争になるような方向へ誘導する。

おそらく、独占禁止法だけでなく、下請代金支払遅延等防止法など数多くの中小企業向けの法律も、そういうロジックがあるのだろう。
つまり、本来は、弱者である中小企業を守るという政治的事情として法律が作られているのだろうが、大企業が独占利潤を得にくいように、経済学の理論で補強できるように法律を構成しているのではないか。

換言すれば、そういう理論を背後に法律を作っているならば、現実を規定する法則に即しているので、その法律はすぐには廃れないだろう。

| | コメント (0)

2017/05/05

ソフトウェアの複雑性は本質的な性質であって偶有的なものではない

「過剰と破壊の経済学-「ムーアの法則」で何が変わるのか」を気軽に読んでいたら、ブルックスの人月の神話の一節が書かれていて、今頃になって、すごく腑に落ちたのでメモ。
ブルックスの人月の神話の文章のうち、自分が理解できたことを、ラフなメモ書き。
以下は書きかけ。

【参考】
第0回:人月の神話とはなんなのか?(解説編)|本気で読み解く”人月の神話” | GiXo Ltd.

第2回:銀の弾は無いけど、”銃”はあるよね|本気で読み解く”人月の神話”(第16章) | GiXo Ltd.

ソフトウェア開発とは、現実世界の複雑さをプログラムコードの難しさに置き換える作業だ - セカイノカタチ

ソフトウェア開発でよく言われる「銀の弾丸など無い」とはどういう意味なのか本を読んでみた。 - 感謝のプログラミング 10000時間

【1】ソフトウェアの複雑性は本質的な性質であって偶有的なものではない。

「過剰と破壊の経済学-「ムーアの法則」で何が変わるのか」の内容自体は10年以上前のWebやIT業界の話が多く、内容も古くなっているので、新たな知見が得られるという感覚はしない。
しかし、「過剰と破壊の経済学-「ムーアの法則」で何が変わるのか」の中に、「ソフトウェアの複雑性は本質的な性質であって偶有的なものではない」という言葉があって、すごくしびれた。

(引用開始)
ソフトウェアの複雑性は本質的な性質であって偶有的なものではない。
したがって、複雑性を取り去ったソフトウェアの実体の記述は、しばしばその本質も取り去ることになる。
数学や物理学は、複雑な現象を単純化したモデルを構成し、そのモデルからある性質を引き出し、実験的にその性質を証明することで、3世紀にわたって偉大な進歩を遂げた。
この方法でうまくいったのは、モデルで無視された複雑性が現象の本質的な性質ではなかったからだ。
複雑性が本質である場合には、この方法は使えない。
(引用終了)

上記の内容は、ブルックスの「人月の神話」の一節そのまま。
なぜ自分がすごく衝撃を受けたのか、考えてみると、ソフトウェア開発の本質に触れているものだから。
たぶん、僕の心のなかにある、ソフトウェアに対する楽しさだけでなく、ソフトウェアへの憎しみというか、なぜこう思い通りにソフトウェア開発をコントロール出来ないのか、という腹立たしさに触れている気がしたから。

「偶有的」という言葉も引っかかる。
この言葉は、古代ギリシャのアリストテレスの哲学から引用したものらしい。

(引用開始)
アリストテレスに従って、難しさを本質的なものと偶有的なものに分けて考えてみよう。
ここで、本質的な複雑さとは、ソフトウェアの性質に固有な困難のことであり、偶有的難しさとは、目下の生産にはつきまとうが本来備わっているものではない困難のことである。
(引用終了)

自然科学、特に数学や物理学では、できるだけ単純なモデルを作り、そこから演繹される性質や定理を証明することで、自然現象を多面的に分析しようとする。
複雑なものを複雑なまま捉えるのではなく、理想的な単純なモデルに純粋化して、人間の思考に耐えられるレベルにして、数多くの観点で徹底的に分析するのが自然科学のやり方。
シンプルなモデルを「徹底的に」分析し尽くして、全ての特徴を洗い出し、全てを因果関係や演繹でまとめ上げて一つの理論体系にするのが自然科学のやり方。

すると、シンプルなモデルをどのように事前設定するか、どのパラメータを重視して選択しておくか、というのが重要になる。
その部分が、科学者の腕の見せ所。

たとえば、物理学では、理想気体みたいに、現実から離れるけれど、シンプルなモデルを設定することで、計算や実験を扱いやすくするモデル作りは一般的だ。
熱力学、相対性理論、量子力学など、色んな分野の物理学でもその手法を用いている。

物理学は一つの認識論: プログラマの思索

数学でも、一流の数学者は、自分で理論を打ち立てたい時、最も組合せの少ない公理や公準を直感的に選んで、そこから矛盾が生じないように設定しておく。
そこから、「誰々の定理」のような重要な結果を導き出す。
一流の数学者がすごいのは、最も組合せの少ない公理を直感的に把握できること、そして、重要な定理を導く時に、ロジックの穴になりそうな難しい場所を事前に察知して、それをくぐり抜けるために、あらかじめ「誰々の補題」みたいな補助的な公式を用意しておくのが上手い点。

技術の背後に数学の理論があると廃れない: プログラマの思索

数学や物理は背景にある思想を知らなければ理解できない: プログラマの思索

このやり方がすごく成果を上げているので、人文科学や社会科学でもそのやり方を真似ているように思える。
特に、経済学は典型的だろう。
マクロ経済学やミクロ経済学みたいに、人間は合理的に行動する、とか、市場の価格は恣意的な手段で決めても長続きせず、神の手(つまりは市場原理)で決まる、みたいに、現実とかけ離れた仮定をおいて、数多くの経済モデルを作り、そこから重要な経済学の定理を導き出す。
単純な経済モデルから得られた経済学の定理で現実に通用する場面が過去にあったから、経済のグローバル化が世間に言われ始めてから、世の中の経済事象は、市場原理で決まる、いや決めるべきだ、みたいな論調が多い気がする。

経済数学の直観的方法の感想: プログラマの思索

「推計学のすすめ」「経済数学の直観的方法~確率統計編」の感想: プログラマの思索

しかし、ブルックスの「人月の神話」では、ソフトウェアにはそのやり方が通用しない、という指摘をしている。
「ソフトウェアの複雑性は本質的な性質であって偶有的なものではない」からだ。
つまり、複雑性を排除したソフトウェアは、ソフトウェアの本質を意味しないからだ。

【2】ソフトウェアの本質的な複雑さと、偶有的な複雑さの違いは何か?
ソフトウェアの本質的な複雑さは、リーマンの法則そのものを指すと思う。

リーマンの法則~ソフトウェアもエントロピー増大の法則を避けられない: プログラマの思索

リーマンの第1法則
 使われるシステムは変化する。
リーマンの第2法則
 進化するシステムは複雑性を減らす取り組みをしない限り、システムの複雑性が増す。
リーマンの第3法則
 システムの進化はフィードバックプロセスによって決まる。

(引用開始)
レーマンとベラディは、大規模なオペレーティングシステムのリリースについて、継続してその変遷を研究してきた。
そこで分かったことは、モジュールの総数はリリース番号とともに線形に増加するのに対し、影響を受けるモジュールの数はリリース番号に対し指数的に増加するということだ。
(中略)
システムプログラムの作成は、エントロピーを減らす仮定だから、本来は準安定なものである。
他方、プログラムメンテナンスはエントロピーが増加する過程であり、どんなに器用に行なっても、できるのはシステムが修正不能な陳腐化へと沈んでいくのを遅らせることだけである。
(引用終了)

(引用開始)
ソフトウェア製品開発に関する古典的問題の多くは、その本質的な複雑性と、ソフトウェアの大きさに従ってその複雑性が非線形に増大することに由来している。
(引用終了)

この文章を読んで思い出すのは、ケント・ベックがXPを生み出した経緯のことだ。
ケント・ベックは、ソフトウェア工学の授業で習った、リリース総数が増大するにつれてソフトウェアの複雑度や変更コストが増大していく経験則に対して、異議を唱えた。
時間が進むに連れて、この曲線を頭打ちにできるような開発プロセスはないのか、と。

- eXtreme Programmingの魅力を探る オブジェクト倶楽部

(引用開始)
「変化ヲ抱擁セヨ」
この呪文めいた言葉は,Kent Beck による本の副題として掲げられている. 時間を横軸に,ソフトウェアの変更にかかるコストを縦軸にプロットする.
この「時間-変更コスト」曲線は極端な右上がりになると信じられて来た(図左).
すなわち,要求分析,設計,実装,テスト,保守,と時間が進むにつれ, 変更にかかるコストが増大するというのだ.
現在までのソフトウェア開発プロセスは,この仮定上の議論が多数 だったのである.
XP はこの曲線を平坦にできるのではないか, また,そうできたとしたら,全く違った方針でプロジェクトに立ち 向かえるのではないか,という挑戦をしている(図右)
(引用終了)

こういう素朴な問題意識はすごく重要だと思う。
XPがその理想を本当に実現したのかどうか、は検証がいると思うが、そういう背景を元にアジャイル開発のプラクティスが生まれたことは、アジャイル開発が従来のソフトウェア工学と対立しがちに見える傾向を示唆しているように思える。

ちなみに、上記の第1版の「XPエクストリーム・プログラミング入門―ソフトウェア開発の究極の手法」に、上記の「従来のソフトウェア工学が提唱しているソフトウェア複雑性へのXPの果敢な挑戦」の文章と図はあるのに、第2版の「エクストリームプログラミング」から削られていることだ。
とても残念。
この部分がXPにとって一番重要な主張なのに。

【3】コードクローンと再利用性。

(引用開始)
ソフトウェア実体の本質とは、データセットやデータ項目間の関係、アルゴリズムや機能呼び出しなどが組み合わさったコンセプトで構成されたものである。
この本質は、同じ概念構造体が多くの異なる表現で表されるという点で抽象的である。
それにもかかわらず、非常に正確で十分に詳細なものである。
(引用終了)

コードクローンとは、同一アルゴリズムを各プログラマが別々の実装したプログラムのことだ。
上記は、ソフトウェアの複雑性が増大しがちな理由の一つは、コードクローンが大量に発生しがちである、と言う点を示唆していると思う。

ソフトウェア工学の論文を見ていると、コードクローンのメトリクス採取の記事が割と多い。
その理由は、コードクローンを減らす方がソフトウェアの複雑性が減るので、良い、という主張が隠れているのではないか。

では、なぜコードクローンは良くないのか?

(引用開始)
ソフトウェア実体は、どの2つの部分をとっても似ることがないので、大きさの割にはおそらく他のどの人工構造物よりも複雑なものだ。
似通っている部分があれば、2つの類似部分を1つにする。
この点において、ソフトウェアシステムは、重複要素(部品)が豊富なコンピュータやビルあるいは自動車などとは全く異なっている。
(引用終了)

その理由は、ソフトウェアの再利用が進まないからだ。
たとえば、自動車やパソコン、スマートフォンのような工業製品は、再利用可能な汎用部品を組み立てる手法と大量生産することを組合せることで、規模の経済を生かし、経験曲線効果を生かして、1個当りの製造コストを劇的に減らす。
しかし、この「規模の経済」「経験曲線効果」というコストメリットを享受しうる生産手法がソフトウェア開発には全くといっていいほど通用しない。

ソフトウェアを部品化して、スマートフォンみたいに部品を組み立てるように製造したい、と考えて、CORBAとかEJBのようなコンポーネント駆動開発、製品ファミリー群の製品開発手法であるソフトウェアプロダクトラインとか色々考えられたけれど、どれも実用的ではない。

ソフトウェア部品化の幻想: プログラマの思索

ソフトウェアプロダクトラインが解決しようとするもの~品質と再利用: プログラマの思索

だから、多額の資金を設備投資に投入して、最新の機械で汎用部品を組合せて大量生産する生産手法がソフトウェア開発には馴染まない。
ソフトウェア開発は徹頭徹尾、経験曲線効果すらも有効でない労働集約的な生産手法に似ているように思える。

【4】ソフトウェアの本質的な複雑性とは、同調性、可変性、不可視性。

【4-1】同調性は、リーマンの言う組み込まれた(Embeded)プログラム、を連想する。

「ソフトウェア・グラフィティ」の感想: プログラマの思索

(引用開始)
支配しなければならない複雑性の多くは気まぐれによるものだ。
インターフェイスを人間の社会制度やシステムに適合させるべく、いわば是非もなくそれらによって強制されているからである。
(引用終了)

最近、業務システムとかERPに僕自身が少し興味をなくしているのは、システム化したい業務そのものが元々複雑過ぎて、それを整理しようと言うよりも、現実の業務をいかに忠実にシステム化するかに注力する案件の方が多いからだ。
元々の業務が、日本的な複雑な組織体制を元に作られていれば、複雑なのは当たり前であり、それを忠実にシステム化するなら、複雑怪奇なままだ。
日本では、ERPをBPRとして捉えるよりも、自分達の業務中心に考えすぎているために、システムも複雑怪奇になりやすいような気がしている。

【4-2】可変性は、ソフトウェア品質の移植性や保守性を連想する。

アジャイル開発が重視する品質特性~保守性と移植性: プログラマの思索

(引用開始)
ソフトウェア実体は、つねに変更という圧力にさらされている。
(引用終了)

XPの言う「変化を抱擁せよ」と同じ。
ソフトウェアにとって、VerUpは宿命であり、常に変化が内在している。
ソフトウェアは変化しない固体として存在し得ない。

(引用開始)
純粋な思考の産物であってきわめて融通性に富んでいるので、ソフトウェアがより簡単に変更できるということもある。
ビルも現実には変更されるものだが、だれもが了解しているように、変更コストの高さが思いつきで変更しようとする者の気をくじく働きをしている。
(引用終了)

ソフトウェアに、仕様変更という名の保守はつきものだ。
それは簡単にできるように思えるから、簡単にソフトウェアに手を入れて、潜在バクを埋め込んでしまう。
ソフトウェア品質特性のうちの保守性を連想させる。

(引用開始)
大当たりしたソフトウェアはまずたいてい、すべて変更される。
あるソフトウェア製品が役立つと分かると、人々はもともと処理対象としていた領域ぎりぎりもしくはその領域を越えるような新しい使い方を試してみようとする。
主として、拡張機能のために変更して欲しいという圧力は、基本機能が気に入っていて新しい使い方を考えだす利用者から出される。
(引用終了)

これは、たとえば、Redmineが当初のバグ管理の使い方から、タスク管理、そして、アジャイル開発やWF型開発、さらには、事務処理ワークフロー、ハードウェア資産管理システムへ使い道がどんどん広がっていった事例を連想させる。
本来想定しなかった使い方が一般的になってしまい、その使い方をさらに使いやすくしたり、機能改善することで、ソフトウェアの複雑性がどんどん膨張する。
あらゆるソフトウェアは機能追加という変化にさらされている。

(引用開始)
大当たりしたソフトウェアは最初に書かれた対象である機械機器の通常の寿命よりも長く使用され続ける。
要するに、ソフトウェア製品はアプリケーションや利用者、慣習および機械機器といった文化的マトリックスにすっかりはめこまれているのだ。
そしてそれらは絶えず変化し続けるものであり、その変化がソフトウェア製品に容赦なく変更を強制するのである。
(引用終了)

たとえば、OSやDBやミドルウェアのバージョンアップとか。
あるいは、サーバー本体のリプレースとか。
たとえば、WindowsXP廃棄対応、WindowsServerのリプレース、OracleのVerUp、RailsのVerUpとか、iOSやAndroidOSのVerUpとか、色々思い出す。
つまり、ソフトウェア品質特性の移植性を連想させる。

こういうミドルウェアやOSのVerUpに伴うプログラム変更作業は、とてもしんどいものだ、と開発者なら誰でも知っている。
こういうつまらない開発基盤のVerUp作業は、ソフトウェアの外にある外部環境の変化によって生じるものであり、避けることは出来ない。

【4-3】不可視性は、ソフトウェア設計の難しさを連想する。

(引用開始)
ソフトウェアの構造を制限したり単純化したりすることは進歩したにもかかわらず、その構造は本質的に視覚化できないままになっている。
そのため強力な概念上のツールを作る意欲を阻害している。
その欠落は1人の人間の頭の中のデザインプロセスを妨げるばかりでなく、複数の人間の間でのコミュニケーションもひどく妨害する。
(引用終了)

UMLやDOAは、ソフトウェア構造を視覚化する問題を解決しようと試みていた。
SySMLもその流れだろう。

複雑性をコントロールするための設計技法は、歴史上いくつか考えれてきた。

たとえば、Nティア設計。
つまり、レイヤ化。

another level of indirection
「もう一段の間接参照」を導入すると、コンピュータのほとんどの問題は解決できる。

NFuji's Café: 「Beautiful Code」を読む(中)

ポインタを制する者はプログラミングを制する: プログラマの思索

MVCモデル、通信プロトコルの7層モデルもそういう考え方だろう。

他に、渡部幸三さんの観点でのDOAでは、業務・機能・データの3層構造の業務システムにおいて、業務レイヤとデータモデルのレイヤに複雑性を押しこんで、機能レイヤは複雑性をできるだけ減らす設計が良い、と提唱していた。
すなわち、機能レイヤはまさにプログラミングレベルなので、その部分の複雑性はできるだけ減らして保守性を高めようとする考え方。
つまり、複雑性というエントロピーは一定で変わらないと仮定した場合、人が携わる業務レイヤと、データモデルのレイヤに複雑性を落としこんで、複雑性をコントロールしようとするわけだ。

だが、これらの手法で、ソフトウェア本来の複雑性が本質的に解決されたのか、と問うてみると、正直分からない。

【5】一方、ソフトウェアの偶有的な複雑さは個別撃破している。

「高水準言語」は、たとえば、VBよりもRuby。
たとえば、VBはListやHashなどの基本ライブラリのAPIが非常に不足していて使いにくい。
たとえば、Rubyなら、そういう低レベルなライブラリは非常にAPIが揃っていて、VBよりも1行で書ける。
つまり、複雑性を軽減している。

「タイムシェアリング」は、たとえば、コンパイラ言語よりもインタプリタ言語、継続的ビルド管理、構成管理を指すのかな。

(引用開始)
考えていた内容をすっかりというわけではないが些細な点でどうしても忘れてしまう。
(引用終了)

この部分は、まさにソース管理、構成管理を連想させる。
たとえば、CVS、Subversion、Gitに至るまでの構成管理ツールの歴史を振り返れば、ソフトウェア開発プロセスにおけるブランチ管理、マージなどの作業の複雑性は軽減されている。

「統一されたプログラミング環境」はたとえば、VisualStudioやEclipse、IntelliJとか。

つまり、ソフトウェアを開発する作業そのものが生じる複雑性は、今までの歴史で生み出された技術によって、多少は軽減されてきた。
しかし、だからと言って、ソフトウェアの本質的な複雑性を攻略できたわけではない。
あくまでも、以前よりも大きい複雑なソフトウェアをコントロールできるようになった、というだけだ。

| | コメント (0)

2017/03/27

第54回関西IT勉強会の感想

第54回関西IT勉強会で、渡辺さんの生産管理データモデルを超高速開発ツールで実装してデモを見せてくれて、面白かった。
以下はラフな感想。
間違っていたら後で直す。

【参考】
データモデルを通して業務を理解しよう <第54回IT勉強宴会> | IT勉強宴会blog

データモデルを通して業務を理解しよう - connpass

【1】渡辺さんの生産管理データモデルは既に公開されている。
書籍では何度も読んでいるけれど、実際に動いた画面は見てないので、ピンときていない部分もあった。
今回、超高速開発ツールで実装してデモを見て、渡辺さんの生産管理データモデルはすごい!と改めて気づいた。
(レベルが低くてスミマセン)

【2】渡辺さんの生産管理データモデルで興味深い点はいくつかある。

【2-1】受注生産と言いながら、汎用部品の見込生産にも対応している

受注生産のシステムなので、製造するときには必ず受注番号が既にある。
受注番号から製造指図書が生成され、それに従って、原材料の発注、設備の作業時間の予約、作業員のスケジュール予約が自動設定される。
つまり、MRPの所要量計算が自動計算されて、必要なリソースが予定として計画される。
そして、次の業務へ移る。

だが、渡辺さんの生産管理データモデルでは、「特殊売上」「特殊仕入」という特殊な業務がある。
これは、汎用部品の売上処理や仕入処理を意味する。
なぜこういう機能が必要なのか、を推測すると、受注番号なしで製造指図書を発行したい、という例外的な業務があるからだろう。
そういう例外的な業務をシステム化しないケースもありうるが、その場合は、例外的な業務は従来の紙による運用になってしまい、生産データや売上データを別で入力する必要が出てしまう。
だから、このような例外的な業務に対応する機能も実装しておくと便利。

その場合、その例外的な業務に対応する機能は、ほとんど全ての例外業務を飲み込んでしまう。
たとえば、本来は、何らかの理由で追加生産する時に使う機能だったのに、汎用部品を事前に見込生産する、とか、サポート保守用の部品を事前に生産して準備する、とか、ありとあらゆる例外業務に対応できてしまう。
つまり、例外的な業務に対応する一機能にすぎないのに、実際は、受注生産以外の全ての生産業務に対応できるような仕組みを故意に作っておけば、中小企業のある程度の生産業務に対応できる、という背景があるのだろう。

そういう意図を読み取りながら、デモ画面を見ると、さほど複雑ではないシンプルな生産システムにも関わらず、このデータモデルを流用すれば、ある程度のシステムを構築できてしまうわけだ。
たぶん、渡辺さんの過去の経験から、こういうデータモデルがないと、現場の業務は回らない、という確信があるのだろう。

【2-2】製造指図書、発注明細などのFatなテーブルの項目には意味がある

公開されたER図をサラッと見ると、業務の中心にFatなテーブルがあり、その周囲に惑星のような小さなテーブルが配置されている。
まるで、太陽系のようなデータモデル。

T字形ERの人達から見れば、正規化しきれていないテーブル構造だと思えてしまうかもしれない。
だが、実際にデモを見ると、Fatなテーブルの項目は、それぞれの業務の画面項目に対応しており、データの生成→更新→終了に至るまでの経緯を保持するデータに対応する。
つまり、導出項目だったり、数量だったり、連番だったりする。

渡辺さんの生産管理データモデルで最も特徴的な在庫推移機能の画面では、業務が変わるたびに、在庫数量がその都度更新され、リフレッシュされる。
実際は、親画面からポップアップされた子画面で、ステータスや数量を更新すると、親画面の在庫数量がリフレッシュされる。

下記の質問はそんなデモを見た時に出た。

(引用開始)
・先ほどから画面を閉じるとひとつ前の画面がリフレッシュしてるように見えます
 最近追加した機能です。画面フォーカスが戻った時に自動リフレッシュ出来ます
 またルールエンジンも組込みましたので簡単な業務ならノンプログラミングになりました。
(引用終了)

在庫推移画面は実際に見たことがなかったので、そんな動きになるのか、とようやくイメージできた。
(レベルが低くてスミマセン)

つまり、Fatなテーブルは、各業務に必要な導出項目や更新する項目を保持するために必要であり、データ保守やデータ移行の手間を考えると、あえて、正規化しすぎないようにしているわけだ。
その分、カスタマイズもしやすいだろう。

【2-3】製造指示工程明細---●製造指示材料明細

製造指図書テーブルから、製造指示工程明細と製造指示材料明細の2つのテーブルが外部キーとして外部参照関係を持つ。
さらに、工程と品目明細のテーブル間で、「製造指示工程明細---●製造指示材料明細」という外部参照関係がある。

この意味は、原材料を「工程の始点から投入」だけでなく、「工程の途中から投入」できるようにするために、そのような関係を持たせている、らしい。
なるほど!

普通は、原材料は「工程の始点から投入」のパターンだが、工程の途中から投入する生産工程もあったりする。
そのような例外的な業務に対応できるように、故意に制約を緩めて汎用化しているわけだ。

工業簿記の総合原価計算では、「工程の始点から投入」のケースと「工程の途中から投入」のケースでは、加工進捗の計算方法が変わるため、加工費の算出が変わってくる。
つまり、この部分に対応することで、多様な原価計算パターンにも対応できるようにデータモデルを設計されているわけだ。

【2-4】発注明細●----入荷見出し

(引用開始)
発注の部分のERがすごく良くできています。
発注見出 -< 発注明細を作ります。
仕入が入ってくると発注明細ごとに仕入番号を更新することで入荷された単位で仕入れを発生させることが出来ます。
(引用終了)

僕の理解では、発注明細が複数個発生すると、そのたびに入荷処理するわけではなく、一括で処理したい。
そこで、一括処理する単位で、発注明細を束ねて、入荷処理する。
つまり、発注明細に、仕入番号という外部キーを挿入して、仕入番号の単位で入荷処理を行うように記録させる。
なるほど!

T字形ERでも、2個のトランザクションに先行・後続の関係を持たせる時、外部キーを持たせる。
また、T字形ERでは、先行のトランザクションを一括処理でまとめて、後続のトランザクションに渡す時は、親子キーの関係を持たせるが、渡辺式データモデルでは、実運用を考えて、外部キーで持たせている。
つまり、発注明細テーブルの仕入番号は最初はNULLであり、仕入という入荷処理を行うと、仕入番号が発行されてセットされる。

懇親会で実装した人に聞いたら、この部分のデータモデルはシンプルで汎用性が高いので、いろんな業務にカスタマイズしやすい。
よく考えられている、という話だった。

【2-5】ストアドプロシージャは、サーバーサイド・JavaScriptで実装する

今時、ストアドプロシージャをプログラミングするのは古いらしい。
サーバーサイド・JavaScriptで実装するが流行らしい。
確かに、サーバーサイド・JavaScriptで実装しておけば、どんなWebシステムでもクライアントアプリでも、公開されたAPI経由で自由に計算処理できる。

性能要件が気になるけれど、そこさえクリアできれば、保守性を考えると、サーバーサイド・JavaScriptで実装した方が良いのだろう。

【3】@sakaba37さんから、渡辺さんのデータモデルのようなモデリング手法に違和感がある、と聞いた。
あれは、論理モデルではない、物理モデルだから。
本来のモデリングではないのでは、と。
たとえば、オブジェクト指向モデリングならば、モデルは論理モデルを指すのであり、物理モデルはいろんな種類があるから、と。

たしかに、モデリングと言うよりも、実際に実装したシステムまで作ってしまった、みたいな感じだ。

この手の話は、以前、議論したことがあった。

ドメイン駆動設計に出てくる「モデル」とは何ですか?~第28回関西IT勉強宴会の感想: プログラマの思索

つまり、普通のモデリングで言われるモデルは「論理モデル」であり、論理モデルだからこそ、実装方法は色々ある。

一方、勉強会の途中で、渡辺さんの質問「業務に対するモデルの正しさはどのように判定していますか?」があがり、皆であれこれ議論して、結局、場面ごとに違うので、正しいモデルは一つとは限らないね、という話になった。
そして、渡辺さんいわく、モデリングはエンジニアリング技法の一つなので、品質やコスト、納期のトレードオフでモデルが決まるから、と言っていた。
その意図は、「モデルの判定は理想論ではなく、QCDやその時代の技術レベルの選択のすり合わせで決まるので、相対的なものである」という意味なのだろうと思う。

以前、@yusuke_arclampさんも似たようなことを言っていた。

akipiiさんのツイート: "アーキテクトは理想論を語る科学者ではなく、コストなど現実的な折り合いを付ける技術者であるわけか。RT @yusuke_arclamp: アーキテクトというのは「個別の技術論」ではなく「技術選択論(要件と技術のすり合わせ)」を語れないといかんのだけどね。"

でも、@sakaba37さんと同じく、何かすっきりしない気持ちもある。
上記の議論は、モデルのレベルを「実装モデル」に落としているために、技術選択論になっているのではないか、と。
この辺りは妄想なので、あとでまとめる。



| | コメント (0)

2017/02/03

「推計学のすすめ」「経済数学の直観的方法~確率統計編」の感想

推計学のすすめ』と『経済数学の直観的方法』の確率統計編がとても素晴らしくて、すごくはまった。
以下、ロジカルでないラフなメモ書き。
間違っていたら後で直す。

【参考】佐藤信、1968、『推計学のすすめ』 - しょうもないことかきました

直観でわかる統計学 - 講義のページにようこそ

『経済数学の直観的方法 確率・統計編』(その1) 長沼伸一郎著 - ケスケラの読書と旅の日記

『経済数学の直観的方法 確率・統計編』(その2) 長沼伸一郎著 - ケスケラの読書と旅の日記

Amazon.co.jp: 経済数学の直観的方法 確率・統計編 (ブルーバックス)の Nogisuさんのレビュー

【1】統計的仮説検定は正直わかりにくい。
なぜ、わざわざ、主張したい仮説を否定した仮説を立てた後、統計処理を行って否定した仮説を棄却して、主張したい仮説が正しい、というロジックを使うのか。

その理由は、統計的仮説検定は「確率的背理法」の考え方に基づいているから。
つまり、仮で立てた仮説が5%未満でしか確率的に起こり得ない、ということは、ほとんど起こらないだろうから、仮で立てた仮説は成立せず、元々の仮説が正しい、というロジックの流れ。
すなわち、完全な背理法ではなく、95%の確率の正しさで背理法を使った考え方、と思った方がいい。

推計学のすすめ』には、この考え方による統計的仮説検定の事例をたくさんあげて、いろんな統計分布を使った話が載せられていて、とても分かりやすい。

正規分布、t分布、F分布、χ^2分布などをどんな場面で使って、どんな意図で用いるのか、という事例が分かりやすい。
上記Blogの感想に全く同意だが、1960年代に書かれた本なので、その事例に出てくる現象が時代的に古いように感じるのもすごく良い。

(引用開始)
この本はすごい。
1968年に出てるというのがもっとすごい。
筆者の佐藤さん、国税庁醸造試験所に長年勤めていたというのも、ギネスで働きながらスチューデントの筆名で論文出してたゴセットと似ていてかっこよい。
(中略)
推測統計の発想の根本を、懇切丁寧な解説と、豊富な例示とで示してくれるとてもありがたい本。
(中略)
t検定とかF検定とかχ2検定とか、Z標準化とか、なんとなく知ったかぶりでスルーしたけど、結局何なの?どれをいつ使うの?おいしいの?などの疑問がこの本でたいてい氷解する。
推測統計やるなら絶対にまずはじめの一冊。そのあと小難しい本に入っても、混乱したらこの本に戻るといいと思う。とにかく手元に1冊あるとよい。
さすがに60年代の本だけあって、例や言葉遣いが古いがそれがなおさらよい。
(引用終了)

【2】一般に、確率統計はすごく分かりにくい。
サイコロやコインの確率が、なぜそんなに奥深いのか?

【2-1】統計学を生み出したガウスの本来の思想は、確率論ではなく、誤差論だった。
「バラつき=トレンド+ボラリティ」という考え方があり、ボラリティは正規分布の形になる。

では、どうして現実の物事は正規分布に従うのか?
経済数学の直観的方法~確率統計編」によれば、正規分布のイメージはパチンコと同じ。
つまり、パチンコに無数の球を落とすと、パチンコ台の下に積もった球は正規分布の形をなすイメージ。
これがボラティリティに相当する。

しかし、この正規分布の曲線が「exp^(x^(-2))」であるために、その微分・積分が高校数学では扱えないので、多くの人がトラウマになっている、ということらしい。
つまり、パチンコ台に有限個の球を落とすと2項分布になるが、その極限が正規分布の曲線になるという計算は、高校生では解けない。
すなわち、確率分布の計算が複雑怪奇になっていて、とても分かりにくいのは、そこに理由があるのかもしれない。

【2-2】しかし、すべての物事が正規分布に従うという理論はやはり腑に落ちにくい。
たとえば、人の学力は正規分布に落ち着く、というのは本当に正しいのか?
真面目にコツコツ勉強しても間違って暗記した人、要領よく勉強して高得点な人、そんないろんな選択を正規分布は飲み込んでいるのか?

経済数学の直観的方法~確率統計編」によれば、その答えは、中心極限定理が解決してくれる。
実際は、色んなパターンの確率分布の曲線が発生するが、それら様々な確率分布を全て合成して極限に持っていくと、中心極限定理によって、その結果が正規分布になる、と。
つまり、中心極限定理は、二項分布の極限が正規分布になる、というだけでなく、様々な確率分布が合成されて極限に持っていくと正規分布になる、と主張している。(言いすぎかも)

中心極限定理のメリットは、心理学・経済学・社会学のような分野に適用して、それら予測に使えるからだ。
たとえば、株式市場では、政治状況や人々の心理状況などのパラメータに起因するたくさんの確率分布があるが、全て合成して極限に持っていくと、正規分布に落ち着くので、逆に扱いやすくなる。
つまり、株式市場のパラメータがたくさんあったとしても、逆に全ての確率分布を合成するほど、正規分布に近づくので、正規分布の特徴さえ分かれば、株価を予測できるようになる。

【2-3】株式市場への貢献としては、オプション価格の計算に使われたブラック・ショールズ理論がある。
このブラック・ショールズ方程式はとても難しく、経済学部の学生もつまずくものらしい。

ブラック・ショールズ方程式の背後には、ウィーナー過程という考え方がある。
株価のバラつきは理論物理のブラウン運動に似ている。
ブラウン運動では、時間が経つとボラティリティが増大する。
そのボラティリティは時間の平方根に比例する、つまり、「ボラティリティは√tに比例して拡大する」という法則があり、これがウィーナー過程と呼ばれる。

ウィーナー過程は正直分かりにくいが、ブラウン運動でボラティリティが増大する原因は、時間というよりもジグザグ回数が増えることと同じ。
この発想を株式市場に生かすと、株価のボラティリティ(バラつき)は株取引回数が時間と共に増えることであり、それが時間の平方根に比例する。

つまり、ボラティリティが大きいほど、株価は高くなる確率になるので、その時に売れば儲かる。
金利差や価格差を利用して売買して利鞘を稼ぐ裁定取引、いわゆるサヤ取りがこれに相当する。
また、株や国債は長期で保持した方が儲かる、という理由も、ここにあるのかもしれない。

【3】上記のAmazon感想にこんな感想があって、すごく同意した。

(引用開始)
私はいわゆる理系出身で、工業用のセンサ開発に関わっている。
私の働く業界では、本書でいう「ボラティリティ」を最小に抑え込み、「トレンド」を除去することで、品質を一定に管理することに腐心している。
このため、ボラティリティから何等かの「益」を得るという発想を持っていない。
この発想そのものが目から鱗の驚きであった。
(引用終了)

【3-1】製造業の品質管理では、完成品のバラつきを一定の範囲内に閉じ込めるように、厳しくチェックして出荷する。
つまり、たとえば、あるボトルネック工程で部品の歩溜まりが低い、と言った問題点は改善策を用いて解決して、「トレンド」となるバラつきを取り除く。
また、たとえば、全数検査でなく一部しか検査できないために観測できない誤差といった、「ボラリティリティ」のバラつきは最小限に押さえ込む。
たぶん、管理図の手法を使っているのだろう。
それによって、一般消費者は、品質が安定した大量製品を安価に買うことができる。

【3-2】一方、株売買、原油の先物取引のような金融取引では、ハイリスク・ハイリターンなので、ボラティリティが大きいほど、儲けが大きくなる。
なぜなら、ファイナンスの世界では、リターン=期待値、リスク=バラつき(偏差)という関係があるからだ。
つまり、ハイリスクで成功すればハイリターンが得られる。

昨今なら、トランプ現象のおかげで、株売買で儲けた人もいるのではないか。
つまり、「ボラティリティから利益を得る」という発想があるのだ。

ブラック・ショールズ方程式では、金融商品のボラティリティを数学的に求めて、金融商品のオプション価格としてあらかじめ算出することに成功した。
そのおかげで、金融取引市場が成立したわけだ。
その背景には、ウィーナー過程の考え方、つまり、「ボラティリティが√tに比例して拡大する」という考え方がある。

【3-3】この辺りの話はイマイチ分かりにくいが、以前、簿記1級を受講していた時、先生からこんな話を聞いたことがある。
本来の株式市場では、100株1000万円のような株を買いたい場合は、普通は手持ちのお金がなければ買えない。
しかし、ノーベル経済学賞を取った偉い学者(ブラックさん?)のおかげで、株式市場に、ある一定の入場料を支払えば、「株を将来買う権利」「株を将来売る権利」という形で、株の売買に入場できるようになった、と。
つまり、株式市場で金融取引を行うための入場料が、ブラック・ショールズ方程式で求められるオプション価格なわけだ。

そのおかげで、株式市場にもっと大量の人が簡単に入場できるようになり、株の売買がより一層活発になる、というメリットが生まれる。
日本政府がNISAなどを導入して、株式市場を活発化させたい、という意図はそんな所にも関連しているのだろうと思う。
株価が上がれば、NISAなどに投資した人にもお金が行き渡り、日本人の収入向上に役立つから、という流れなのだろう。

最終的には、企業はランダムな世界でも物事の連動性に注目して適切に意思決定することにより、ボラリティリティから利益を得ることが可能という事実から、企業は恒常的に利益を上げ続けることができる、という流れ。
この発想の類推から、マクロ経済学における経済成長理論につながるのだろう。

【4】こういう確率統計の理論の本を色々漁ってみると、チケット駆動開発の時と同じような匂いを感じる時がある。

【4-1】たとえば、従来の統計学では、計算力不足のために、大量データがあっても簡単に計算することができなかった。
昔は、数学的理論で確からしさは保証されているのに、コンピューティングパワーが不足していたから、その理論を使った実地検証がしづらかったわけだ。

しかし、今は、強力なコンピューティングパワーが安価で誰でも手に入るようになったので、統計学の理論をバックにプログラミングを縦横無尽に使って、文系理系を問わず、従来の自然・工学分野だけでなく、心理・社会・経済のような分野に適用して、色んな知見が得られるようになってきた。
たとえば、「ワーク・ルールズ」の本のように、Googleが自社の人事施策に統計理論を使っているように。

つまり、自然科学や工学で使われている従来の理論に対し、その適用分野を心理・社会・経済へ変えることで、別の新たな知見を見出だせる。
たとえば、理論の使い道をちょっと変えるだけで「ボラティリティを押さえ込む」のではなく「ボラティリティから利益を引き出す」という発想が生まれるわけだ。

【4-2】最近の人工知能も、その流れに似ている。
深層学習の背景にあるパーセプトロン、ニューロン、確率降下法という考え方は既に1960年代頃から理論として構築されていた。
だが、当時はコンピューティングパワーが不足していて、そもそも意味ある計算を実現できなかった。
しかし、今は違う。

その気になれば、PythonやR、AIのOSSのフレームワークを使えば、プログラムでいくらでも計算して、応用できる。
つまり、昔の数学や物理の理論を知らなくても、プログラミングできるならば、実際にプログラムで計算実行させて、意味ある応用結果を導ける。
その計算の後に、そのプログラムの背後にある諸理論を勉強しなおせば、実際の具体例をたくさん知っているのだから、理解しやすくなるだろう。
抽象的な理論ばかり勉強しても、その理論を武器に実際に使えなければ無意味だから。

今の時代は、数学や物理の理論からトップダウン的に勉強するのではなく、まずはプログラムを書いて動かして、たくさんの具体例を経験した後で理論を勉強し直す、と言うボトムアップ的な勉強方法の方が向いている気がする。
そんな流れがあるから、日本の小学生もプログラミングに慣れましょう、という方向に傾いているのかもしれない。

| | コメント (0)

2017/02/02

経済数学の直観的方法の感想

『経済数学の直観的方法』のマクロ経済学編確率統計編がとても素晴らしくて、すごくはまった。
下記の感想記事もとてもすばらしい。
以下、ロジカルでないラフなメモ書き。
あやふやな理解で間違っているかもしれないが、その場合は後で直す。

【参考】
『経済数学の直観的方法』 長沼伸一郎著 - ケスケラの読書と旅の日記

『経済数学の直観的方法 確率・統計編』(その1) 長沼伸一郎著 - ケスケラの読書と旅の日記

『経済数学の直観的方法 確率・統計編』(その2) 長沼伸一郎著 - ケスケラの読書と旅の日記

【1】『経済数学の直観的方法』を読むと、現代経済学が、現代数学や現代物理学並みに難解になっている事実が良く分かる。
ミクロ経済学では、消費者の消費行動、企業の購買活動を最小化する・最大化するという文言が多いけれど、それを精緻に理論化するには、解析力学が必要なわけだ。

物理学では、解析力学で使う変数XとXドットは、位置と速度、速度と加速度のように事前に決まる場合が多い。
一方、経済学では、解析力学の前提となる変数がうまく当てはまる場合は少ない。

昔に見つけられたモデルは、消費と消費の変化率から最適成長経路を導出するラムゼイ・モデル。
それ以外の経済モデルはなかなか見当たらなかった。

しかし、著者によれば、ルーカスの合理的期待形成仮説によって、経済事象とその事象を変化させる要素の二つのペアを解析力学の変数とみなすことで、動学的均衡理論が生まれた、というストーリー。
そして、リアルオプションという経済理論が作られて、ノーベル経済学賞を取った。

たとえば、マクロ経済学では、失業率とインフレ率は負の相関であるというフィリップス曲線の理論が出てくるけれど、その理論がそもそも成り立たない場合が現状でよく見られる。

その理由は、インフレを皆がすでに織り込み済みで行動するから、期待通りの経済政策の効果が出ない、というストーリーみたい。
そこで、インフレ率とインフレ変化率の二つを解析力学の変数とみなすことで、経済政策の効果を最大化するようにシミュレーションできるというストーリーなのだろう。

だから、最近の日銀は、国民が織り込み済みの行動を取らないように、故意にサプライズと称した経済政策を次々に打ち出すわけだ。
よって、中央銀行のインフレターゲット政策では、動学的均衡理論が必須のスキルであるということなのだろう。

【1-1】ここで、動学的均衡理論が現代経済学の寵児となった理由は、この理論によって、論文が大量生産されるようになったからだ、と著者は言う。

つまり、ルーカスの合理的期待形成仮説によれば、経済法則は経済事象のパラメータだけでなく、その事象を変化させる要素も考慮しなければならない。
そこで、経済事象のパラメータとそのパラメータを変化させる要素(つまりパラメータの微分)の二つのペアを解析力学の変数とみなすことで、数多くの経済現象の理論をモデル化できるわけだ。
その最たる例が、インフレ期待理論であり、中央銀行がデフレ対策としてその理論を駆使しているわけだ。

但し、著者は、このような優れた理論の価値は認めているが、これによって論文が大量生産される事象については皮肉っぽく言っているように聞こえる。
理論を生み出した超一流の天才と、その理論を拝借して論文を大量生産する一般の学者の違いはそこなんだよ、と。

【2】そんな流れを読むと、文系だから経済学部に行く、という考えは浅はかであり、理論物理学のスキルをマスターしておかないと、そういう最新の経済学に追いつけなくなっているわけだ。
経済学の知識は公務員になるなら必須知識みたいだが、最新の経済学を研究するには、さらに理論物理学のスキルまで必要となると、正直大変なのだろう、と推測する。

物理学のラグランジュアンやハミルトニアンもイメージしにくいが、その概念を経済学で置き換えた場合、どのように考えることができるか?

物理では、ラグランジュアンは最小作用の原理を実現するための概念、ハミルトニアンはエネルギーやポテンシャルみたいな保存則を満たすような概念イメージ。
経済学では、ラグランジュアンは経済政策の成果の最大化やコストの最小化に用いる概念、ハミルトニアンは総資産かGDPみたいなイメージかな。

そう思うと、現代経済学は、既に知られている数学や物理学の理論を片っ端から適用しまくって、その中から上手くいった結果だけを見せているだけなので、そんな背景を知らない理系・文系の人にとっては、本当にチンプンカンプンなのだろうと思う。

以上は自分のもやもやしたアイデアを書いただけなので、もう少し精緻化していく。

| | コメント (0)

2016/11/12

日本の品質管理がISO9001やシックスシグマに変わっていった歴史

最近、日本の製造業の品質管理に興味を持って、色々あさっている。
TQM品質管理入門」を読んだら、日本の品質管理がISO9001やシックスシグマに変わっていった経緯が書かれていて分かりやすかった。
以下、自分の理解でラフなメモ書き。
メモなのでロジカルでない。

【参考1】
今、あらためて、日本自動車産業の「ものづくり」について考えよう | 住商アビーム自動車総合研究所 自動車業界コンサルティング

(引用開始)
日本型ものづくりの基礎に貢献したのはW・エドワード・デミング博士だろう。
彼は統計学者として戦後初の1951年国勢調査計画立案に携わる傍ら、品質管理技術の専門家として日本科学技術連盟の招待を受け、日本の製造業経営者に対し統合的品質経営(TQM)を説いて歩いた。こうして日本のものづくりは体系化され、力を付けた。

1980年代、日本の製造業、特に自動車産業が勢いを増す中、米国マサチューセッツ工科大学(MIT)が中心となり、日本の自動車産業における生産方式を研究し、その成果を再体系化・一般化し、「リーン(=痩せぎす)生産方式」(LPS)と命名した。その後、LPSの概念は欧米製造業に浸透し、ゆくゆくは日本本国に逆輸入された。

1990年代末、日本にてバブル経済、金融不況と苦境が続いた後、再度、自動車産業を中心に日本の製造業が徐々に復活を見せた。この時、日本は、単なる製造を超えた日本古来に由来する日本の強みと伝統の象徴とすべく「ものづくり」と命名し、「ジャパンブランド」の一つの軸に位置付けた。

斯様な歴史を経て、「ものづくり」の概念は今日に至ったが、特にリーマンショック以降、それを取り巻く環境諸般が著しく変化する中、またもや、大きな転機に差し掛かっているものと考える。

リーマンショック前後より電機関連領域における日本の製造業の地盤沈下が起こった。
続いて2010年以降、自動車産業においても大規模なリコールが発生し元来の「品質神話」に疑問符が付いた。
更に昨今では、消費者の「モノ離れ」とか、「モノからコトへ」とまで言われる。「モノ=所有文化=時代遅れ」という感じすらある。
一方で、欧米では、IoTとか、インダストリー4.0とか新しい概念が生まれ、GEをはじめ「製造業の復活」と言われている。

こうした一連を見るに、「『ものづくり』とは一体何だろう」と改めて問題提起をし、皆様と一緒に考える契機を作りたい。(後略)
(引用終了)

【1】引用元のURLを忘れたが、下記のような解説があった。

(引用開始)
 品質管理のさまざまな新しい方法の開発によって、統計学は大量生産時代の必須の技術として定着していきます。第二次大戦後の日本の品質向上は、米国ではミラクルと考えられた時期がありますが、1980年代のMITのレポートでは、日本の産業界が統計的方法を活用していることを一つの原因としています。
 これについては、デミングが1950年に日本で行った講義以来、石川馨(特性要因図)、田口玄一(ロバストパラメータ設計)、赤尾洋二(品質機能展開)、狩野紀昭(狩野モデル)といった新たな管理技術を開発した日本の先生方の貢献が大ということができるでしょう。
(引用終了)

(引用開始)
品質管理は管理図に始まり、管理図に終わる
(引用終了)

つまり、製造業の品質管理は、大量生産する時に製品の品質のバラつきをなくすために、管理図や特性要因図などのQC7つ道具を編み出し、それら技法を洗練させてきたのだ。
品質管理の技法の背後には、統計学、特に検定や回帰分析の理論がある。
だから、品質管理の技法は、統計学の理論がバックにあるので、廃れないし、理論的に強固なのだと思う。

そして、日本の「品質管理の総本山」は「日科技連」。
高校生の頃に日科技連の数学の本を読んだら、普通の数学と違うなあ、と思っていたが、その理由は、僕が統計学を知らなかったので、違和感があったのだろうと思う。

しかし、今ではこういう製造業の品質管理の技法が普及しているとはあまり思えないのは何故だろうか?

【2】「TQM品質管理入門」を読んだら、日本の品質管理がISO9001やシックスシグマに変わっていった経緯が書かれていた。
どうやら1980年代のアメリカで、日本の製造業の品質管理を徹底的に研究し、アメリカ独自の理論に発展させていったみたい。
それが、シックスシグマらしい。

TQM品質管理入門」を読むと、アメリカのシックスシグマと日本のTQMの違いは、アメリカはトップダウンによる標準化であり、日本はボトムアップによる教育。
たとえば、品質管理の技術者をグリーンベルト~ブラックベルトのようにレベル分けする点は、CMMIに似ている。
「特性要因図の目的の一つは教育」と言われるように、日本企業ではOJTによる社員教育を重視してきたが、昨今の成果主義制度のために、OJTが機能しなくなっているように思える。

最近、職場で「OJT」が機能しないのはなぜなのか?(中原淳) - 個人 - Yahoo!ニュース

もう一つの流れはISO9000シリーズ。
品質管理をきちんとやっています、という国際的な免許が公開され、グローバルスタンダードになってしまったために、日本の製造業も取得せざるを得なくなった。
ISO9001の中身はTQMと同じだが、日本企業では、ISO9001の維持のために膨大な管理人員が割かれているデメリットが大きいのではないか。

【3】一方、欧米では、日本の製造業の品質管理を徹底的に研究し、シックスシグマやISO9000シリーズを生み出しただけでなく、ソフトウェア開発においても「アジャイル開発」という概念を編み出した。

アジャイル開発の源流には、日本の製造業の品質管理があると聞くが、その理由が知りたくて、今も品質管理の文献をあさっている。
個人的には、製造業の発想とソフトウェア開発の発想は全く違うと思っているので、どうしてもそれが密接に関連しているという理由が腑に落ちないからだ。
欧米人がどのように文脈を変えてきたのか、という観点で今も読んでいる。


| | コメント (3)

要因と原因の意味は違う

最近、日本の製造業の品質管理に興味を持って、色々あさっている。
「要因と原因の意味は違う」という記事が分かりやすかったのでメモ。
メモ書きなので主張なし。

【参考】
「要因と原因の意味の違い」 「要因と原因の使い分け」について:時間管理術研究所 □□ 仕事と生き方、幸せの研究所 □□

正しい「なぜなぜ分析」と、だましの「なぜなぜ」:(と「要因と原因」の違い):時間管理術研究所 □□ 仕事と生き方、幸せの研究所 □□

特性要因図 - Wikipedia

特性要因図~品質管理の知識

【1】日本の製造業の品質管理で、問題の原因分析をする時、なぜなぜ分析がよく使われる。
なぜを5回も繰り返して、問題の真因を見つけ出す。

テスト管理のコミュニティで聞いた所では、なぜなぜ分析をやるとすごく疲れるらしい。
なぜの5段階目は「油断」「不注意」など人の心理まで行き着くので、精神的にしんどいらしい。

そんな「なぜなぜ分析」では、症状→要因1→要因2→・・・のように三角形のように広がっていく。
症状→要因が一直線になることはほとんどない。

普通は、問題の症状に対し、数多くの要因が考えられるからだ。
なぜなぜ分析は、数多くの要因を網羅するようにあぶり出し、その「要因」を検証していって、真の「原因」を見つけ出すという点が重要なポイントになる。
つまり、たくさんの要因があったとしても、問題を改善・解決させる場合、とても効果が上がる原因はかなり限定されるわけだ。
問題と要因が一直線になる場合、分析の能力不足と言える。

この辺りはパレートの法則を暗示させる。

【2】このような問題分析の手法の一つとして、特性要因図が使われる。
僕のイメージでは、マインドマップみたいなものだ。

特性=問題となる事象として、問題を発生させる要因を魚の骨のようにどんどん書き出す。
それら要因の中で、問題の真因となる要因が「原因」となるわけだ。

【3】国語辞典では「要因=主要な原因」と解釈しているらしいが、製造業の品質管理では、「要因」と「原因」は上記のように明確に区別されている。
このように、日本の製造業の品質管理では、「要因」と「原因」の区別を厳しく指導されるらしい。

【4】そういう話を聞くと、日本人も品質管理という技法を知識体系として洗練させてきたのだ、と感じる。
しかし、今ではこういう製造業の品質管理の技法が普及しているとはあまり思えないのは何故だろうか?

| | コメント (0)

2016/09/25

「ソフトウェアが世界を飲み込む理由」「ソフトウエア、それが問題だ」の記事のメモ

「ソフトウェアが世界を飲み込む理由」「ソフトウエア、それが問題だ」の記事をメモ。
特に主張はなし。

【参考1】
『ソフトウェアが世界を飲み込む理由』 - 渡部薫 ジークラウド CEO - 経歴・略歴 - Kaoru Watanabe, Profile, Career

M・アンドリーセン氏が考える2012年--「ソフトウェアが世界を飲み込む」 - CNET Japan

次の5年でソフトウェアが世界を食べつくす。 | リーディング&カンパニー株式会社

(引用開始)
コンピュータ革命から60年、マイクロプロセッサーの発明から40年、そして近代インターネットが興隆してから20年、ソフトウェアによって産業を変革するのに必要な技術の全てが、ようやく実用化され、世界規模で広く提供されるようになった。
(中略)

私の意見では、医療と教育が、次にソフトウェアをベースとした根本的な変革が起きる分野である。
私のベンチャー・キャピタル会社は、これら両方の巨大で重要な産業において、積極的なスタートアップ企業を支援している。
私たちは、これら両産業は、歴史的に見て起業家精神に基づいた変化に対しては非常に抵抗を示してきたが、現在、新しい、ソフトウェアを中心に据えた偉大な起業家達によって、臨界点に達する時期にきていると信じている。

(中略)
あらゆる産業において各社は、ソフトウェア革命がやってきていることを想定する必要がある。
これには、今現在ソフトウェア・ベースである産業も含まれる。Oracle社やMicrosoft社など、既存のソフトウェア大企業ですら、Salesforce.comやAndroid(特にGoogle社が大規模ハンドセット製造会社を保有している世界では)といった新しいソフトウェアの出現によって、自社製品が陳腐化してしまうという危機にますます脅かされている。
(引用終了)

池田信夫 blog : ソフトウェアが世界を食う

(引用開始)
第二は、労働や教育が大きく変わることだ。
これから先進国では、コーディングができるかできないかで収入は桁違いに変わる。
ソフトウェアの使えない労働者は、新興国の単純労働者と競争するしかない。
教育も、つまらない教養科目を教えるより、早い時期からプログラミングを教えたほうがいい。

最後に、ソフトウェアの価値を実現する必要がある。
すでにグーグルやフェイスブックは収益を実現したが、他のソフトウェア企業が資本主義の世界で既存の企業をしのぐ存在になるかどうかは今後の問題だ。
そういうビジネスモデルを開発した者が次の時代の勝者になるだろう。
(引用終了)

【参考2】
ソフトウエア、それが問題だ Software Matters - 日本のリーダーはソフトウエアの本質を理解していない:ITpro

ソフトウエア、それが問題だ Software Matters - (2/4)日本のリーダーはソフトウエアの本質を理解していない:ITpro

ソフトウエア、それが問題だ Software Matters - (3/4)日本のリーダーはソフトウエアの本質を理解していない:ITpro

ソフトウエア、それが問題だ Software Matters - (4/4)日本のリーダーはソフトウエアの本質を理解していない:ITpro

(引用開始)
ソフトウエアは物事を変換しうる本質を持つ。
日本のビジネスリーダーはこのことへの理解が遅れていた。
日本の製造業は過去、ソフトウエアの役割を最小化する“ものづくりイデオロギー”によって成功したが、そのことによってソフトウエアをハードウエアのためのものとみなしてしまい、ソフトウエアが新機能、付加価値そして差異化の牽引役であることになかなか気付かない。
(引用終了)

| | コメント (0)

組織論の背後には経済学の概念があるという仮説

組織論の背後には経済学の概念があるという仮説について、ラフなメモ書き。
自分が理解したことを適当に書いただけ。
間違っていたら後で直す。

【0】組織の構造や成長の方向性は、人々の恣意的な意思決定よりも、資源の制約や外聞環境の制約という要因の方が大きいのではないか。
市場経済を前提とする限り、企業は営利組織として売上と利益を確保できなければ、生存理由がない。

ミクロ経済学の根本思想は「市場経済の原理を徹底すれば、世の中の取引や資源は最適化される。無駄がない」という発想。
この発想を組織論に当てはめた場合、どれくらい、組織構造や組織の成長モデルを説明できるか?

【1】チャンドラーモデル、組織は戦略に従う

すぐ分かる経営戦略論: チャンドラーモデル

組織は戦略に従う。そして、戦略は組織に従う。

【経営力強化】組織は戦略に従うのか?|コラム|株式会社 ブレインパートナー

(引用開始)
チャンドラーは企業成長を4つの階層に分類した。
チャンドラーは4段階を経て多角化した製品―市場分野ごとに事業部を作り、事業部制組織が登場した。
これら4段階をチャンドラーモデルという。

1段階:垂直統合戦略を行い、経営資源を蓄積する段階である
    急速に増加した需要を満たすために行う

2段階:経営資源を能率的かつ有効に活用するための組織を作る段階
    各諸資源を「組織」として有効に活用する

3段階:多角化戦略を行う新たな成長段階
    成熟による発展の限界から経営資源を有益に転用する

4段階:経営資源の運用の合理化とさらなる成長のために組織を革新していく段階
(引用終了)

普通の企業は事業部制モデル。
でも、事業部制組織の中身を見ると、機能別組織で、工程別・作業別に課が分かれている場合が多い。

たとえば、大企業になるほど、たくさんの機能別組織が作られていて、組織がサイロ化され、局所最適化されて、全体最適になっていない。

一方、ベンチャー企業や中小企業は、小さな有機的チームから始まる。
しかし、じきに経営資源を効率的に配分するために、管理的な組織構造が必要になってくる。
さらに発展すれば、事業が増えるので、多角化戦略を取り、事業別組織が形成される。

おそらく、チャンドラーモデルのような組織の成長モデルは、経営資源の制約と効率的な配分の考えで発生するのだろうと思う。
ミクロ経済学のパレート最適などが使えないか。

【2】資源依存モデル

資源依存論

資源依存型経営戦略理論 Resource Based Theory || INVENIO LEADERSHIP INSIGHT

組織に不足している資源を獲得するため組織間関係が形成される。

資源依存そのものから回避⇒「代替的取引関係の開発」「多角化」
資源依存関係を認めつつ他組織からの影響を小さくする⇒「交渉」「包摂」「結託」「所有」

たとえば、「他の組織と「結託」し対抗⇒業界標準やカルテル⇒独占経済⇒独占禁止法」につながる。
そもそも、独占禁止法という法律は、ミクロ経済学の市場独占・寡占の理論を理由として成り立っている。

【3】取引コストモデル、機会主義的行動

取引費用とロナルド・コース

取引コスト理論(1) - toraponの部屋

取引コスト理論(2) - toraponの部屋

内外作問題 - toraponの部屋

取引が市場で行われた時(外注)よりも組織で行われた時(内作)の方が取引コストが少ない場合に組織間関係が形成される。
大企業は、自社内の作業をビジネス化して、子会社としてたくさん作り、垂直的なビジネスモデルを形成しやすい。
連結決算を考えると、自社内で経営資源を広く持った方が売上高を大きく見せやすいはず。

一方、中小企業は経営資源が少ないので、全ての作業や工程を自社で持つのはコスト高なので、アウトソーシングする。
いわゆる内外作問題に通じる。

取引コストモデルでよく出るのは、ミクロ経済学の「コースの定理」。
コースの定理は「取引費用がないと仮定した時、権利の配分がどうあろうと、それはパレート最適な資源配分に影響しない」。
取引費用がゼロの場合には、所有権を法がどのように割り振ろうとも、私的交渉を通じて効率的な利用が達成される。
つまり、取引には取引費用なるコストが必要であり、そのために取引費用を節約する方向で組織が編成される。

すなわち、取引はできるだけ市場経済の環境で行えば、自然に最適化されるはずという理論。
しかし、実際は、公害のような外部不経済では通用しない。

機会主義的行動とは、一定の原理や原則よりも変化する状況に応じて行動すること。
取引コストに関する「情報の非対称性」が原因で、機会主義的行動を冗長する。
たとえば、20代のスキルのある会社員はお金などを動機として転職しやすいが、40代のスキルのない会社員は会社にとってコスト高なののに、会社にしがみつくしかない。

「情報の非対称性」はミクロ経済学の「レモン市場」などにある。

情報の非対称性として、逆選択、モラルハザードがある。
たとえば、プリンシパル・エージェンシー理論は「情報の格差や利害の不一致が存在するプリンシパル(依頼人)とエージェント(代理人)との関係」。
プリンシパル・エージェンシー理論は、株主と経営者の関係でよく使われる。

【4】組織エコロジー理論(個体群生態学モデル)

個体群生態学モデル - 企業経営理論の問題 | パワーアシストロボット、医療機器のLAP 平野 淳 のブログ - 楽天ブログ

移動障壁と戦略グループとは?|E.M.ポーターの競争戦略論 | FOOLINE

ダーウィンの自然淘汰説のアナロジーの組織論。
前提として、「組織慣性がある」「環境による影響が大きい」という仮定がある。
結論は、「新」形態の組織が環境選択で残る。

例えば、ある成功した企業の組織形態を、他の多くの企業が正当性を獲得するために模倣することを通じて、組織個体群に含まれる企業の組織形態は類似する傾向がある。
つまり、ポーターの「戦略グループ」につながる。

戦略グループの形成の流れは、「成功 ⇒ 模倣 ⇒ 業界内の組織形態が類似する ⇒ 戦略グループの形成」みたいな感じ。
たとえば、清涼飲料水、ビール、お菓子、携帯電話、スマホなどの業界。

すると、ある製品分野の生産のために垂直統合を強めると、企業の生産体制や製品ラインは似通ってくる為、戦略グループが生まれやすくなる。
戦略グループに分化された業界では、参入障壁、撤退障壁よりも、移動障壁が高くなりがち。

この考えは、ミクロ経済学の「完全市場の長期均衡」で説明できるはず。

【5】ガルブレイスの情報処理モデル(情報プロセシング・モデル)

ガルブレイスモデル: DCT LIVe

組織は、不確実性(Uncertainty)を情報処理して減らす活動を行う機構であり、必要な情報の創造及び獲得活動である。
不確実性とは、ある問題を解決するために必要な情報量と組織が保有している情報量の差である。
組織の情報処理能力は、組織および経営の中核的能力である。
結果として、組織設計の戦略は情報処理能力の強化を目的にしなければならない。

つまり、組織とは、情報処理機構ないし情報処理モデルとみなせる。

たとえば、不安定な環境下では不確実性が高いために、「専門職的な有機的管理システム」により情報処理する能力を増幅することが有効である。
一方、安定した環境下では「官僚制的な機械的管理システム」が有効である。

情報処理モデルでは、「情報処理量の削減 ⇒ スラック資源の捻出、自己充足タスクの形成」「情報処理能力の拡大 ⇒ 垂直的情報システムの強化、水平的関係の形成」の二つの対策の傾向がよく見られる。

つまり、不確実性に対処できた組織のみが、利益を取れる。
また、情報の不確実性は時間とともに解決する場合が多いので、情報処理のスピードも重要。

【6】野中の自己組織化モデル

組織研究に自己生産理論を導入する目的|わかりやすい自己生産

「組織は、多様性を削減して均衡を達成するというよりも、むしろ主体的に多様性を増幅させ、既存の思考・行動様式を破壊し、新たな思考・行動様式を創造することによって進化する」。
SECIモデルとか。

【7】組織ライフサイクルモデル

チームビルディングに組織のライフサイクル理論を使う|プロジェクトマネジメント実践

すぐ分かる経営戦略論: 組織ライフサイクルモデル

組織のライフサイクルモデル①: 人事労務アドバイザー!

(引用開始)
組織の成長には、以下の4つの段階があるという理論です。

①起業家段階
②共同体段階
③公式化段階
④精巧化段階

有期的とは言え、プロジェクトチームも組織のひとつですから、この4つの段階に準じて成長します。
(引用終了)

組織ライフサイクルモデルは、チームのライフサイクルモデルにも似ている。

他に、グレイナーの企業成長モデルもある。
グレイナーの企業成長モデルは、ベンチャー企業の成長の過程にそっくりそのまま使えると思う。

組織成長モデル「グライナー・モデル」のメモ: プログラマの思索

グレイナーの企業成長モデル - すべてが学びと思えたら

組織の成長過程は、組織内の資源の制約、外部環境からの制約によって、方向性が限定される。
その背後には、ミクロ経済学の諸理論で説明できるはずと思う。

【9】上記の経営理論と経済学の理論と比較検討してみると、巷で言われている経営戦略論とか、組織論の話の正当性は経済学の理論を使って説明しているのではないか、と想像する。
そうでなければ、経営戦略や組織論という理論の再現性がないから。

実際、ポーターの競争戦略や戦略グループ、コトラーの競争地位戦略のような経営戦略論は、ミクロ経済学の理論で説明できるはずと思う。
また、取引コストモデルは、情報の非対称性やコースの定理などの経済学の理論を背景として持っている。
たぶん、マーケティング理論も同様のはず。

ポーターの競争戦略理論<経営と情報(経営情報システム)<Web教材<木暮仁

競争地位戦略 - マーケティングWiki ~マーケティング用語集~

したがって、経済学の理論を背景に持つ経営戦略論や組織論は、反論に強く、理論的に頑健なのだろうと推測する。
つまり、学者の思いつきのような、一過性の説明ではなく、たくさんの具体例や堅固な理論を元に作られた経営戦略論なわけだ。

一方、経済学の理論を一通り知っておけば、ネット上に流れる経営戦略論や組織論がエセ的な話なのか、正当性のある話なのか、という見極めができるはずだ。

| | コメント (0)

2016/09/21

ドメイン駆動設計の方程式はOO+XP=DDD

増田さんの資料に「OO+XP=DDD」と書かれていて、ああこれだ、と思ったのでメモ。
ドメイン駆動設計に関する素晴らしい資料だと思う。
以下はラフなメモ書き。
特に主張はなし。

「人間の知りたいこと/やりたいことを定義する。内部の実装(データ型と処理手続き)は見せない」
「業務の関心事を抽象データ型として表現する」
「変数名ではなく、「型(クラスとインタフェース)」と「メソッド名」で 意図を表現することを習慣にする」
などの文章がすごく心の琴線に触れた。

業務システムの設計では、まさにユーザの業務、たとえば、発注・販売・請求・入金などの業務のモデリングでも使える。

丁度、法務について勉強していると、法律の内容がすごく分かりにくく感じていて、フラストレーションが溜まっていた。
しかし、上記の資料を読んで、法律の内容はまさにドメインモデル、概念モデルに相当するな、と気づいた。

「AさんがBさんと結んだ金銭貸借消費契約を破って、お金を返さない」「Aさんが、Bさんの財産を勝手に盗んだという不法行為を行った」「AさんがBさんに土地を売ったのに、Cさんにも二重譲渡した。」などの要件事実に対し、法律の要件を当てはめて、誰が権利を主張できるのか、誰の権利を侵害したのか、を導き出す。
その時に、法律の内容は概念モデルであり、クラス、メタモデル。
それぞれの要件事実はインスタンス、オブジェクト図。
話しているレベルが違う。

更に、その内容はできるだけ、人が分かるようなドメインで表現した方が分かりやすい。

但し、ITエンジニアが概念モデルを描こうとすると、どうしてもプログラムぽく、内部の実装処理をイメージしてしまうため、メタモデルにしにくい時が発生するのは注意。

| | コメント (0)

より以前の記事一覧