-
-
スピーカー 2
インタビュー技術。そう、げんえいさんがね、あんまり好きじゃなさそうって言ってた。
そう、なんかあんまり。 僕は結構好きですけどね。
スピーカー 1
いや、なんかもう早く、早く次に設計の哲学院みたいな気持ちで読みながら、あと、多分、インタビューみたいなものは、多分専門スキルみたいなものでもあったりするから、
きっともっといい本があるんだろうなーとか思って、なんかあんまりここは力入れずに読んでたっていう感じですかね。
スピーカー 2
そうですよね。リサーチ系の本とかめちゃくちゃ専門分野としてありますもんね。
そうそうそう。 これちょっと106、107ページだけ触れたいかもなぁ、そしたら。
「丸飲みしないで済ます方法」っていうエッセイなんですけど、これ丸飲みって言ってるのは何かっていうのは、まあいろいろあるんですけど、なんかすげーフリリアントジャークみたいななんか存在のプログラマーが出てくる人なんですよね。
うんうん。 いや、俺のやり方が正しくて、今まで使ってたのが間違ってるから、僕は直したんすよみたいな。
うんうん。 違くて、現状と計算結果が合うシステムを作っていったのなんだけどって、いいような話がされてるじゃないですか。
で、えーっと、これは、まあいいやその106、107って言ってたのがいくつかですね、いいことが書いてあってね。
技術指導者講習会での討論から拾い集めたヒント集であるっていうのが載ってるわけですが、一つ目が言葉遣いに気をつけようで、二つ目が理解の幅を広げよう。
うんうん。 で、三つ目が不完全さに対して寛容であろうで、四つ目が最終的原因者は利用者であることを認めよう。
で、五つ目が理屈のわからない相手のために働くな。 うんうん。 ですね。これはなんか印刷して飾っておきたいですよね。
スピーカー 1
そうですね、なんかもう普通に現代で同じ話されてないっていう気がするな。 いや、ずっとしてるんですね。
え、だって68年50年以上前ですよ、これ。 いやー、人間進歩してない、進歩してないっていうか、世代交代というか、いうことが起きてるからっていうのはもちろんあるんだろうけど。
スピーカー 2
あ、違う、68のわけじゃん、86年か。 86年、まあでも40年。 40年。
スピーカー 1
いや、なんか最終的権威者は利用者であることを認めようとかも読みながら、なんか最終行動やお客様という言葉をこう連想したりとかしながら。
そうですね。 で、結局最終的にこれユーザーが使えないと、いや、あのできましたって言っても、いやできてないやんけみたいな話散々してるなとか思ったりとか。
スピーカー 2
これ、その4つ目、最終的権威者の下りの締めの文もいいですよね。
もし自分が利用者より頭が良いと思うことが終始あるなら、たぶんプログラマーを辞めて利用者の上司に繰り返すべきなのだって書いてあった。
スピーカー 1
まあ、でも今だとこうインターネットってやつがあって、俺たちが聞いて、プログラマーの方がいろいろ影響を及ぼすという意味ではいいのかもしれないみたいなことをちょっと今一瞬思いましたけど、たぶんそういうことが言いたいわけじゃないんだよね。
スピーカー 2
そうですね、そういうことではないと思うけど。
スピーカー 1
上手にできると思うんだったら、実際もっとやって、それで成果を上げた方がいいよっていう。
スピーカー 2
そうですよね、だから上手にできるっていうんだったら、じゃあちゃんと権限をもらって、実際それを全うした方が、なんていうか、もくいってやった方がいいよとか。
スピーカー 2
そうですね、第4部はそういう怖い話があったりとか、まあでもそんなところなのかな。さっきね、結構序盤で触れてたコンピュータリソースが増えてきたら、カリカリにチューニングしたコードっていうよりもこっちの方がいいよみたいな話とかを。
ここで出てきてますね、102ページに。仕様とか要件っていうのがあったのに対して、それをコードに落とすっていうのはある意味翻訳作業。その翻訳を、わかりやすいじゃないですか。
スピーカー 1
そうですね。 そうですね。
スピーカー 2
で、ただ今だったら面白い、拡張性、変更用意性っていうのをいろいろゴニョゴニョしてやるやり方もあるし、まあメモリちょっとね食っちゃったりとか、スタックが少し深くなったりするかもしれないけど、今でいうとどっちがいいのよみたいな話とかがあったりしますねっていうようなことが書いてあったりして。
そうっすね。 で、だからユーザーというかステークホルダーが出してくる要件で、こういうことを実現してくださいって言われたときに、まあそれを一般化って言ってますけど、まあ抽象化ですよね。ある程度こういう動きなんだろうな、こういう要求が根っこにあるんだろうなっていうのを見せて。
スピーカー 1
うん。 抽象化するからこそ拡張性を織り込めるとかなると思うので、そういうことも素敵、昭和的な話が書いてあったはず。 うんうんうん。いやーもう全然全然違う時代ですからね。
どうっすね。 だから逆に言うと多分我々もじゃあこの10年ぐらいでいろんな芸術を身につけたが、じゃあもう10年先になったときにはまた前提が変わってくるんで、じゃあその変わった中でどういうふうな設計が良いとされるかとか、今はこういう問題があったからこれはやらないほうが良かったけど、
うん。 今後はこういうことを積極的にやった方がいいみたいなことっていうのは多分いっぱい出てくるだろうから、多分そういうことをちゃんと学び直さないと、あの人の書くことが古いんだよなとか、いやもうこれんなことやってるけどこれは現代においてはもう最適化されてるから問題にならないんだよなとか、そういうようなことがいっぱい言われちゃいそうだなっていうのを思ったりしますね。
スピーカー 2
確かにな、継承あんま使わないほうがいいよねみたいなことをよく話すからな。 あとそうですよね、86400みたいな数字をバッて使う必要なくて、いや60×60×24って書いても最適化走るんで変わらないですよとか、そのレベルの話を気にするプログラミングしたことないんですよね。
スピーカー 1
まあそうですね、割とでも極力早いほうがいいよね、無駄なことをしなくていいんだったら無駄を減らした方がいいよねっていうふうに考えると、そういう誤差じゃんみたいなこともあっても、常に考えましょうねという意味ではそういうことを言うみたいなことはあるかもしれない。
スピーカー 2
なんかでもどっちかというと日コストみたいな話が、日負荷的な話がありますもんね。 86400めちゃくちゃ見慣れてるんで書いてもらった方が1日ねってなりやすいんですけど僕は。 60×60×24だと一瞬迷う気がするんだよな。
どっちもあるな、86400って見た時にピント確かに来るからなもう。 まあ定数化しといてくれればいいんですけどね。 あとなんか昔、すげえ昔に、ポッドタストなんで名前出さないですけど有名な同世代のプログラマーが、
タゴラスの定理ぐらいはみんな知ってると思うから別に、俺だったら関数化しないでいないんで書くけどなーみたいなこと言ってて。だからそこら辺もね、読み手に一発で刺さるかみたいな話があるから、面白いなーって思ったりしてましたね。
スピーカー 1
いやそういうの、どこにこう当然のラインを敷くのかっていうのは結構難しいなっていうのは常々思いますね。 そうですね。あと、三平方の定理、ピタゴラスの定理っていう名前の関数作られると逆に色絶えそう。公式見ればわかるんですけど、公式てか計算式見ればこれやりたいのねってわからず。
スピーカー 2
ピタゴラスなー。スペルがわからんからな。 そうだよねー。マス関数のグにありそうな気もするけどね。 あーPHPのマス関数なー。
きっと使うことがあんまないからないんだろうなー。 PHP標準偏差出せないですからね。
確かに。あーまあそうね、統計知識とかってどれぐらい人に求めていいかわかんないだったりするんだよなー。 わかんないですよね。僕はベクトルの計算がマジで、高校で数学1Aとかレベルのやつが、うわ怪しいと思ったんで、
スピーカー 1
あれですね、働き始めてから実家からチャート式を取り寄せて高校数学やろうって思ってました。で、ライブラリ見つけちゃったからやってないっていう。
いやそうなんだよなーなんか、むずいっすよね。別にそのベクトルの計算するだけだったらまあじゃあ自前そんなライブラリ入れなくても自前でちょっと書きゃいいしなみたいなことってたびたびあるしなー。
スピーカー 2
あとまあね、なんかURL貼ってここの書いてあるこれですっていう風に言ってくれれば。あれか、前どこだっけ、ペチパカイか、で作者さんが言ってたコメントに計算内容を証明したのを全部コメントに入れたからすごい長いコメントがあるんですよ、これ論文ってあるんですかね、誰か知ってたら教えてくださいって言ってて。
論文で扱うようなレベルのコメントで書くってクソ面白いなーとかっていう話がありましたね。
スピーカー 1
しかもそれじゃあ論文なかったら論文にできる可能性があるってことだよ、なんてことだし。
スピーカー 2
はい。
スピーカー 1
まあだんだんそれできたから次行きますか。
次行きますか。
スピーカー 2
次が設計の哲学ですね。これがすごい期待して、おーって読み始めたら、うん、あれ?みたいなことを思った図ですね。
でも最初の合成からいいですよね、設計とは何ぞやっていうタイトルはすごい興味深いですよね。
スピーカー 1
そうですね、そうですね。でまあ、この中で設計ってじゃあ何なのっていう話をしてる中で124ページとかに設計の仕方を学ぶとは、モデルの作り出し方と評価仕方を学ぶことにほかならないっていうような太字になってるところがあって。
スピーカー 2
あれ?モデルって言うんだ。
スピーカー 1
そう。
スピーカー 2
この本なんかあれなんですよね、モデルのことをずっと模型役をやってて、結構毎回脳内変化しながら読んでて、ううってなりながら読んでたんですけど、モデルか。
スピーカー 1
ここではなぜかモデルって言ってるんですよね。
スピーカー 2
別物なのかな。多分揺れてるだけですよね。
スピーカー 1
揺れてるだけとか、あともしかしたらここの中で原型と少しだけ違っているみたいな、では模型と原型とかなんかその辺の言葉遣いのためにあえてここではモデルとかっていうことを選んでるのかなーみたいなことをちょっと、何か理由があってこっちではそのモデルっていうことをあえて使わないといけなかったとかなのかなっていうふうに。
スピーカー 2
なるほど、すいません話を残し終わっちゃったんですけど、ちょっと多分本の中ではニュアンス変えるためにモデルっていう単語を使ってるかもしれないけど、いわゆるモデルですよね、我々が。普段よく知ってるというとおこがもしんですけど、よく見かける概念であるところ。
スピーカー 1
モデリングしようって言った時とかに使うモデル。で、こう一言言われると、やっぱそうなのかみたいな。設計するっていうのはやっぱモデルを作ってそれが評価できるっていうことが、やっぱ大事なんだなーっていうのは、ここでもそう言ってるのかみたいな気持ちになりましたね。
スピーカー 2
そりゃあそうって感じなんですけど。
スピーカー 1
けど実際のシステムっていうのは思ったよりも長く生き延びてしまい。
スピーカー 2
そうですね。
スピーカー 1
思っても見ない使われ方をして、大変なことになるんだよなっていうのを経験上学んでいるが、それにどうやって向かえばいいのかなっていうのはずっと探究し続けてるって感じですよね。
スピーカー 2
まあであれか、ここは最後のやつが多分一番言いたかったことというか、一番主張したかったことではないにせよ一番読者を殴りつけておきたかったことかなーっていうのは太字で書いてますね。
アイディアを十分分析しないうちに試してみてはいけないが、そもそもまだ十分良いアイディアがないうちに分析に時間を潰すのもいけない。
変異と選択の間のバランスを取れと。
スピーカー 1
そうなんだよな。仮説もない中、とりあえず作ってみようとか、とりあえず手を動かそうってやっても多分あんまり得るものはなくて。
スピーカー 2
当てずっぽうと仮説は違いますからね。
スピーカー 1
結局失敗したけど失敗しちゃったね、で終わっちゃうと何も情報が増えてないし意味がなくて。
こうじゃないかじゃないか、こういう可能性だったらこういう風にいけるから、じゃあこういう可能性が本当にあるのかどうか調べてみようっていう風にしてやってみて、
じゃあこれでいいんだねとかこれじゃダメなんだねっていう、何かをちゃんと得るものを期待するものは何なのかみたいなことがないと、
確かに立ち止まってても何も情報が増えないのはそうなんだけど、当てずっぽうに何かやったから、ラッキーパンチみたいなのもあるかもしれないけど、
それを効果的にするためにはちゃんと仮説を立てたりとか、何かこうしたいと思ってるみたいな自分たちの意思みたいなものがないと、
結局時間を潰してしまって、タイムアップが近づいてきたんでとりあえず何かっぽいものを作るしかないって言って作って、
最後突然変異がやってきて大変なことになってしまう、怪物に変化してしまうっていうことが起きてしまうんですよね。
スピーカー 2
ちょっと暗くなってきたんで次に行きますか。
スピーカー 1
次に行きますか。でも逆に言うとこれがヒントで、そこがさえどうにかすれば何か最悪は免れるんだよなっていう気持ちでもあったりしますね。
スピーカー 2
そうですね。
スピーカー 1
事業がうまくいかないとかあるかもしれないですけど、でもそこで得た経験値でまた次何かできるんで、
ただ何もせずお金が減っていって失敗しましたよりは全然得るものはあるはずっていう。
スピーカー 2
そうね、さっき言ってたようなやっぱり事業っていう外側のシステムの中の一部でしかないですからねソフトウェアは。
って考えると、事業レベルでの仮説検証をしたんですっていうふうに、なんか急に言い逃れみたいなことになりましたけど。
だからそういう目線は確かに大事かもなとか。
スピーカー 1
そうそう。だからそういう目的を持ってシステムを分析、設計、合成していけばいいんだけど、
ただ作るだけだと多分あれ、何だったんだろうねって終わっちゃったりするんで、まあ勿体ないねっていうことですね。
スピーカー 2
これであとあれだな、130、131ページあたりシステム設計の3大Bっていうのがあって、
この章すげえ面白そうだなって思いながら読んでたんですけど、もう1回読み直したいんだよな、なんか咀嚼しきれなかった気がしてますが、
ゲイさんは咀嚼済みですか?
スピーカー 1
食事中ぐらいな感じですかね。
いやでも本当なんかここ、その3大Bって言ってるのが、あり方、ビーイングと振る舞い方、ビヘイビング、なり方、ビカミングっていうこの3つっていうところに着目しましょうみたいな話をしていて、
なんかここに結構システム設計のヒントあるんじゃねっていう気は、なんかやっぱり読んでてすごいしたんですよね。
スピーカー 2
うるんですよね。超個人的なこと言うと、ベチコン不幸化の発表の内容に絡めたいんだよなって思いながら。
スピーカー 1
でも確かに、システムを見るときに何に着目してますかみたいなこと考えたときに、
なんかあり方とか振る舞いっていうものは考えるけど、その発展、進化、歴史、学習、なり方、その変化みたいなところとかって、
なんかそれ考えだすとキリないから、一旦そこの条件はこうフリーズしようぜ、他を考えようぜみたいなことをやりがちだなーって思ったりもするし。
スピーカー 2
なんかでも、いやここは理想な気するんですよねっていうのが、最近の個人的なブームなんですよね。
例えば〇〇マネージャーっていう名前のクラスをつけたら、そこは多分いろんな仕事が流れてくるぞとか、
なり方というか、こいつがこういう生命だとしたら、進化していったらどうなるみたいなのって、
なんか人間予知できるんじゃねっていう気がしててですね、そういう宇宙の声をですね、福岡は私を見るで話したいわけですよね。
スピーカー 1
いいですねいいですね。
スピーカー 2
なんかね、すげー、例えが難しい。スポーツでもあるじゃないですか、この選手とこのヘッドコーチを一緒に置いたらどうなるだろうかみたいな、まずいぞこれはみたいな。
だったら間に一例挟みましょう。そうするとオープンクローズローにできるみたいな話とか。
スピーカー 1
そういう話、なんとなくこう分かってきたぞみたいな気持ちはあり、例えばそのあり方みたいなもの、この中で言うと、
そのあり方みたいなものの見つけ方みたいな着目の仕方が甘いんじゃないかとか、本当はそのあり方ではなくそれは科学的な変化だったりとか不科学的な変化まで含んで考えてしまって、
結果ゴッドクラスが出来上がったりとか、ユーティリティーというゴミ箱が出来上がったりとか言うみたいなこととかなのかなーみたいなことをちょっと思いながら。
でもなんか時とともに変化しない構造とかあり方みたいなのって、例えばなんですけどシステムオブレコードみたいな考え方、その帳表みたいな考え方でアップデートとかしないっしょみたいなものの、
それがどういう構造とかどういう風にあるのかみたいなことがちゃんと定義できるかどうかみたいなことだったりするのかなって考えると、そもそもそういうことに着目せずに現在だけ考えればいいんだとかって言ってアップデートしちゃうと、
気球システムってものが複雑になっていくみたいな、言うようなこととかがなんかこの辺の、なんかこれをこのまま現代に持っていこうってよりは、なんかこういうものにヒントを得ながら、なんか前も話したかもしれないけど、
時間軸みたいなところをスライダーを動かしながらちょっと考えられるようになると、たぶん設計が上手にできるんじゃないかとか、なんかそういうようなヒントになりそうなものがここには眠ってる気がするっていうような気が、本を読みながらしましたね。
スピーカー 2
あとこれ時とともにって言ってるのが、なんていうか、普通にユニックスタイム何秒ぐらいかみたいなタイムスタンプ的な話っていうよりか、たぶんイベントとかこういう出来事があって、このタイミングで世界が変わったように第2章第3章みたいな話とかもあるし、
本当に永久に変わらないものっていうのを想起して時とともに変化しない構造って言ってるわけではないと思うんで、ってなってくるとじゃあどういうイベントをこれから迎えていくんだろうねっていう話になってきたりしますよね。
そうするとビジネスのロードマップとかプロダクトロードマップとかになってくるから、それがあり方っていうのがなんかこの最初に見た時に、この少なくともあり方ビーングと振る舞い方ビヘイビングっていうのはなんか問題領域と解決領域っぽい話だなっていう気はなんとなくしてたんですよね。
いわゆるドメインモデル的なふうに皆さんがおっしゃるよく呼んでるやつが一番ここに依存しようってよく言われるやつで、で2つ目がなんか技術レイヤーとか実装詳細とかまで含めた設計みたいな話とか。
でここは変えられるようにしておきたい、変えやすいようにしておきたい。なぜならそこって、例えばユーザーが1000人の時と100万人の時で当然やるべきことを果たすべきことは変わるので、それで時と共に送る。科学的な変化、科学なのかっていうのがちょっとわかんないですけど。
そう考えるとこのビヘイビアって言ってるのは本当に振る舞いなので実装だなみたいな感じがして、パラダイムデザインだってなってくるんですけど賛があるんですよね。