しゅみは人間の分析です

いらんことばかり考えます

我々ソフトウェアエンジニアも文章が書けると業務がスケールするのに気づいた。チームで一人だけ書けるのではダメだ。全員わかりやすい文章を書けるのが理想だ。業務上の複雑な問題を伝えるために文章を書くのだ。

 

これはコミュニケーションプロトコルの問題である。会議は同期的コミュニケーションで、チャットは非同期コミュニケーションだ。チャットは効率的だが、複雑な問題の相談になると議論が難しくなる。結論が出せても、チャットのログをあとから読むのは難しい。かといって会議や立ち話の相談にしても時間がとられてコードが書けなくなる。

 

だが、文章ならば複雑な問題も表現できる。理系研究室の発表資料や論文のテンプレートを思い出してほしい。背景、問題、解決策、結論、考察のあれ。論文は複雑な研究課題を文章で表現しているのだから、業務の問題も文章で表現できる。

 

こういった文章は書いているうちに自分で問題解決できることがよくある。問題点を文章で表現できたならば解決策もいくつか思い浮かぶものだ。問題を定義するのがもっとも難しいという箴言を思い出す。

 

もし、問題を定義できない場合はどうするとよいだろうか?背景だけ書けばよいだろう。重要なのは背景に事実を書いていくことだ。こういった困りごとが起きているが、何が問題なのかは整理しきれていない。そう素直に表現したら、その時点での問題理解が正しく伝えられる。

 

ではどうやって文章表現のスキルを身につけるのか?たぶんコードレビューと同じように文章レビューをすればいい。コードレビューの様式を真似るので、きつい言葉を使わないよう、態度にはじゅうぶん注意をする。指摘する内容は「〜の情報が漏れている」「〜は事実ではない」といった客観的に言えるものがよいだろう。微妙なのが不要な情報の指摘で、ある情報が不要だったかどうかは問題が解決されるまでわからないものだ。

 

文章レビューは誰が書いても同じ内容になるのを目標にする。Googleのコードレビュー文化と同じだ。業務は主観ではない問題を扱う。法人組織の目的はお金稼ぎである。そのための手段としてサービス・製品の開発・提供がある。と、このように客観的な目的の連関構造があるので、誰にとっても同じ表現を目指してよいはずだ。

 

欧米エリート層はライティングの訓練を受けている。おそらく国によっては当たり前のスキルなのだろう。だからAmazonでもやっているわけだ。

blog.riywo.com

 

まとめる。目的は複雑な問題を非同期に伝えること。そのための手段が文章表現である。業務の問題領域においては文章表現もコードと同様のレビューができる。文章レビューと文章表現の訓練を文化にすると、効率的なチームができているはずだ。

社会学批判の裏には科学信仰がある。なぜ科学信仰が盛んなのか。伝統的な考え方がコミュニティとともに無くなったからだ。人間は変わり続ける生き物で、態度は体調で変わるし、自分の自我さえも変わり続ける。そこで固定化した立脚点、何らかの価値観を求めるのが人間の歴史だった。養老孟司の言う「人々は固定化された確実なものを求める」というやつだ*1

 

科学は客観的真理の学だとされる。客観的真理とは永遠不変の神みたいなやつである。なるほど変わりつづける自分、死にゆく自分から目を逸らすにはぴったりだ。しかし、実際にはこの真理も留保つきのものでしかない。すべてはまだ否定されてないだけの仮説だ。そして、何よりも高度になりすぎた学問への信頼が危うい。生物学はラボで継代飼育した特殊な個体で実験をするし、物理学は世界に一つしかない巨大な実験施設が必要な時代だ。再現性再現性というが、どの分野でも簡単に再現性を確認できる時代ではないのだ。

 

ふつうの人の科学への信用は科学だからという理由で成立している。これは信仰に近い。具体的な科学が客観的真理でないのにも関わらず、曖昧に科学を信頼している。つまり、寄って立つ足場は不安定だったのだ。安定した確実なものではなかった。ではどうすればいいのか?私は死ぬ自分と向き合いたくない、そういう人もいるだろう。ただ、事実として人は変わり続けるし明日にでも死ぬかもしれない。たぶん、この事実は受け入れたほうが人生が楽に、自由になると思う。受け入れることが出発点である。無理な人は宗教でもやるとよいのだろうか*2

 

余談。これは他者を信頼するか、自分を信頼するかという話にもなる。他者をまったく信用しないわけにもいかない。かといって他者に振り回されるのは不幸だ。自由を阻害する。なので、ある程度つよく自分の感覚を信じつつ、弱く他者を信頼する態度が便利だと思う。

 

2021/02/10追記

そこで固定化した立脚点、何らかの価値観を求める

別の観点を思いついた。人々に自信がなくて、かつ承認されたいがために正しいものを欲している、という説。彼らは正しさを使って自己表現しようとしている。正しければ怒られないからだ。その正しさの象徴としてエビデンスや論理的正しさ、倫理、科学が祭りあげられる。

*1:養老孟司の人間科学講義

*2:仏教おすすめですよ

日常言語で「合理的・論理的」と言われるものは論理的ではない。たいてい「納得できる」か「効率的」を意味している。「寒いから長袖の服を着ようね」と子供に語りかける大人はたくさんの暗黙的前提を意識せずに飛躍した論理を表現している。暗黙知を共有している大人に通じるだけなのだ。なので「納得できる」くらいがまともな表現である。当然ながら前提を共有していない人には「論理的」ではないし納得もできない。

 

また「効率的」と言うときにも注意がいる。「コストとスケーラビリティどっちが大事なのか」と問われるように、制約の優先度と許容範囲が決まってないと効率性には答えがでない。制約の優先度を決める問題は複雑になると政治的プロセスで決定される。あるいは小さな組織では暗黙的に優先度が共有されている。

包丁について

先日新しい包丁を買った。21cmの牛刀である。鋼材は鋼。白紙二号鋼だったと思う。これを買うのに結構悩み、調べ物をしたので知見を残しておく。

f:id:non_117:20201223190908j:plain

今回買った牛刀

家庭用としては三徳、牛刀、ペティナイフ、菜切りが候補になる。無難に選ぶならば三徳包丁でよいのだが、どうせ買うなら持ってないタイプにしたいと思った。すると牛刀と菜切りが残った。この二つを比べて悩んだ。

菜切り包丁はこんな形

グローバル 牛刀 刃渡り 20cm G-2

グローバル 牛刀 刃渡り 20cm G-2

  • メディア: ホーム&キッチン
 

牛刀はこんな形 

牛刀は見た目がかっこいい。また、万能包丁なので冷凍肉や骨以外はだいたい扱える。一方で菜切りも有力だ。家庭料理では野菜ばかり切るので、野菜特化の包丁があってもよさそうに思えた。何しろ菜切り包丁は三徳包丁が普及するまでは、どの家庭にもあったものなのだ。それでかなり悩んだが、牛刀に決めた。菜切りと他の包丁との使い分けが面倒そうに思えたからだ。やっぱり万能包丁一本で仕事をしたい。長さは21cmにした。三徳に慣れていると長く感じる刃渡りだ。プロは30cmのものを使うそうだが、家庭では21cmか24cmが限界だと思う。

 

材質は鋼とステンレスのどちらかだ。鋼には日本鋼、白紙n号、青紙n号がある*1。青紙が最も硬くて高級だが、刃付けが少し難しいそうだ。おそらく家庭用では白紙でじゅうぶんだろう。鋼の包丁は切れ味に優れるが、錆びやすいというデメリットがある。ステンレスはモリブデン鋼、V金10号、銀三鋼、粉末ハイスなど。昔はステンレス包丁は切れないと言われていたが、技術革新の賜物でよく切れるようになったらしい。ステンレスの包丁はもちろん錆びにくい。研ぎにくい問題はあるが、一般的にはこちらが勧められる。だが鋼にした。近所に有次という超老舗包丁屋があったからだ。包丁はわざわざ実店舗に行かなくても、オンラインで堺や新潟、関の商品が手に入る。しかし、実際に触ってから買いたかった。包丁は手で扱うもので、プログラマにとってはキーボードに等しいからだ。堺の包丁のお店も梅田にあるのだが、コロナ禍の状況下で梅田に行くのは憚られた*2。こうして近所の包丁屋で買うことに決め、自動的にそこでの主力商品、鋼の包丁という選択に至った*3

 

鋼の牛刀を一ヶ月ほど使ってみたところ、切りごこちはすこぶる快適である。そして、懸念されていた錆びやすさは問題にならなかった。こまめにキッチンペーパーで拭けば全然錆びないのだ。野菜を切っているそばから錆つくのを想像をしていたのだが、そんなわけはなかった。三十分濡らしたまま放置するとダメだろうが、使ったら拭く、放置するときも拭くを身につけると錆びないのだ*4

 

包丁を変えてからしばらくして切る感触が手に伝わるのに気づいた。気のせいかと思ったのだが、確かに繊維を断ち切る感覚があるのだ。今まで持っていた包丁にはなかった。鋼材が原因なのか、包丁の形が原因なのかはよくわかっていない。手触りが伝わるメリットが何かと言われるとよくわからないが、切るのが楽しくなっている。包丁ごしに野菜や肉の硬さがわかるので、硬さに応じた切り方ができるのは利点かもしれない。

 

メンテナンスには1000番と5000番の砥石を使っている。二週間に一度くらい5000番で軽く研いで、一月に一度両方を使って刃をつけている。白紙鋼は本当に刃がつけやすくて研ぎの時間はほとんどかからない。簡単な手入れで最高の切れ味が持続するので鋼にしてよかったと思う。

シャプトン 刃の黒幕 エンジ 仕上砥 #5000
 

  

以上が私が牛刀を買って得た知見である。よい道具を持つと、道具に影響されて人間の行動が変わることがある。切る動作一つをとっても立ち方、左手の添え方、手の力など気をつけることは多い。私も影響されて自分の癖を見直すようになった。よい投資だったと思う。

*1:nは1, 2

*2:それにこの店の包丁はやたらと高価だった。同じ鋼材、大きさでも有次に比べて値段高くなる。値付けの根拠がよくわからないのだが、特殊なデザイン、土地代やサーバー代ではないかと疑っている。

*3:有次で買い物をするときの注意点。錦市場では現金決済しかできない店が多い。有次の牛刀は一万五千円くらいだったが、それでも現金決済だった。

*4:とはいえ錆びやすいのは間違いないので、性格的にこまめに拭ける人へのおすすめになります

タイムラインに流れないものは認知されない。それが今の情報流通である。多くの人々はタイムラインからのみ情報を仕入れている。バズったものが一瞬で消費し尽くされるのも、タイムラインの性質が原因だ。バズるとタイムラインはその話題で持ちきりになるが、そのうち別の話題で押し流されてゆく。

 

twitterで情報はフローとして流れる。ストックされない。ある人のツイート一覧を見に行っても当時の文脈がなくて解読できないものもある。twitter内の情報は流れ続けており、人々はそれをただ眺めている。彼らは流れを変えられない。群体として流れを作っており、その全体的な流れをコントロールできるものはいない。フォロワー数の多い人は流れを作りうるが、流れがどのように変化するかは彼の掌中にない。

 

SNSは暇つぶしに使われている。積んでいる本やゲーム、映画などの消費をしたいが、なんとなくダルい。疲れている。そんなときに受動的に使われるのがSNSだ。コンテンツとして低品質だろうが関係はない。勝手に流れてくれて受動的に消費できるのが大事なのだ。これはテレビと同じ性質である。事実、twitterでは多くのユーザーがRTばかりしている。たいてい意見を言うほどの体力はなくてただ眺めてシェアしているだけなのだ。流れは一部の元気で暇な人によって作られている。

 

ただ流れて消えていく情報の川をみんなで作ってみんなで暇つぶしにしている。それがSNSだ。電気代、ネットワークの維持費を使って自己充足的な暇つぶしシステムができている。エコだとは思う。ただ、これが娯楽の行き着く先だったのだろうかとも思う。ジャックドーシーのSNSで民主主義2.0は暇つぶしに負けるだろう。

 

 

では、なぜ私は記事を書いているのか。私の場合は言語化が趣味なので、書き上げた時点で満足している。ブログには書いていないだけで大量の日記がPCに入っている。しかし、たまに世に出したらいいことがあるかもな、という文章もできる。そういう文章ができたときだけインターネットに流すようにしている。社会学者のジグムント・バウマンは「瓶に手紙を入れて海に流す」つもりで本を書いていた。それを真似している。そのうち誰かが拾って記事の続きを考え始めるかもしれない。そういった連鎖を期待している。

家庭料理はシンプルでいいのでは

f:id:non_117:20201218190524j:plain

キャベツオムレツを作ってみた。

f:id:non_117:20201218185910j:plain

キャベツを焼き色がつくまで焼きます

f:id:non_117:20201218190317j:plain

溶き卵でとじます

こんなふうにキャベツを焼いて卵でとじただけの料理だ。非常に簡単なのだが、なぜかとてもおいしい。素朴なものだが、ちゃんとおかずとして成立する。

 

なんでこんなものをつくって作ったのかというと、「土井善晴の素材のレシピ」という本に似たような料理が載っていたからだ。この本は不思議なところところがあって、定番レシピではなく独自のシンプルなレシピが多い。例えばエリンギのページはこうなる。

f:id:non_117:20201217193126j:plain

揚げ物以外は10分で作れると思う。道具はフライパンだけだ。土井善晴氏は家庭料理といってシンプルな料理を紹介する。「土井善晴の和食」というアプリでもこんなレシピがよく出てくる。この本も同じだ。

 

たぶん土井善晴氏にとっての家庭料理とはシンプルで手間がかからないのにおいしいものなのだ。もちろん昭和後期に普及したテンプレ的な洋食もまだ家庭料理ではある。たまにアプリにも出てくる。しかし、コロッケだとかハンバーグを働きながら作るのは大変だ*1。当時は専業主婦や自営業の人が多かったためにこんなレシピが家庭料理として受け入れられたのだろう*2。だが、今の時代では無理がある。土井善晴氏の提案するようなシンプルなレシピが忙しい時代の家庭料理ではないだろうか*3。そもそも洋食が普及する前は和食が当たり前だった。昭和後期から平成初期の一時期の文化が凝った家庭料理だったにすぎない。

 

さらに差別化の観点もある。今は当時の家庭料理が気軽に手に入る。惣菜を買ってきてもいいし、外食をしても良い。家庭料理で時間をかけて調理するメリットは自分好みの味、栄養バランスに作ることくらいだ。休日ならば自分で作るのもありだが、平日に作る意味はないだろう。逆に、キャベツオムレツやエリンギの目玉焼きは家でしか食べられない。なのにしっかりおいしい。だから平日に作る今の家庭料理はシンプルなレシピでも良いのだと思う*4

 

土井善晴の素材のレシピ

土井善晴の素材のレシピ

  • 作者:土井善晴
  • 発売日: 2019/04/05
  • メディア: 単行本
 

 

*1:働いてなくても娯楽が多様化したせいで人々は忙しくなっている

*2:料理教室に通って洋食を習う人が多かったらしい

*3:easyではなくsimpleなのが大事で、easyだとレンチンして終わりみたいなSNSバズ目当てレシピになる

*4:具沢山味噌汁も現代的なシンプル家庭料理なのだろう

分業は悪だがやめると食えなくなる問題

engineer-lab.findy-code.io

こんな記事があって、「分業化するWeb開発の違和感」といういい言葉がでてきた。その通り、この世の不気味さ、不安さはぜんぶ分業のせいである。私は本気でそう思っている。

 

分業はいいことだ。全体の効率があがる。特に個人が食糧生産から解放されたことは大きい。ほんの少しの人たちが食糧を作ってくれるおかげで他の人たちは別の仕事ができる。こんなすばらしいことはない。今や都市生活者は全世界人口の半数を超える。分業のおかげで職業を選び都市で暮らすという選択ができるのだ。

分業はわるいことだ。個人の経験が分断され、コミュニケーションが成立しなくなる。隣の島で働いている人たちが何をしているのかわからない。同じ社内でも職種が違うと話が通じないことがある。前提がどこから違うのかわからない。こんなにもわからないのに、なぜか会社は利益をあげて決算報告書を提出している。そして、なぜかわからないままに給与が振り込まれる。不気味だ。不気味だが分業の力がすごいことはわかる。

 

なぜ分業が効率的なのか。分業には量的な分業と質的な分業がある。同じ役割の人を増やすのが量的な分業で、役割を細分化するのが質的な分業だ。分業は両方の側面でやらないと最高のスケーラビリティにはならない。人と喋るのが得意な人は営業をやるだろうし、計算機が好きな人はソフトウェアエンジニアをやる。役割で別れたらあとは役割の責務の範囲内だけで仕事をすればいい。もちろん、いつも責務は曖昧だ。だが、ソフトウェアエンジニアが営業をやる事態にはならないだろう。ソフトウェアエンジニアは計算機に関する責務だけ負って、知識も責務に応じたものだけ持っていればいい。それで全体の仕事は効率的になり、お給料は保証されるのだ。

 

分業はあまりに強い。もしあるソフトウェアエンジニアが革新的なアイデアを思いついたとする。世の中での需要があることも確実だった。しかし、作るのに五年かかる。彼が五年かけてそのアイデアを実装したらどうなるだろうか?運がよければ競合は現れず、めでたく賞賛されるだろう。しかし、たいていは他の人も同じアイデアを思いつく。需要があるなら尚更だ。科学の歴史もそれを証明している。新発見が同時に別々の科学者によってなされることは珍しくない。もし、五年以内に別の人がチームを組んで実装をしたらどうなるか?彼は確実に負けるだろう。アイデアを思いついたのが先だろうが、実装し始めたのが先だろうが、実装スピードがスケールしなくて彼は負けるのだ。小さな実装で済むもの、例えば数ヶ月で実装できるアイデアならば勝機はある。だが、小さな実装で評価されるのは黎明期の業界だけだ。成熟した分野では巨大な実装が必要になる。アイデアを思いつきつつ素早く名声を得るのにOSSは有効だ。コアアイデアと最低限の実装だけ提出すれば良い。もし需要があるならばPull Requestを捌くのに忙しいくらいになるだろう。しかし、OSSの問題はそれで食えるのかということだ。OSSが趣味ならば良いが、OSSで食っていくのは大変だ。他方、商用サービスは組織と組織の戦いになっている。黎明期のウェブやスマホアプリのようにはいかない。アイデアを実現するのはますます高コストになるばかりだ。

 

分業の本質的な問題はなにか。コミュニケーションコストである。仕事で得られる経験・体験と知識体系が役割によって違うのだ。知識が違うと言葉の意味が変わる。よってコミュニケーションは言葉遣いのプロトコルネゴシエーションから始めなければならない。そう、ユビキタス言語とか。役割は増えれば増えるほどコミュニケーションコストは増大する。役割分担によって一人に詰め込む知識量を制約しているから仕方がない。これは構造的な問題である。だが、どこかでコミュニケーションコストが分業スケーラビリティを抑制するだろう。分業が進みすぎると全体の仕事は遅くなり始める。これを大企業病と言うひともいるかもしれない。大企業はこれをジョブローテーションで解決しようとした。本当にジョブローテーションの発案者がこの問題を認識していたかどうかは知らないが、理屈上は解決策にはなるはずである。経験が役割によって異なるならいろんな役割をやってみればいい。素朴でいかにも効きそうな方策だ。実際にうまくいっているところもあるのかもしれない。私は知らないが。

 

逆に最高の役割分担は何か。すべての役割をこなせる人が役割分担をすることである。isuconだったらインフラもアプリもフロントエンドも全部できる人だけでチームを組むこと。これが最強である。全員似たような知識基盤を持っているから当然だ。コミュニケーションコストは低いだろう。ここでは阿吽の呼吸で仕事が進む。もしかすると、うまくいったスタートアップにはこういうチームがあったのかもしれない。

 

もしかするとジョブローテーションを小さな組織でやるのは有効かもしれない。組織の全員をすべての役割をこなせる人にする。ただし、計算機科学の領域内だけで。おそらくmoznion氏がやったのはまさにこれで、計算機科学という基礎教養のうえに全部の役割をとりにいったのだと思う。サーバー開発では今これがやりやすい状況で、AWSなりGCPを使っていればサーバーアプリ開発者でもTerraformのコードを書いてインフラ管理ができる。RailsなりGoなりのサーバーアプリ実装者からTerraform職人、インフラ設計屋さんにジョブローテーションをするのはそれほど難しくないのだ。これは使う道具が計算機のなかに閉じているからできるのだ。開発環境さえ用意できたらその役割になれる。ソフトウェアエンジニア業が他の業種に比べて恵まれてる性質なのだ。

 

我々はすでに分業してしまっている。企業のチーム、狭いソフトウェアエンジニア村もそうだが、社会全体でも分業している。ここから戻れるのだろうか?私は無理だと思う。今後ますます我々のコミュニケーションは難しくなるでしょう。謎の陰謀論的権力で分業を破壊したらどうなるだろうか。土地を持っていない我々都市生活者は飢えて死ぬだろう。じゃあ皆に土地を与えて下放しますか?共産革命ですね。一部分だけ分業を破壊しても何かのもの、サービスが手に入らなくなるだろう。生産されていても高価になるだろう。生産効率が落ちるのだからそうなる。やはり、戻れないのだ。

 

ここで疑問が出てくる。分業によって社会全体は豊かになったはずでは?余剰はどこにいったの?資本家が持っていってしまいました*1。でも、共産革命とか無理ですよね。どうしたらいいのやら*2。私にもわかりません。おそらく今のところ治療法はありません。分業と効率とコミュニケーション分断、これは構造的な問題なのです。あまりに強すぎる問題なので、一人一人の価値観が少しずつ変容することでしか解決されないでしょう。

*1:今の資本家はたしかに格差のかたちをしているので、格差は批判対象だが旧来の資本家もまだいるはずでこの問題もなかなか複雑です

*2:現実的には再分配の話題になりますが、現代の資本家は国レベルで資産を移転できる、政治権力も持っているという性質が難しそうです