fastapple's blog

時系列関係なく、情報を追記・分割・統合などします。ブログに記載の内容のうち、引用ではなく、私自身が記載している文章・コードなどについては、自由にご利用ください。

変更管理について


変更管理というのは、文字通り変更を管理することであり、普段の日常生活でもしょっちゅう必要になることだ。第一感としては、とても面倒くさいイメージがある。

方法論はいろいろあるが、例えば、最近はサーバーの構築の自動化にchefなどのツールを使うという流れ、その後、さらにimmutable infrastructureということで、disposable(使い捨て可能)な構築というのも話題になっている。自分は全然詳しくはないが、このように変更をどう(なるべく楽に)管理するかというのは、昔からの普遍的なテーマであるといえる。もちろん、自動化と変更管理はイコールではないのだが、密接な関係があると思う。

1.どのように管理するか。
早速、よくある例と、どうやって管理すればいいか?というのを書いていく。

例:友人の電話番号が変更になったので、口頭で確認し、メモをとっていたとする。これをメモAとしよう。しかし、それを携帯の電話帳へ記録していなかった。そのうち友人は再度電話番号を変更したため、またそれを口頭で確認しメモをとった。これをメモBとしよう。しばらく経って、友人に電話をかけようとした際、メモが(メモA、メモBの)2つ見つかり、どちらが正しいのか、困惑した。

この例では、ありがちな、同じ内容が書いてあるものが複数存在する というパターンが発生している。これを解決する手段として思いつくのは、データ(この場合はメモ)を同じ場所で管理する。という方法だ。これは、メモがアップデートされることが前提で、なおかつメモはただひとつでないといけない。これをone-updateによる管理といま名付けよう。
one-updateによる管理の長所は、もちろん最新のものが明確であることだが、短所もある。それは、一つしかないので、それを無くすと何もわからなくなるリスクがあることだ。これは結構な短所である。さらなる短所は、例えば友人の電話番号が変わったとき、そのupdateすべきメモを持ちあるいているだろうか?常に持っていると言えるのは、ノストラダムス(古い)か何かくらいである。

そこで結局、メモが量産されるのは仕方がないのだと割り切る方法がある。この場合、メモA、メモBに聞いた日の日付を書いておけばよかった。日付が書いてあれば、メモBのほうが日付が新しいので、後で2つ出てきてもメモBが正しいとわかる。今回のように「最新が正しい」という法則を適用してよいケースは多々ある。この、「最新が正しい」という考え方を、ROLU(rely on last update)ロールーと名付けよう。古いメモは役にたたないならさっさと捨ててしまうことだ。ROLUと、管理できるときにone-updateを併用することで、状態を正しく把握することが可能になる。この考え方は、実は、同期の考え方そのものである。つまり、最新の状態を正として、複数の場所にある情報を、更新するわけだ。

上記のRORUの例では、電話番号とともにその日の日付をメモすればOK.とした訳だが、なんかこれだと当たり前っぽい。今回書きたいのは、日付が不要なケースもあるということだ。

例えば、ありがちなケースは、漫画の巻数を何巻まで買ったっけ?というのをスマホにメモしていたとする。しかし、更新が滞っており、久々に確認すると、それがホントに正しいのか疑わしくなってきた。そこで、あなたは立ち読み可能な本屋で、実際に本を読んでみて、自分が読んだ本が何巻までなのかをメモしてかえった。

その時、そのメモに日付を書く必要はない。なぜなら、そのメモと、スマホの巻数を突き合わせたとき、明らかに(巻数が)新しいほうが正しいとわかるからだ。つまり、
ROLUの原則は、
1.(間違いがない前提では)常に最新の日付のものが正しいといえる場合がある。
2.さらに記憶されるべきものが順序性をもつ場合(例えば漫画の巻数)は、日付すら書き留める必要はない。

一元化で荷が重くなっている人は、ROLUの原則を適用できれば、必ずしもone-updateはいらないということが、参考になればと思う。

因みに、一元管理(one-update)だろうと、ROLUだろうと、つきまとう別の問題がある。それは、この情報はそもそも本当に正しいのか?ということだ。物事には、勝手に変更されるものというがあるため、自分のあずかり知らぬところで変更されている可能性もあるわけだ。
たとえば、漫画の巻数だって、どんどん最新の巻が発売されるので、常にそれをトラッキングしておかなければならないような感情を覚える。もちろん、これはあまり健康的ではない。例えば、玄関をでて、鍵を何度も確認しに帰るようであれば、それは強迫性障害(OCD)かもしれないが、多かれ少なかれ、そういう疑いを持つことがある。変更管理については、それに対処する方法がいくつかあるので、紹介したい。

1.無視する
これは侮れない方法で、強迫性障害では、実際にそのような治療も行われるらしい。これは、自分が確認しないとマズイと考えていることをあえて確認しないことで、実際に発生する損害の大きさを「なんだ、大したことないじゃん」と考え直すことによるトレーニングだ。起こってから考えても割りとなんとかなる問題も世の中には多くあるので、最終的には、このような気持ちをもっておくことが大事だ。

2.定期的なチェック
例えば漫画の巻数なら、最新が出ているかどうか、3ヶ月に一回程度チェックしていれば十分じゃないかとかんがえるなら、定期チェック用のアプリをスマホなどにいれて、それにチェックを任せることだ。肝心なのは、チェック間隔がきたら、それを通常のタスクに移すことと、チェック間隔がくるまでは気にしないようにすることだ。なお、定期的なチェックには、"TODO管理タイマー"というのが、インターバルを細かく定義できる。Androidユーザーにはオススメ。

他にも色々方法はあるかもしれないが、一応こんなところだ。定期的なチェックまではしなくていい場合って結構ありそうなんで、改善できそうなポイントでもある。