hidekatsu-izuno 日々の記録

プログラミング、経済政策など伊津野英克が興味あることについて適当に語ります(旧サイト:A.R.N [日記])

「否定と肯定」と「正義と公正」と「PEZY Computingの社長逮捕」と

歴史学者ホロコースト否定論者の裁判を描いた「否定と肯定」を見てきた(なお、映画の内容に触れるためネタバレ注意)。

映画としては説明不足や淡白な演出もあり名作と言えるような出来にはなっていないのが残念だけれど、内容としては非常に面白い作品だった。見る前は、否定論者の陰謀論やデマを歴史学者が苦労しながら反証していく、という話なのだろうと思っていたらこれがまったく違う。

どうも、ホロコースト自体は多くの証拠があるものの、ドイツ軍が国民に隠して秘密裏に実施した上、敗戦時に証拠隠滅を図ったことで、ヒトラーの命令書など直接的な証拠があまり残っていないようなのだ。もちろん、だからと言ってホロコーストが捏造などということはない。生き残った人もいれば、虐殺に協力させられた人々の証言や文書、施設の残骸も残っており、多面的に見れば、歴史的な事実であることは疑いようがない。

だから、裁判の争点は「ホロコーストを否定する言説も成立しえるか」という点に絞られてくる。ホロコースト否定論者のアービングは「ヒトラーの命令書が存在しない」など否定する余地があると主張する一方、歴史学者デボラの弁護チームはアービングホロコーストの存在をわかっていて主義主張から意図的に証拠を捻じ曲げていると主張することで応戦する。

この映画の面白いところは、これで終わらないところにある。最後半になって裁判官が「否定論者が純粋に自説を信じているのならそれは嘘とはいえないのではないか」と言い出すのだ。正直、演出が下手で単にものわかりの悪い人のように見えてしまうのが残念なのだけれど、裁判官の心中を察するに「アービングの主張がデマなのはわかっている、しかしアービングの立場に立って公正に考えるなら、必ずしも悪とは言えないのではなかろうか」と考えた上で、弁護チームにそれに対する反論を用意しているかを確認したと捉えるべきだろう。

たしかに言われてみれば、それもひとつの立場だ。「言論の自由原理主義」に立てばどのようなデマも暴言も「そう思った」という事実を発露したに過ぎない。しかしながら、もしそれを認めてしまえば、真実とデマを両論併記する口実を与え、結果的に「ホロコーストはあったかもしれないしなかったかもしれない」という空気を作り出してしまう。そして、ネオナチを増長させ別の大きな出来事に繋がってしまうかもしれない。公正であることは必ずしも正義とは言えない。

ここで「OJシンプソン事件」の裁判を思い出した。この裁判ではOJシンプソンが妻を殺害したのはあきらかであったものの、OJシンプソンを有罪にすると黒人コミニティによる暴動が発生する可能性が高い状況にもあった(3年前に無抵抗の黒人を白人警官が暴行した事件があり、無罪になったことで暴動が起こった)。刑事裁判では、優秀な弁護チームのおかげでOJシンプソンは無罪を勝ち取ったものの、民事裁判では決定的な証拠が発見され有罪となっている。

弁護チームは脇に置くとして、損得だけで考えよう。公正に考えるなら、OJシンプソンは有罪にするのが当然だ。しかし、それによって暴動が発生し街にひどい被害が発生しまったく関係ない人々が苦しむことを考えれば無罪にすべきかもしれない。簡単にどちらが正しいとは結論が出せない。

さて、「PEZY Computingの社長逮捕」である。

もちろん真相は藪の中だということは前提だけれど、「特捜が調べているのだからよほどひどいことをしているのだろう」と考える人が多数おり、「犯罪は犯罪なのだから、天才だから助けろなんて問題外」などの主張をよく見かけるで、そういう捉え方は大変まずい、ということを記しておきたい。

まず、特捜が特殊な役割であることを認識すべきであると思う。

「違法は違法」なのであれば、普通に警察が捕まえればよいだけで、特捜が手がける必要はない。特捜が手がけるのは、政治的に壁があったり、専門的であったり、特別なものだけだ。

しかしながら、このことが「特別なもの」⇒「特別な成果を上げる」⇒「社会的に目立つ人物、団体をターゲットにする」というロジックに繋がり、本末転倒な事件化に繋がることがある。

一番有名なのは「障碍者郵便制度悪用事件」の村木厚子さんの冤罪だが、罪に対して罰が重すぎる堀江貴文氏の「ライブドア事件」、結局たいした罪を見つけられず無罪になった小沢一郎氏の「陸山会事件」、政権にもまったく繋がらなかった「森友学園事件」、罪のない安部英氏を主犯であるかのようにでっち上げた「薬害エイズ事件」、なぜ検察が扱う必要があるのかわからない「野村沙知代脱税事件」など、問題のある事件化も非常に多い。

しかも、特捜としても事件化を正当化する必要があるため罪を大げさに表現しマスコミにリークしたり、プレッシャーをかけるため親族や知人も取り調べ対象とすることがあり、最終的に問題がないとわかった場合でも名誉が回復されないのが実情のようだ。相手が国の捜査機関だけに民事裁判で賠償請求するのも難しく、関係者はただ人生を破壊されただけで終わってしまう。

「犯罪は犯罪」と言う人は Winny 事件や微罪逮捕を調べるべきだと思う。日本の捜査機関には大きな裁量権が与えられている。正しく運用されれば犯罪を早急に解決することに繋がるけれども、不適切に利用されれば 21 世紀とは思えない人権侵害になってしまう。

普段であれば見過ごされているような細かい不法行為でも、ひとたび捜査機関のターゲットになればすべてが黒になってしまうというのはとても怖いことだ。例えば、Twitter で見かけた話では NEDOの資金で買ったコピー機で講義資料を印刷すると規定外支出に問われるそうだ。犯罪は犯罪というなら詐欺罪で起訴されるべきということになる。

「公正」であることは、必ずしも「正義」ではない。文脈を無視した「公正」は、悪にもなりかねない。

現時点では、なぜ逮捕されたのかよくわからないところはあるけれども、噂されているように政治がらみのタレコミに繋がりそうだから「スパコンに使うメモリ開発資金をスパコンに流用して詐欺」ということにして事件化したのだとしたら、本当に何をやっているんだ、という話だ。

過去にライブドアに対し劇的に捜査に入り新興市場を壊滅させた実績があるだけに、技術とか経済に対する事の軽重がわかっていないのかもしれない。目立つ成果が挙げられるなら、事件の軽重は問わないという姿勢なのであれば、今後も同様のことが続くことになる。

結果はどうあれ、今回の事件で、多くのベンチャーが国から助成を受けることに消極的になるだろう。ただでさえ、日本発のイノベーションが目立たなくなっている状況なのに、わざわざ自滅の道を選ばなくともいいものを。

安部英医師「薬害エイズ」事件の真実

安部英医師「薬害エイズ」事件の真実

追記:そういえば、この「否定と肯定」、ぜひ慰安婦問題をネタに日本で翻案映画作って欲しい。慰安婦問題については各歴史学会から『「慰安婦」問題に関する日本の歴史学会・歴史教育者団体の声明 - 東京歴史科学研究会』という声明が出されており、うってつけだと思う。

確率統計の勉強用資料を公開してみた

確率統計なんて趣味の範疇ならともかく仕事じゃ絶対に使わないよなぁ、とは思っていたのだけど、ここ最近の機械学習の隆盛で必ずしもそうとも言い切れない状況にある。

機械学習と言えばディープラーニングだけれど、画像、映像系ならともかく、テキストデータ中心の業務系の問題への適用を考えるとロジスティック回帰、SVM、ランダムフォレスト、自然言語処理くらいは押さえておかないとダメかな、という感じもあり、そうすると確率統計の基礎も押さえていかざるをえない。

うーん、システム開発の現場にそのレベルの知識、経験って現実的に適用可能なのだろうか。業務システム開発の世界は、基本的に努力と根性の世界であってアカデミックな知識からは最も遠い場所にある。

まぁ、とはいえ、日本のコの業界も少しづつ変わっていけばいいな、と思っているのでその一助になればと。社内勉強会の資料にもそのうち流用する予定。

正直なところ、私のこの分野に関する知識レベルは高くないし、確率統計界隈はマサカリ飛び交うマッドマックス的世界なので、公開するか自体を迷いはしたのだけど、おかしなところを指摘してもらえればきっと理解も深まるだろうと考えることにした。何かあればコメントいただければ幸いである。

工数見積りの海を彷徨う・征服

過去、何度かIPAの資料に基づき工数見積りを計算するためのエントリを書いた。今回のエントリは、その暫定解決編という位置づけとなる。

hidekatsu-izuno.hatenablog.com

hidekatsu-izuno.hatenablog.com

hidekatsu-izuno.hatenablog.com

前回までは、ロバスト回帰を使って分析していたのだが、実際に使ってみると単一基準ではリスクがどれくらいあるのかわかりにくく、やや使いづらいところがあった。

先日、いつものようにネットサーフィンをしていたところ「分位点回帰」という手法があるのを見つけた。分位点と言えば、1/4(第一四分位数)、1/2(=中央値)、3/4(第三四分位数)など、サンプルを相対的な位置関係を元に判断する手法であり、ロバスト回帰同様、偏りのあるデータに対しても頑健に動作することが期待できる。

さらに、ロバスト回帰に比べ、実際のプロジェクトがどれくらい収まっているのか範囲が明確になるため、リスクの範囲も想像しやすいというメリットがある。

なお、今回は R ではなく Python を使っている(前回記事参照)。ロバスト回帰のペナルティ関数が異なるため、データは同じでも多少数値に差が出ていることをお断りしておく(イマイチどの手法が良いのかはよくわかっていない)。

結果は次のグラフを見ていただくのがわかりやすい。

f:id:hidekatsu-izuno:20170723175138p:plain

X軸が機能数(1.5✕画面数+1.0✕帳票数+0.7✕バッチ数)、Y軸が人時工数となる。散布図が原データ、各直線は OLS が単回帰、RMG がロバスト回帰、QR が各パーセンタイルでの分位点回帰の結果を表している。

一見してわかるように、ロバスト回帰と50パーセンタイルでの分位点回帰の結果はほぼ同じ結果を導き出している。そういう意味で、前回までの方法論もさほどおかしくな数字ではないという確信が得られたのはありがたい。

ロバスト回帰と分位点回帰(50%)での工数算出式は次の通り。

ロバスト回帰:工数[開発5工程/人時]=142.05×画面数+94.70×帳票数+66.29×バッチ数

分位点回帰(50%):工数[開発5工程/人時]=136.36×画面数+90.91×帳票数+63.64×バッチ数

Python での統計処理メモ

たまに時間があると統計を身に着けようと試みているのだけど、データサイエンティストというわけでは当然ないので、すぐにやり方を忘れてしまう。というわけで今日のエントリは完全にメモ書きです。はい。

環境

Python は Anaconda を使ってインストールするのが一番簡単なようだ。

実行は Anaconda をインストールするといっしょに入る Jupyter Notebook という REPL ツールを使うのが一般的な模様。たしかにグラフがその場で表示できるのは便利。

  • 実行は「Shift+Enter」
  • ヘルプは「h」
  • 行挿入は「a」、行削除は「dd」。ちょっと vi っぽい。

データ操作

データ操作は pandas を使うのが一般的らしい。numpy は直接使わず、pandas 経由で使うのが今風なようだ。使ってみるとたしかに便利。ライブラリで SQL 的な操作ができる。

データの読み込み

# インポート
import pandas as pd

# TSV の読み込み(1行目は列名)
data = pd.read_table("パス")

# CSV の読み込み(1行目は列名)
data = pd.read_csv("パス")

# NaN (= Not a Number) を 0 に置換
data2 = data.fillna(value = 0)

# 列の選択 (SQL で言えば SELECT)
data3 = data["列1"]
data3 = data[["列1", "列2"]]

# 行の選択
data4 = data.iloc[3]

# 抽出(SQL で言えば WHERE)
data5 = data[data["列1"] > 0]

# ソート (SQL で言えば ORDER BY)
data6 = data.sort_values(by=["列1", "列2"])

統計処理

統計処理はいくつか方法があるけど、R 相当のことをやりたい場合は、statsmodels を使うのが良いようだ。statsmodels には python っぽい通常の API と R っぽい formula API の2種類があるが、今のところ、通常の API を使ってみている。

# インポート
import statsmodels.api as sm

# 単回帰
result = sm.OLS(data["従属変数列"], data["説明変数列"]).fit()

# 重回帰
result = sm.OLS(data["従属変数列"], data[["説明変数列1", "説明変数列2"]]).fit()

# ロバスト回帰
result = sm.RLM(data["従属変数列"], data["説明変数列"]).fit()

# 分位点回帰
import statsmodels.regression.quantile_regression as smqr
result = smqr.QuantReg(data["従属変数列"], data["説明変数列"]).fit(q=0.5)

# 統計サマリー情報の表示
result.summary()

# 説明変数に対する予測値
result.fittedvalues

グラフの表示

最近のブログを読むと seaborn というライブラリを使うのが流行りみたいなのだけれど、自動で統計処理までやってくれる系のライブラリらしく、自前で計算した数値列をグラフ表示したい場合は従来通り matplotlib を使うのが良いようだ。

# インポート
import matplotlib.pyplot as plt

# グラフを描画
plt.plot(data["説明変数列"], result.fittedvalues)

# 散布図を描画(o で丸記号を表示と言う意味になるらしい)
plt.plot(data["説明変数列"], data["従属変数列"], "o")

# グラフを表示
plt.show()

# グラフのクリア
plt.clf()

調べたところ、pandas にも plot 機能があるようだ。単なるラッパーのようではあるけど、こちらを使ったほうが便利かもしれない。

gdata = pd.DataFrame({"x": data["説明変数列"], "y":data["従属変数列"], "p": result.fittedvalues })

# scatter で散布図を描画
ax = gdata.plot.scatter(x = 'x', y = 'y')

# ax でグラフを重ねることができる
gdata.plot.line(x = 'x', y = 'p', ax = ax)

モチベーションを上げるために本当に必要だったこと

今日紹介するのは、「マネジャーの最も大切な仕事――95%の人が見過ごす「小さな進捗」の力」という本だ。普通、ブログで本を紹介する場合、素晴らしいのでみんな読んでほしいという思いで書かれるものだが、残念ながらこの本は400ページ近くある大著にも関わらず、数ページくらいしか有意義なことが書かれていないので購入はまったくおすすめできない。

マネジャーの最も大切な仕事――95%の人が見過ごす「小さな進捗」の力

マネジャーの最も大切な仕事――95%の人が見過ごす「小さな進捗」の力

 

一番の問題は、当たり前のことが延々と書かれているところだ。当たり前のことは、誰もがわかっていながら実践するのが難しいから皆困っているのであって、気付いたくらいで問題が解決するわけがない。そんなに簡単に意識改革できるのなら、自己啓発本の何冊か読むだけで解決するだろう。

とはいえ、ありとあらゆるページが無内容というわけではない(だからこそ、こうしてブログにエントリを書いているわけだ)。

この本の主張は、多くの上司は、部下のモチベーションを上げるには、給料を上げたり、褒めたり、評価したり、といったことが重要であると思い込んでいるがそれは違う、という点にある。昇給や昇進ではあまりモチベーションが上がらないことについては類書でも多く言及されており、実のところあまり目新しさはないのだが、褒めたり評価することすらも最も重要というわけではない、というのは確かに発見だとは思う。

さて、著者らが発見した「モチベーションを上げるために本当に必要だったこと」とは何だったのだろうか。それは「進捗する」ことだ。ようはタスクをこなして進めていくということそのものがモチベーションをもたらしているようなのだ。

著者らの気付きは日報分析から得られたものだが、その応用として RPG などでよく見かける「おつかい」システムが取り挙げられている。一時期、「おつかい」はその単純さ故に批判にさらされてきたが、今に至るまで「おつかい」要素はイベント駆動ゲームの根幹を成すものであるし、カード収集なども「おつかい」の一種とみなせるかもしれない。たしかに人々は実際に何の利益もないムダな時間をおつかいゲームに喜々として注ぎ込んでいるようである。

しばらく前から「ゲーミング」という仕事にゲーム性を持ち込むことで、楽しく仕事を進めようという考えが出てきているが、「おつかい」の重要性はそれよりも本質的なことのように思える。

例えば、TODOリストは仕事をする上で非常に効果的とされている。しかし多くの場合、その理由としては、作業が整理できる、重要性の低いタスクを頭から追い出すで精神的負荷を下げるといった効果が強調される。しかし、進捗が明示化されることで達成感をもたらすというモチベーション面での効果が一番重要だった、ということも考えられる。この本の主張は小さな気付きではあるが、とても重要なヒントが含まれているのかもしれない。

「会社を立て直す仕事」に見るV字回復の秘密

一介のサラリーマンにとって「経営」というのは神秘に満ちたキーワードだ。なんといっても、どうすればうまくいくのかまったくわからない。優れた経営者の多くは、しばしば神格化され、彼らのどういう資質が会社の成功をもたらしたのかは才能というベールの向こう側にある。

以前紹介した「なぜビジネス書は間違うのか」によれば、多くのビジネス書に書かれる経営者の資質というものはハロー(後光)効果によりかさ上げされ、実際にはほとんど説明することができないようだ。

ジョブズ孫正義といった伝説的なカリスマは天才的すぎてその手法を一般化するのは難しい。それだけではなく、うまく時代に乗ったという強運によるところもある。なかなか普遍性のある教訓を見出すのは難しい。

それに対し、今回紹介する「会社を立て直す仕事」は、ビジネス自体が衰退期に差し掛かり、放っておけば遠からず潰れてしまうであろう企業の再建を果たした著者が、その手法について解説するというなかなかに稀有な本となっている。

 著者は、MSXや月刊ASCIIなど日本のパソコン黎明期を支えた アスキー(現在は、KADOKAWAに吸収)や、繊維や化粧品で有名なカネボウ(現在は、化粧品事業を分離しトリニティ・インベストメントに事業継承)に再建のため代表取締役として投資ファンドから送り込まれた人物。

著者自身が述べるように、カリスマ経営の成功は個別要因が強すぎてなかなかに一般性を持つ方法論を見出すのは難しい。しかし、衰退しつつある企業に外様の経営者という組み合わせなら、その手法の有効性は比較的明確だろう。

本書に書かれている内容はいずれも実践的であるが、その中には理屈から考えても正しいように思われる部分も多い。 個人的にどこかで使えそうだと思った部分を抜き出したのが以下の部分だ。いずれも、再建というキーワードを超えビジネス一般に有効な考え方ではないかと思う。

再建は通常「コスト削減による収益改善」によって成される

これは考えてみれば当たり前のことだ。再建が必要な会社というのは、概ね企業内部の問題ではなく、外部のビジネス環境の変化の影響を受けうまく行かなくなった状況が多いだろう。外部すなわち売上は下がることはあっても上がることは考えにくい。コストを削減することで収益を改善する以外の選択肢はあまりない。

もちろん、新しいビジネスを創造することで生き残るという道も考えることはできる。しかし、イノベーションの常識から言って儲かるビジネスを産み出すのはそもそも難しい。それだけでなく、育つにも時間がかかる(例えば、Cookpad は上場まで12年かかっている)。衰退するまでの間に新たなビジネスの目が育っているならともかく、すでに衰退した状況から始めるのでは遅すぎる。

「コスト削減=人員削減」ではない

会社の再建というと一番最初に思いつくのは人員整理だ。しかし、著者はコスト減少のために人員整理をせず、企業体質の改善によって対応している。この本の中では述べられていないが「事実に基づいた経営」など経営学での研究によれば人員整理は会社の利益率を下げることが知られている。また、人員整理は優秀な社員の流出をもたらし、社内の志気を下げることになる。人員削減は原材料を間引きするのと同様に商品の品質を下げる行為に他ならない。再建どころか現状維持すら危うくなるかもしれない。

通常、企業は利益率が低くともビジネスを拡大し売上を増やすことは(損ではないので)良いことであると考える。しかし、ビジネスが縮小している状況ではそうではない。コスト削減したければ、単に利益率が低い仕事をやめるだけでいい。利益が増えれば、業務改善を行う人員や余裕を確保することができるし、会社の将来への不安も減り追加の融資も受けやすくなる。

再建は1~2年で達成する

1~2年という超短期で再建を達成できたからこそ大成功と考えがちだが、著者はそうではないと言う。再建は1~2年で成果を出さなければ達成できない。社員や銀行といった関係者が諦めることなく前向きに突き進むためには早期に「成功する」ということを印象づけなければならない。ビジネスの変更といった長期的な改善はたとえそれがいつの日かは利益に結びつくのだとしても、実現するところまで辿り着かない可能性の方が大きい。

前節で述べたように、利益が改善するとそれ以外の問題も解決する。成果は短期で出すことに注力する必要がある。

コスト削減はインパクトの大きいところから

小さいコストをいくら削ったところで影響は微々たるものだ。日本企業は(休憩中に電気を消すといった)小さな改善が大好きだが、著者の言うとおり会社のコスト体質をきちんと見極め一番効果が大きいところに注力するところが必要だろう。

会計制度にだって重要性の原則があるのに、細かい所にこだわりすぎるのはよいこととは言えないだろう。

見える化、情報共有に注力する

典型的な不振企業の傾向として、組織の各部門がばらばらで連携できていなかったり、問題が提起されても解決のプロセスが明確にならないことに触れられている。著者は、PDCAやガバナンス、危機感といったコンサル用語で説明しているのだが、個人的にはピンとこなかった。実際のところ、有効だったのはそれに付随する「見える化」や「情報共有」という行為そのものだったように見受けられる。

結局のところ、実際は危機的なのに危機感を持っていないのは、自分のやっているビジネスの現状について損益を正しく認識できていないからに他ならない。自分の仕事が儲かっていないということがきちんとフィードバックされれば人々は行動を変えることができる。しかも、本書の例のように末端の損益だけでなく、上から下まで全員が現状を理解すれば調整もスムーズになる。

システム開発でも、プロジェクト・マネージャーと現場の危機感に乖離が起こることはよくある。本書では中間管理職も経営会議に参加させるという方法が取られていたが、会議の様子をビデオでとって社員全体に共有するだけでもずいぶん違うのではと思う。

一方で、製品事業の収益責任を明確にすることは個人的にはあまり重要ではないのではと思う。プロジェクト運営でもそうなのだが、担当範囲を明確にすることが重要であって、責任はある意味どうでもいい。むしろ責任を持たせることで協力関係が崩れることも多々あるように思う。

説明責任の重視

これは再建そのものにどれだけ影響があったのかよくわからなかったが、説明責任を重視するというのはたしかに良い考えかもしれない。日本ではしばしば結果責任ばかりが重視されて説明責任が重視されない。著者がいうようにまかせたけれど失敗したのでクビでは誰にもメリットがない。きちんと説明し、上司に判断する材料を提供し、問題を逐次解決する方がよほど有意義だろう。

2017/7/11 追記

社内勉強会に流用するために作ったスライドを公開しました。

才能とは努力を継続できる能力のこと

ビジネス書のようなものはある意味「答えのない」内容が書かれている。とはいえ、何冊も読んでいくと、個々の本では明確になっていない事実が立体的になりあぶり出されてくるように感じる。ぼんやりとした状況を手探りで進んでいるが、その方向は皆同じといった感じに。

そうやって気付かされたことのひとつが「才能とは努力を継続できる能力」であるということだ。

昔からエジソンの「1%のひらめきと99%の努力」という言葉や「好きこそものの上手なれ」という格言があったりもしたけれど、結局のところそれが答えだったようだ。才能か、努力か、という二分法がそもそもの間違いの元のような気がする。

以下、根拠を挙げる。

前半のトピックと後半のトピックでは逆のことを言っているように思えるかもしれない。しかし、繋げて考えるとその矛盾を解消できる考え方がひとつあることに気付く。

努力をすれば誰でも能力が身につく可能性があるのに、実際には人はそうそう変われない。そしてそれは、自分の身体特性や嗜好性により、努力を傾け続けられなかったということに起因する。

もちろん、努力で苦手を克服した人の記事が目に入ることもある。しかし、それは珍しいから記事になるのだし、努力をできた時点でなんらかの嗜好性があったとも考えられる。

この結論は、人材育成というトピックに大きな疑問を投げかける。あえて教育を止める必要はないかもしれないが、教育を施すだけで人材が育っていくという発想は必ずしも適切ではないのかもしれない。会社の方向性と嗜好性があった人材を獲得したり、成果を上げられない人には嗜好性にあった仕事を割り当てる方がより現実的な対応なのかもしれない。