hidekatsu-izuno 日々の記録

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

「プロジェクト管理手法の歴史」という記事を書いた

以前、調べて書き溜めたままになっていた文章なのだけど、腐ってしまいそうだったので公開してみました。

システム開発関連のことって、理系の人も多いはずなんだけど、結構、嘘や間違った記述が多くて困ってしまう。上記の記事では、ウォーターフォールモデルの起源についてもきちんと書いたので興味ある人はぜひ(長いけど)。

「ラムズフェルドの人生訓」を読む

Twitter で話題になっていたが、たしかに非常に面白い。

著者はあのラムズフェルドである。ラムズフェルドと言えば、ブッシュ政権を陰で操ってきたと噂される人物であり、大量破壊兵器があるというデマをでっち上げ、イラク戦争を強引に推し進めた。そういう人物として知られている。

 

ラムズフェルドの人生訓

ラムズフェルドの人生訓

Amazon

 

しかし、読んでの印象はまったく違う。なんと理性的で賢く献身的な人物なのだろうか。どの文章も理路整然としており、経験と根拠に根差した説得的な話が並ぶ。

不確実性の中でリーダーはどのように振舞うべきか、マスコミとどのように付き合うべきか、官僚主義とどう戦うのか。実際に長年政権中枢で大統領を支え、その後は企業のCEOとしても活躍した人物の口から語られるのは大変面白くためになる話ばかりだ。

そして、「イラク大量破壊兵器があった」ことに誤った情報に飛びついてしまったと素直に反省の意を示し、グアンタモナ収容所での事件に対してもひどい行為で早く気付くべきだったと述べている。とうてい陰で操る人物のコメントではない。

 

喧伝される印象と人物像がここまでかけ離れた人も珍しい。しかし、ひとり似た人物が頭に浮かんだ。銀河英雄伝説のオーベルシュタインである。与えられた問題に対し極めて冷静に考え、そして達成しなければならない決めたら、私情を挟まず断固たる決意でそれを成し遂げる。その結果としてどんな批判をも受け止める。

少なくともアフガニスタン戦争の理由に関しての彼の説明には納得した。911のテロの後、この悲劇は何度も繰り返される可能性があった。テロを食い止めることは非常に難しく、対応方法としては根源であるアルカイダの殲滅しかなかった。

その結果として、多くの無関係なアフガニスタン人が被害を被ったのは事実だろう。しかし、アメリカを守る役割を担ったラムズフェルドにはそれを実行する以外の方法はなかった。

 

とはいえ、最後まで読んで、(それを目的に読んでいたわけではないけれど)ブッシュ政権がなぜイラク戦争に突入したのかはよくわからないところがある。自伝が別にあるようなのでそちらを読めばわかるのかもしれないが、もしかするとブッシュあるいは現場からの要求に従っただけでラムズフェルド自身は決定をサポートしたにすぎなかったのかもしれない。

 

本書で披露される様々な知恵はいずれも実際に役立つと思うが、個人的に気に入ったものをメモ代わりにピックアップしてみた。本を買う参考にしてほしい。

  • どこで働くかより、誰と働くかが重要である
  • リーダーシップや経営管理の秘訣は、適切な人材の登用にある
  • 戦略とは大きな目標に向けた活動の基本計画である。小さな目標を定めて優先順位を付けたり、各目標に必要な資源を集めたりするプロセスだとも表現できる。
  • 目的地が不明なら、どの道でもたどり着ける(ルイス・キャロル
  • 論理が完璧でも、前提が間違っていれば、結論もまちがった不幸なものになり得る
  • (諜報の失敗)原因は、情報不足ではなく情報過多である
  • 自分なら絶対にしないことを相手が絶対にしないと絶対に思わないこと
  • 第一報はまちがっていることが多い
  • (記者から)間違った前提で質問されたら放置しない 適切に言い換えよう
  • 正しく報じてもらうために取材は録音する
  • 記者相手に「オフレコ」はあり得ない
  • 交渉で沈黙が訪れたとき、なにかを言わなければならないと焦らないこと
  • 手持ちの軍で戦うしかない。こうだったらいいなと思う軍で戦うことはできない
  • まちがっていると納得させるより正しいと納得させる方が簡単
  • 指示より問いを記す方が成果があがる
  • ホワイトハウスの望みだ」と言うな。建物が望みを抱くことはない。
  • 資本主義には恩恵が等しく分配されないという短所がある。社会主義には苦難が等しく分配されるという長所がある(ウィンストン・チャーチル
  • 自分で稼いだお金に比べると、他人が稼いだお金は気軽に使いがちだ
  • 飛んでくる批判と名声はほぼ比例する

変わるダイエットの常識

別に好きで趣味にしているわけではないのだが、ダイエットに関する研究本は継続的に買っている気がする。私の家系にはやせ型がいない。齢を重ねると痩せにくくなるのはわかってはいるが、最近は食が細くなっているにも関わらず体重は徐々に増加中だ。

 

今回読んだのは「運動しても痩せないのはなぜか:代謝の最新科学が示す「それでも運動すべき理由」」という本だ。

 

タイトルだけ見ると、ありきたりなダイエット本に見えるが、中身は想像以上に難しい。まず冒頭からタンザニアの原住民ハッザ族のフィールド調査の話で始まる。普通この手の話は他者の研究が引用されることが多いのだが、この本の場合、実体験である。著者は、フィールド調査を通じて自然の中で暮らす人々と都会で暮らす人々のカロリー消費について調べる研究者なのだ。生理学についての詳細な説明も多く、化学系の話題に大変疎い私にとって読むのがつらくなる章も多々あった。

 

一方で細かい議論を除くと、同書が語る内容はそう多くはない。

  • 体重は、カロリー消費量>カロリー摂取量で決まる。
    • 何を食べるかは重要ではない(低炭水化物ダイエットでも低糖質ダイエットでも結果は変わらない)
    • カロリー消費量は体重と体質で決まる
  • 運動で使われるエネルギーは体内で調整されるためカロリー消費にはほとんど影響しない。
  • ただし、運動は健康維持と体重維持には重要。
    • 運動しないことは重大なリスクをもたらす。運動時間は多いほどよいが、1日30分ほどでも良く強度は重要ではない(強度が高いと時短できるが、時間さえかければ散歩で良い)。
    • 減量すると体重が減りカロリー消費量が減るが、カロリー摂取量はそれほど変わらないため、徐々に体重が元に戻る。運動をするとカロリー摂取量と消費量の差が運動により消費されるため、体重を維持できる。

この本では内臓脂肪については述べられていなかったが、最近の研究では次のような結果も出ているようだ。基本的には内臓脂肪減らしたければ運動をした方がよいようだ。

 

しかし結局のところ、ダイエットしたければ食べる量減らして運動しろ、という昔ながらのアドバイスが有効というのが悲しいところ。もっと楽に痩せられる方法はないものか。

 

[追記] 寝ないと痩せないという論文もあるようだ。たしかに疲れて帰ると甘いものを食べたくなるのは世の常ではある。

 

My 正議論

意見というのは十人十色、様々な主張はあってしかるべきとは思う。

 

思うものの、事件の犯人に対する擁護は被害者に対する攻撃や抑圧として機能することも忘れるべきではないと思う。「ロシアが戦争を仕掛けたのはウクライナの挑発があった」、「性被害の告発が、ジャニーズ所属タレントの未来を奪った」、そういう逆張りの主張をする著名人は多い。もし、あなたがウクライナ人や性被害の当事者だったらどう感じるだろうか。一方的に被害を受けたにも関わらず、なぜさらに非難されなければならないのか。まるで「いじめの原因はいじめられる側にある」かのような論理だ。

 

法学では「もし原因がなかったならば結果も起こらなかった」という因果関係が重視されるそうだ。そういう観点で見れば、たとえウクライナがロシアを挑発しようがしまいが、戦争と言う行動を起こしたのは間違いなくロシアである。同様に、たとえタレント側が枕営業を意図したとしても、大人であり権力者であるジャニー喜多川が断れれば性加害は起こらない。性加害を行わなければ、性被害の告発もなく、ジャニーズタレントが活躍の場を奪われることもなかった。どちらが悪いのかは明らかだ。どんなに理屈を積み重ねようとそれは変わらない。

 

さて、次のような見解についてはどう考えればよいだろうか。

統一教会へのバッシングは山上徹也の安倍元首相殺害テロを容認しているのではないか

私はこのように考えるべきだと思う。

  • 安倍元首相の殺害の責任は山上徹也容疑者にある。彼はその責任を負い刑罰を受けなければならない
  • 安倍元首相は、過去に問題を起こした教団の広告塔として行動したことの責任を問われるべきであるが、それはテロによって殺害されてよい理由にはならない
  • テロ事件がきっかけとなっただけで、バッシングは教団が行った霊感商法などの行為への批判でありテロの容認とは関係ない

いずれも当たり前のことではないだろうか。意思に基づき犯罪を実行に移した者が悪いのであり、その他のことは飾りに過ぎない。

 

このケースのように宗教や教育や思想が絡む場合、複雑な問題として扱われることが多い。しかし、そもそも事件の主犯を決めるのに宗教や学校、思想が関係するのだろうか。少なくとも現代においては、教義や思想に従っていれば犯罪行為をしてもよいわけはないし、教育のためなら暴行してもよいという時代ではなくなっている。宗教や教育や思想というベールを取り払って見たとき、犯罪とみなされるのであれば、その行為は罰せられるべきだろう。

過去は変えられないが、未来は変えられる

「過去は変えられないが、未来は変えられる」とか書くとちょっと啓蒙書っぽいタイトルで気恥ずかしくなる。ただ、自身の考えが昔と変わってきたので書き留めておこうと思う。

今、ちょうど話題だからジャニーズ事務所の性加害問題を例に挙げる。しばしば、このような問題に対し、過去への補償・清算に重点が置かれる。もちろん、当事者には重要な話だけど、被害があったという事実が消えてなくなるわけではないし、北公次のようにすでに亡くなっている人にできる補償などあるわけがない。過去は変えたくても変わらない。できるのはせいぜい解釈くらいか。

過去のことは、生きている当事者たちが何らかの合意に基づいて落としどころを決めるしかない。そしてそれがどのような結末を迎えようが社会にとってはあまり重要ではない。

一方で、未来は変えることができる。だから、このような問題が発覚したときに我々、同時代に生きる人間にできるのは、同じような問題が起こらないような仕組みを作ることだけだ。

 

子供のころ、各種新聞では「戦時中、新聞社は政府に加担し戦争を煽ったことを反省しな繰り返さないようにしなければならない」といった言説をよく見かけた。しかし、今回の対応を見る限り、将来マスコミは同じことを繰り返すだろう、ということが明白になった気がする。いち芸能事務所にすら対抗できない人々が、政府に対抗できるわけがないではないか。

 

誰が口だけの反省をし、誰がきちんと再発を防止するために行動しているのか、そういう観点から見るようにしたい。

人は思考の枠から外れた展開を想像できない

先日「AFURI」というラーメン屋の商標の件でひと悶着があったことは知っている人が多いと思う。

さて、この吉川醸造の主張を読んでどう思っただろうか。普通は「AFURIはひどい会社だ。許せん」と思うのではなかろうか。では、次の記事を読んでみてほしい。

私は事の真相を知らない。しかし、上記の記事を読んだらまったく別の感想を覚えるのではなかろうか。

 

吉川醸造の記事に人々が共感を寄せてしまうのは、読み手の次のような先入観があるからだろう。

  • 吉川醸造という名前から来る、古くからある小規模な個人経営の酒蔵に違いないという思い込み(実際には、2020年に不動産系などの多角経営やってるシマダグループに買収されている)
  • 「阿夫利」という名前は地名であり地域の共有財産であるべきだ、という先入観(この主張は必ずしも間違いではないが、俗称であり、そこまでメジャーな名前でもなく、AFURI がブランドを広めた側面も強い)
  • 強く憤っているということは、この人は正義に基づいて主張しているのであろうという思い込み(実際には、吉川醸造の方が理不尽な行動をしているように見える)

もちろん、商標権と言う観点からAFURIはおかしなことをしていない、という側面もあるが、ここで問題としたいのは想起される感情についてなので無視する。

 

誰が本当のことを言っているのかわからない、と言う意味では黒澤明の「羅生門」的と言えなくもないけれど*1、どちらかというと、古くからみられるどんでんがえし的な落ちだとは思う。しかも、結構などんでん返しだ。

 

昨今、映画を見ていてもどんでん返し的な落ちで失敗しているように感じることが多いが、現実のどんでん返しはとても見事だ。完全に予想を裏切られるし、その裏切り方が斜め上を行っている。事実は小説より奇なり、とはよく言ったものだ。

 

最初にこのことを認識したのは、「北海道七飯町の林道で親に置き去りにされた7歳の少年が行方不明になった事件」だった。

この事件では、親がしつけのために子供を道の途中で置き去りにした。親は数分で引き返したものの、子供の行方はしれず、その後何日も見つからなかった。

当初から実は子供はすでに親に殺されていて、親が嘘をついているのでは、という声が絶えなかった。

 

結末はご存じだろうが、行方不明になった7歳の少年はなんとサバイブし7日間も生き延びていた。まじか。

 

これも「7歳の子供はかよわく、クマもいる北海道の山中で、水も食料もなく何日も生存できるはずがない」という先入観によるものだし、親からしてもそんな場所に降ろされたのに、泣きながら立ちすくむのではなくサバイブ始めちゃうとは予想もしなかっただろう。(得てして、子供は思考の枠から外れた行動をするものだが)

 

この事件は偶然の産物だが、昨今ネット全盛の時代になって、吉川醸造同様ミスリードを誘うことで、立場を逆転させようといういかがなものかと思われる事例も散見される。

しかし、よく考えればメディアでの公表が昔より簡単になっただけで、メディアを使って悪役を仕立て上げるということは昔からしばし行われてきた。

例えば「安部英医師「薬害エイズ」事件の真実」では、「薬害エイズ事件」の主犯として取り上げられた安部英医師が避けられなかった事故に対するスケープゴートにされたことが説得的に展開される。

 

人は事件が起こると、悲しんでいる人や文句を言っている人が正しいのだろう、あるいは事件が起こっているのだから犯人はいるはずだ、という短絡的な思考に至ってしまう。そしてその思い込みを元にストーリーを勝手に作り上げてしまう。

 

今回、いろいろな事例を取り上げたが、いずれも事件を知った当初は短絡的に考えてしまったものばかりであり、そのような考えを断罪する立場にはない。しかし次のことは言えるだろう。

 

  • 人は思考の枠から外れた展開を想像できない。思い込みで即座に誰かを断罪するのは避けるべきである。
    • これは仕事でも言える。トラブルがありクレームのメールを入れたら勘違いだったということは私の経験でも(やったことも、やられたことも)多々ある。
    • 私の仕事はシステム開発であるが、プログラムの不具合が多い=プログラマの問題、と短絡的に考える人が多いような気がする。たいていの場合、それ以前のフェイズの問題が結果的にプログラムの不具合として現れてくるだけのことが多いと思う。
  • 脚本家は、人は思考の枠から外れたことを想像できない、というヒューリスティクスを使ってどんでん返しを作るべきでは。
    • すなわち、事件を起こした犯人の気持ちになって、どうやれば犯人をミスリードさせられるか、という発想で考えればうまくどんでん返しを作れるのではなかろうか。

*1:羅生門」的と言えば、Netflix のドキュメンタリー「殺人犯の視聴率」が面白い。ドキュメンタリーなのに、回を重ねるたびにどっちが本当の犯人なのか視聴者が揺さぶられ続ける。

JTC-utils という日本企業向けユーティリティライブラリを作った話

当初は2週間くらいでさくっと作る予定だったけど、気付いてみれば早3カ月。ようやく公開できる状態になりました。

ここまで時間がかかったのは、技術的課題というよりは、子育て真っ最中でプライベートな時間がほとんど取れなかったことが一番の理由です。寝る前の1時間とかその程度しか自由にならないのだから、遅々として進まない。45歳の誕生日まではと思っていたけどちょっとオーバーしてしまいました。*1

 

今回作ったのは、(私が仕事でやっているような)日本のエンタープライズ・システムでよく出てくる機能をまとめたJavaScript/Node.js向け共通ライブラリです。

エンタープライズ向けのシステムは現在でも Java で開発されることが多く、今回開発したような機能も Java であれば既存に存在したりするのですが、Node.js は比較的歴史が浅いこともあり日本特有のレガシーな機能はあまり提供されません。

例えば、和歴(Java なら JapaneseEra)、書式によるパース/フォーマット(Java なら DecimalFormat/DateFormat)、レガシーエンコーディングJava は標準でWindows-31JEUC-JP、IBM漢字のエンコード/デコードが可能)、ひらがな/カタカナ・全角/半角変換(Java なら ICU4J)など Java であればすでに決定版の解決策があります。

npm を探せば該当するライブラリもなくはないですが、Node.js の小機能主義も相まって、品質や一貫性の面で使いづらい点も少なくありません。

JTC-utils では、加えて、全銀カナ対応、一貫性のある CSV と固定長の入出力機能(固定長ではパック10進、ゾーン10進もサポート)も用意しています。

 

私も JDK 1.1 以来長いこと Java で開発をしてきましたが、クラウド化の流れを受け最近では Node.js を選ぶことが多くなってきています。

VSCode、ESLint、Jest をはじめ開発環境は整っているし、起動は速く、各種ベンチマークを見る限りパフォーマンスも Java と肩を並べるレベル、言語仕様も安定的で使いやすいレベルに充実。いずれにせよ、Web ではクライアントサイドを JavaScript で開発せざるを得ないわけだから、バックエンドも JavaScript を使った方が開発生産性は高いと考えるのは自然です。

過去においては Java の Write once, run anywhere が重要でしたが、コンテナが一般化した現代においては軽く動かせる Node.js の方がむしろ便利になってしまいました。

 

エンタープライズシステムを Node.js で作ろうと思う方は、このライブラリを使ってみていただけると幸いです。(開発苦労話はまた次回)

 

[2023/7/17] 苦労した点は Qiita の記事として公開しました。

*1:そうです、とうとう折り返しを軽く超え、45歳ですよ。