シンプルに考えるための習慣


シンプルとは、不要なものを混ぜておかないために継続するふるまい、なのだと思うんですね。継続しないといけないから難しい。一時的なシンプルさでよければ、それは部分最適化なのでたとえ感情的に切り捨てたとしてもそれでも成立するモノは成立するのだと。


でも、継続することが前提であれば不確定な将来を見据えた全体最適化を目指すことになるわけです。“不確定な”ことを含めた途端、“全体”の最適化を含めた途端、その両方を含めた途端、ややこしくなるわけです。で、結果、中途半端になってしまう。


といって、それで諦めるには惜しいのでシンプルに考える考え方をどうしたら身に着けられるかを考えるんです。だって、必要のないものまでを含めるにはそれをやる人も時間もリソースが足ら無すぎます。当たり前な話ですが、シンプルでない、複雑で込み合ったコトを考えるには手間もそれに関わる登場人物も多くなって、考える時間よりインターフェースを取り繕うまでの時間に多くのリソースを掛けてしまいすぎるのです。


だから、プロダクトオーナは一人が良いのだし、アーキテクトだって一人が良いのです。



身の回りを整理する
雑然とした机上を見るたびに、その人の頭はなんていいのだろうと思うのです。だって、ワタシから見て雑然としている状態なのにその人にとっては整然としているのでしょうから。とは言っても病的にコードを揃えたり、向きを合わせたりすることはないのですけどね。


整理をするのは、だいたいという曖昧さを持ってグルーピングしたり、ディレクトリを分けたり、そこに入れたりする状態をいいます。その整理で大事なことは、“不要になったら捨てる”ということを日常的にする、というアクティビティを取り込むのです。


机上はもちろん、引き出しも。気まぐれに、でも習慣的に身の周りの環境維持するためにモノを整理します。そして、PCのローカルディスクも。一時的な作業ファイルはローカルにおいて、コミットできるものだけ、文書として維持管理するもの、記録として残すもの以外はプロジェクトのファイルサーバに置かないのです。


ここで言う整理とは、目的に沿って“ゆるく”まとめることとその時点で今後もいらないと思ったものは“捨てる”ことまで、含めていいます。1週間後、1ヶ月後、1年後のワタシはワタシではないのです。ハッキリ言って、思い出す自信なんてありませんもの。将来の自分なんて誰にもわかりはしないのですから、迷うようなものは、捨てられるものは捨てておくのです。


登場人物を減らす
現実のステークホルダになる人も、これから討議する業務に関わるロールも少なければ少ない程シンプルな状態で思考を始められます。だって、インタフェースが最小化された状態ではじめられるのですから。


現実的には、たとえ登場人物が多いとしても、ふるまいによって何かを生成する人、変更する人、なくす人だけに絞ってから、課題について考えるようにするのです。それ以外の人やロールはあくまでもそれ自体をふるまう当事者ではないギャラリーにすぎませんから。


得てして、ギャラリーも含めて考えようとする人もいますが、それがあくまでも抜け漏れの観点であっても完璧に抜け漏れを防止するのは人がやっている以上無理だと思った方が気が楽です。だから、今の時点での、ふるまいに関わる人、ロールをシンプルに整理しておけば、仮に抜け漏れがあっても、シンプルに整理した後に足せばいいのでダメージは少ないです。それが、登場自分物全員を入れて整理した上で抜け漏れを見つけたときのショックを想像してみてください。ありえないですよね。そういうことです。


登場人物をシンプルに考えるには、CRUD図で考えればいいのです、と言えば、「なんだ、CRUDか。」って言うかもしれませんが、種を明かせばそんなものです。


整理するコトに魂を入れない
適当にやればいいんだ、と言っているわけではないです。ただ、整理する“コト”は長いようで短い人生の中で自分の前を通り過ぎていく課題の本の一つなのです。だから、その通り過ぎていく課題一つひとつに魂を入れて固執してしまうようになったら身が持たないし、先へ進みません。


だから、魂を入れない、と言っているのです。でも、一つひとつの課題をexitするにはその時の自分が自分に求めるcriteriaをきちんとクリアしようね、ということを忘れてはいけないし、それはそれできちとん成し遂げ無いといけないんです。そこのハードルを勝手に下げちゃうとホント、適当な仕事しかしないヤツになっちゃうので。


整理して不要なものは混入させない。その混入させないために関わる人だけに絞る。criteriaを越えたらexitする。これが出来るだけで随分シンプルに思考ができると思うんですがどうですか。