読者です 読者をやめる 読者になる 読者になる

ちょっとだけでもやるほうがやらないよりもましな作業はどういうものか?

メモ

コロコロでしのいでいたけど、さすがにほこりが目につくようになったので一か月ぶりに掃除機をかけながら考えた。

TwitterのタイムラインやFacebookのタイムラインで「X分間掃除を毎日やる」という人がいる。見習いたいなと思いつつも実行できず、一か月分のほこりを掃除機で吸っている。一方で、動機は素敵だけど手段としていまいちでは?:うつ通知サービス“うつっぽ”などのように、ちょっとでも世の中を良くしたいという気持ちはわかるけど「慎重にいきましょう。」すなわち、「とりあえずやってみるはやめましょう。」と言ってしまう場合もある。この違いはなんだろうか?

トランザクション処理と漸進的な処理

一つは作業の性質の違い。多くの作業は複数の部分作業を実施することで、作業目的を達成する。このとき、作業はトランザクション処理と漸進的な処理(線型的な処理、非トランザクション処理)に分けることができる。

  • トランザクション処理:独立の部分作業に分けることができない処理。すべての部分作業を終了しなければ作業として意味がない処理。途中の部分作業が終了できない場合は、作業開始時点の状態まで復旧し、1から作業を始めなければいけない。銀行の取引業務などが典型例。(参考:ja.wikipedia:トランザクション処理
  • 漸進的処理:独立の部分作業に分けることができる処理。ほとんどの場合はどの部分作業から始めても良いし、すべての部分作業を一気に終えなくても良い。たとえば、掃除など。

トランザクション処理の場合は「ちょっとだけやる」がそもそもできない場合がある。各種実験などはトランザクション処理の場合が多い。実験を始めたら、終わるまで止められない。プロセス間が十分に独立するようにデザインされた実験でなければ、最初のプロセスだけやって、残りは一週間後にやるなんてことはできない。トランザクション処理で「ちょっとだけやる」を実現するためには、1作業を十分に短く設計し、部分作業ごとで一区切りでなく、作業全体を何回行うかという形で一区切りつけられるようにしないといけない。

一方で、漸進的処理の場合は、部分作業をちょっとずつやっても大丈夫。掃除は漸進的処理なので、「X分間掃除を毎日やる」というのは、「家をきれいに保つ」という目的の中で、掃除する範囲を独立に分割し、部分掃除をやっていくことができる。

復旧が容易な処理とそうでない処理

プライバシー侵害が懸念されるサービスについて「とりあえずやってみよう」を止めなければいけないのは、悪影響がでたときの復旧が簡単ではないため。どういう作業が復旧が難しいかと言えば、うまく分割できていないけど次の条件が思い浮かぶ。

  • 利害関係者が多い場合
  • 行為結果の影響範囲が広い場合
  • 1復旧作業あたりの復旧コストが高い場合

そもそも、利害関係者が多いと利害関係者間の調整が難しくなるので復旧が難しい。利害関係者が少ないとしても、行為による影響範囲が広い場合は、復旧作業の量の問題で復旧が難しくなる。そして、作業範囲が狭いとしても、1復旧作業当たりのコストが高ければ、復旧作業は難しくなる。

逆に言えば、以下のようなことならば「とりあえずやってみよう」は悪くない。

  • 利害関係者が自分ひとり
  • 行為の結果の影響は自分とその周囲だけ
  • 1復旧作業あたりのコストが許容範囲

正解(ベストプラクティス)がわかっている作業とそうでない作業

上述の復旧が容易な処理とそうでない処理と多少かぶっているが、悪影響がでなければ復旧を考える必要は少ない。なので、悪影響がでない(許容範囲にできる)方法がわかっている作業ならば、その作業をちょっとだけやってみたり、とりあえずやってみても良い。家事全般はだいたい悪影響がでない(許容範囲にできる)方法、すなわちベストプラクティスがわかっているので、ちょっとだけやってみたり、とりあえずやってみるのが適している。たとえば、初めての料理の際に感覚に従うのではなく、公表されている料理レシピどおりに作ってみるとか、初めての土地に行くときに旅行ガイドブックどおりに行ってみるとか。

一方で、正解(ベストプラクティス)がわかっていない作業の場合は先の観点である復旧が容易な処理とそうでない処理なのかを検討しないといけない。

おわりに

「〜ができないならば意味ない。だから、**をやってもしょうがない」と思うときに、それは本当にそうなのかを考えてみるのは良いかも。この理由が正当なのは、当該作業がトランザクション処理の場合のみ。漸進的処理ならば、作業コストと利益を勘案して、ちょっとでもやった方が目的に近づけるならばやった方が良い。

「まずは、やってみることが必要です。理屈なんて後で考えればよい。やってみましょう。」という言葉に「うん、そうだ!やってみよう」と思った時には、一応、当該作業は、復旧が容易な処理とそうでない処理のどちらだろうかと考えてみた方が良い。そして、復旧が難しい処理の場合は、正解(ベストプラクティス)がわかっている作業とそうでない作業のどちらだろうかと考えてみるのも有用だと思う。

選挙前にいろいろな公約や成果がアナウンスされるこのごろ。どの話が「ちょっとだけでもやったことに意味がある」のかを考えないといけないなと、このエントリーを書きながら思った。