matlayの日記: 考古学的システム開発 12
前置きとして、考古学と歴史学の違いは何かと申しますと、まあ「字」(文献)があるかないかがその境目でして、文献から構築したものが「歴史」、文献以外の物を分析・解釈したものから構築したものが「考古学」。まあ、よく考えると、字面通りなんですが。
#まあ年代という条件がないので、文献がある時代でも「考古学」的手法はやってもいいわけで、そんなヘンな事やるやつはあまりないと思いますが、「考古学」じゃなくて「考現学」と言ったりします
##意外とマジでやられてた。そう言えばそうだったかな?
##『ハリガミ考現学』(筑摩書房 おむすびまん)を読んだあたりで知った事だったか
で、以前の仕事で自分が何をやっていたかというと、どうも「考古学」的にシステムを把握しようとしてたのではないかと。
まず、前提として、仕事はリプレースでしたが、前バージョンを作ったところとは都合により没交渉状態でした。つーか、こっち側にチャネルすら無い。
#運用中の現バージョンについては絶賛サポート中だが、
#次のバージョンについての話はまったくできない(おそらく契約に対する認識の相違があるのではないかと)
こっち側にある「文献」(ドキュメント)が整理されてない・完全じゃない・正しくなさそう・見る手段に制限がある、どんなドキュメントがあるんだかないんだかわからんという、
#間違いとか手違いというレベルは超えてる
#書いてみて、とても信じられない。
で、情報は基本的に対面や伝言ゲームで口頭でもらうしかないというか、なぜかそうしたがる。
#民俗学か?
プロジェクトのスコープ(開発対象)は業務システムのごく一部で、まあ自分の担当はさらにそのごく一部だったのですが。前バージョンの不完全な仕様書を焼きなおすというあまり意味があるんだか無いんだかわからない設計らしき事をやらされていると、どうも、これはスコープ外のシステムの情報(仕様)がないと設計できないと思い始めまして。
開発対象に入力される情報の作成元、情報が出力される先の処理の仕様がわからないと、書いている事が正しいかどうか検証できない。
#まあ、いいや、書いてしまえ。業務(人間系)に関する情報もほとんどない
で、まあ、時間も死ぬほどあったし、放し飼い状態なので、見えている情報(前バージョンの仕様、一般市民として見える業務の様子、ニュースなどからの情報、職業上の常識、逸般人としての知識、雑談から漏れる単語からの推測)でそれを想像というか推測していたらしい。
#使っている人、作った人の気持になり、出力データが何で処理されるかを推測した
##逸般人としての知識=とある事情でとあるサービスのヘビーユーザーであった時に気がついたこと(相当数いると思うが)
##「ここって、連番だから〜」「?????(何いってんだこいつ)」
## まあ話通じんよな
その結果として、見た目、粗雑で穴の多いしょーもない古くて稚拙なアプリのように見えるが、実はかなり業務上の必要性から実際的に割り切られて、洗練された結果なんじゃないかと思えてきた。今どきの主流分野の文脈で読むとそうとう変で稚拙に見えるけど。あまり馴染みのない分野の文脈(もしかするとハイブリッド?)でそれなりに設計したものであったと思う。
よくわからんデータ構造などにも意味があった(あまり馴染みのない世界のもんだったからしばらく気づかんかった。ヒントはおおありだったが半年ぐらい気づかんかった)
まあ、あれだけの規模の業務をバージョンアップも含めてつづけてきた事そのものを考えると、ナメるなんてとんでもない話で、安易によくわかってない最新技術をどんどこ突っ込むとかっこよくなるよねなんて思うと大災害が起こるんだなあと。
だいたい、設計決めるのに前の実機をモンキーテストした結果から割り出すとか、
文明人の発想ではない。まさに...。
文明人と...の境目って文献を作る(抽象化)にあるんだなあ。
デバッグは特に考古学的だと思っていました (スコア:1)
設計はどうかなぁ。個人的には、抽象化は勉強すれば身につくというものではなく、センスが必要なので、アプローチ的には物理学者か芸術家が近いかなと思います。
業務系でなく基盤系のミドルウェアの開発に一時期携わっていましたが、
ミドルウェア開発は、要件仕様から推察する意味で考古学的な一面もありますが、
そこで決めた仕様を「未来の別システムで使う人」も対象にしているから、
保守はともかく新規開発があるところは、抽象化が必要。
ソフトウェア開発は建築に例えられることはありますが、異なる部分も多々あります。
建築の場合、設計を含めた資材の流用が進んでいますが、ソフトウェア開発は
資材(ライブラリ類)の流用は建築業界に比べれば全然進んでいません。
その違いは、「業務」という「見えない法則」、別の言い方をすれば物理法則が毎度変化するためです。
そういう意味で言うと、基盤のミドルウェアの設計は、業務の共通部分―見えない法則―を見つけ出すということですから、物理学的とも言える訳です。対称性など共通部分を見つけ出すアプローチも、類似性があります。抽象化をして、それが実際のシステムにかみ合うか・・・そんな実験を繰り返して「見えない法則」に辿りつくわけです。
ただ、物理法則は世界に一つですが、「見えない法則」は人の営みが生み出すもので、永遠普遍のものではありません。新しいハードやテクノロジーの登場や人の営みの変化で、その法則自体も変わっていきます。その人の営みを見て、統一感のある何かを生み出す、というと芸術家の方が、近いのではないかという気がします。
Re:デバッグは特に考古学的だと思っていました (スコア:1)
ああ、なんかそれっぽく書けてたんだ。話が通ってる。
ミドルウェア開発の設計は「未来の別システムで使う人」を対象にするので、うまく抽象化する事自体(理解できる、応用できる、対象の特質に合致する?)が設計の良し悪しなんだと思います。
ソフトウェア開発は建築に例えられることはありますが、異なる部分も多々あります。
建築の場合、設計を含めた資材の流用が進んでいますが、ソフトウェア開発は
資材(ライブラリ類)の流用は建築業界に比べれば全然進んでいません。
その違いは、「業務」という「見えない法則」、別の言い方をすれば物理法則が毎度変化するためです。
多分、「規格」という言葉を使う話なのかなと思います。
ソフトウェアの文脈で「規格」っつーとまた別のイメージがありますが。
#ああ、なんかあるギリシャ文字が浮かんだ
物理法則はまあ変わらんと思いますが、素材の発達によってもしかしたら規格は変更する必要性がありえるので、素材の発達速度が飛躍的に上がったら.....(でも実用化までの速度はそんなに上がらんかな?)
>本当の三日坊主とは、それが苦痛すぎて三日で髪の毛がすべて抜け落ちた者のことを言う。
ああ、私はまだ甘いんだ。
#こないだ床屋で「毛の話」で世間話したら、人種別の話まで行ったので、さすがにプロはよく知ってると思った。
##途中で具合悪くなってきたのだが、なんだかんだ言っても仕事の手順を省略しようとしないのはつらかった。
#存在自体がホラー
Re:デバッグは特に考古学的だと思っていました (スコア:1)
>ミドルウェア開発の設計は「未来の別システムで使う人」を対象にするので、うまく抽象化する事自体(理解できる、応用できる、対象の特質に合致する?)が設計の良し悪しなんだと思います。
同じ事を別の表現で言っただけのような気がする。
物理学は物理学でも言葉的には宇宙論とか素粒子論とか(理論物理)とかいうとそれっぽい。
#存在自体がホラー
Re:デバッグは特に考古学的だと思っていました (スコア:1)
同じじゃないから、別の言葉にしました。
デバックなら、業務システムもミドルウェアも大して変わりませんが、設計に関しては別物だという認識です。
業務に近いところだと、利用者の要求が仕様とほぼ対応づく関係にあります。
ミドルウェアは、複数のシステムで使われて、システムごとに開発者ごとに使い方が
様々なので、利用者の要求どおりに組み立てると、制御ロジックの組み合わせが爆発します。
なので、有形・無形の利用者の情報とは別の、共通化や抽象化が必要になります。
この点に関して、宇宙論とかはまったく関係なくて、未知の法則を見つけ出すアプローチ…対称性から、こういう法則もあるはずだ!とか、その程度の話です。さすがに宇宙論とかは関係ないです。
また、大規模になってくると作業分担が必要になりますから、機能分割をします。
分割しないと複雑怪奇なコードになるので、この機能分割がかなりセンスのいるところで、
ミドルウェアの生命に大きく関わるところです。何というか、この機能分割の正しさは、
コード上にある訳ではなくて、経験に裏打ちされた美意識にあるので、どっちかというと、
芸術家が近いと表現したという訳です。
Re:デバッグは特に考古学的だと思っていました (スコア:1)
要求仕様というか設計の情報が不十分な状態でのデバッグ(ソースのみとか)はまあそうですね。
#存在自体がホラー
抽象化というか情報化 (スコア:1)
なんか、意図的に間違った言葉だったけど、思った以上に有益なツッコミをいただいたのでそのままで。
イメージしていたのは単純に情報化という事で単になんで「設計」という「抽象化(情報を間引いて構造化して人間の脳で扱いやすくして、しかも扱いやすくするという超古典的な智慧)を使わずに「実物」持ってくるんだという事です。
お前ら、一体何で飯くってるつもりなんだ!!と。
#存在自体がホラー
Re:抽象化というか情報化 (スコア:1)
s/意図的に/意図的には
#存在自体がホラー
Re:抽象化というか情報化 (スコア:1)
s/しかも扱いやすくする/しかも物理的に扱いやすくする
#存在自体がホラー
オチを忘れてました (スコア:1)
「ネジ一本からICBMの諸元を割り出す」(『エリア88』新谷かおる 小学館)
なんて、常人の業じゃない。(フィクションだけど)
#存在自体がホラー
文献がある時代でも「考古学」的手法はやってもいい (スコア:0)
文献の是非を考古学で確認する。
古事記・日本書紀辺りの妥当性確認は日本でも遺跡発掘で、世界でも伝承(本)の確認をシュリーマン以後確立した考古学で、普通にやっているのでは?
Re:文献がある時代でも「考古学」的手法はやってもいい (スコア:1)
対象とする時代で手段が二分されるようなニュアンスになった気がするので蛇足を書きました。
確かにそのとおりです。複数の手法で検証するのが基本ですね。
#存在自体がホラー
Re:文献がある時代でも「考古学」的手法はやってもいい (スコア:1)
つーか、素人が「考現学」→「考古学」→じゃ「歴史」との違いは?
という経緯で得た知見なので、偏ってるというか錯誤があるのか。
#存在自体がホラー