帰りの翻訳機、つまり追跡番号を販売サイトの側へ書き戻す道具を作るとき、最初は素直に組んだ。何列目に注文番号があり、何列目に追跡番号がある、と位置で決め打ちして、そこへ書き込む。
動いた。手元の見本では、きれいに書き戻せた。けれど、この作りには、あとで崩れる予感があった。相手の形式が、いつまでも同じ位置とは限らない。
位置で決め打ちは、もろい
位置で決め打ちする作りは、少しの変化に弱い。
相手の形式に、列が一つ増える。順番が入れ替わる。説明の行が上に足される。どれも、向こうの都合でいつでも起こりうる。そのたびに、こちらの決め打ちがずれる。注文番号を書き込むつもりが、別の欄を壊す。しかも、エラーも出ずに、静かにずれる。
見本で動いたことは、この形式が未来永劫この位置だ、という保証にはならない。相手が一度形を変えれば、翻訳機は、黙って間違えはじめる。
名前で、列を見つける
そこで、位置で決め打ちするのをやめ、見出しの名前で列を探すことにした。
ファイルの見出し行を読み、「注文番号」にあたる言葉が書かれた列を探す。「追跡番号」にあたる言葉の列を探す。何列目か、ではなく、何と書かれているか、で見つける。列が増えようと、順番が変わろうと、名前さえ同じなら、正しい列にたどり着く。
見出しの言い方には、ゆれもある。同じ意味で、少し違う言葉が使われることもある。だから、いくつかの言い方を手がかりとして持たせ、そのどれかに当たれば、その列だと判断する。位置という固いものから、名前というしなやかなものへ、頼る先を移した。
空の様式に、行を足す
もう一つ、実物を見て設計を変えたことがある。書き戻す先の様式が、空っぽだった。
こちらは、もとから注文の行が並んでいて、その追跡番号の欄に書き込む、と思い込んでいた。実際に受け取った様式には、見出しと、記入のきまりが書いてあるだけで、データの行は一つもない。使う人が、自分で行を足していく前提の様式だった。
思い込みのままなら、「書き込む先が無い」で、何も起きずに終わっていた。実物に合わせ、見出しの下に、こちらから行を足して書き込む形に直した。設計は、見本ではなく、実物に合わせる。当たり前のようで、つい手元の想像で作ってしまう。
相手の変化を、こちらで吸収する
この作りにしてから、考え方が変わった。相手が変わる前提で、こちらを作る。
外の形式は、こちらの都合で止まってはくれない。列は増えるし、名前はゆれるし、様式は入れ替わる。それを「変えないでください」と頼むのは筋が悪い。相手は相手の理由で動く。こちらが、その変化を吸収できるように、しなやかに作っておく。
位置ではなく名前で探す。見本ではなく実物に合わせる。どちらも、相手の変化に、こちらが折れないための備えだった。翻訳機というのは、二つの世界の変化を、真ん中で受け止める役目でもある。次の回は、その書き戻しで、番号が数に化けて突き合わせが全滅した話を書く。