アルゴリズム自体を書き換えて例外を増やさない

テレビのCMで有名なナビタイム(http://www.navitime.co.jp/)。
私も散歩をするときのルートなどをこちらで確認することもあります。
ビジネスマンには最短距離で現在地から目的地までの
徒歩や交通機関のルートを移動時間もあわせて教えてくれる便利なサイト。


サービスを始めた社長は大学で
ナビゲーションシステムのプログラムを研究していたそうです。
卒業後に親の家業を継ぎプログラム能力をいかしたシステム作りに専念。
だがいつしか以前自分が研究していた現在のナビタイムで提供する
ナビゲーション・サービスを提供する会社を親会社とは別に設立。


ナビゲーションシステムは、
この場合はどのように目的地に近づくか
判断をするアルゴリズムで動いています。
ナビゲーションシステムを構築するとき、
お客様から「ゴルフ場にいくのにこのルートはおかしいんじゃないの」
などクレームをいただくことがあるそうです。
そのようなときどう対処したかというと、
場当たり的な対応は避けたといいます。
「確かにお客様がいうのも一理ある。
じゃ、このゴルフ場にいくルートはお客様の指摘通りに。
つまり例外を設けることにしよう」
とはしなかったのです。
例外を是認すれば一見容易に対処できるようです。
ですが例外が増えればデータベース検索速度が遅滞し致命傷となります。


なので例外を設けずに、
アルゴリズム本体を書き換えて対応していく作業をしたそうです。
プログラムを組まれる方ならばその大変さはご理解いただけるでしょう。
ですがしっかりお客様がなぜそう考えたかをとらえて対処することで、
類似した指摘がおきなくなるエレガントなアルゴリズムに進化します。



なんでこのようなことを書いているかというと、
ワークをしていても「この人のお体はこのところは例外的」と
思いたくなることがあります。
百人のお客様がいれば百通り。
そうワークをしたてのときは思えてなりませんでした。
途方もなく覚えるべき例外が折り重なる。
例外的事項をひとつふたつ設けると、
いつの間にやらその量が膨れ上がる。


そのようなときはコアになる要件が
十分に抽出できておらずつらい時期。


それを乗り越えていくと徐々に例外と思えていたが少なくなる。
先ほどのナビタイムのシステム設計の変更のように、
例外を増やさずアルゴリズムの改善に力を注いでいけるようになる。


そうなると膨大な例外事項に振り回されず、
シンプルかつ汎用性あるアルゴリズムを走らせていけるようになる。


不思議とそうなると成果が目の前で見えるのに
やっている本人がこんなシンプルなことをして
改善しだすものだなぁと思う。
やっていることが以前より理にかなっているから当然の結果ですが。


おかげで私も最近シンプルに徹しだしているという自覚がある。



一年前に肋骨部分を解くためにさまざまな文献をあたり試行錯誤した。
アレルギー症状を持っている人や呼吸器が弱かったり心臓に負担がかかる
人にはここの対処が必須でしたもので。
でも肋骨や鎖骨は折れやすいだけでなく
痛みも強く深部まではなかなか解けなかった。
ですが今はシンプルにさっさと緩めることができる。
リリースのときの痛みはあるが、
先ほどまで肋骨が鬼のように動かなかったのが
ぐぐっぐっにゅと押して動くようになるのは感動的。
それで呼吸の質があがり心臓の締め付けがゆるくなる。
これなどはかつては複雑なテクニックを多用して対処したが、
今は通常の筋膜リリースなどで対応できています。
ほかのワークテクニックでも同様なことがいろいろとおきています。



面倒がらず基礎に立ち返りアルゴリズムの書き換えを繰り返すかが、
後々にきいてくるのだと思う。
人の心身に対しての発想の転換や見方の深化に比例して、
より技術には磨きがかかるのかもしれない。