ども、@kimihom です。
"断捨離" を Wikipedia で読んでみると以下の記載がある。
不要な物を減らし、生活に調和をもたらそうとする思想のこと
プログラミングの素質がある人は、断捨離ができる人だと考えている。断捨離と、プログラミングの関連について記事としてまとめてみる。
断捨離できる・できない
断捨離にとって、最も大切なことは、「必要な物」とは何かという観点である。
「必要な物」が "今" なのか、"いつかの将来" なのかによって、断捨離ができるできないが大きく分かれてくる。"いつかの将来" 使う物が必要な物だと考えている場合、どんどんとその "いつかの将来" の物が増えていってしまい、断捨離を実現することはできない。
そして、欲しい物があった時に、今後のことを考えずに「今欲しいから買う」という判断だけで買ってしまう。その考え方では 今後もどんどんと物で溢れかえっていくだろう。
さらに断捨離ができない人は、せっかく 買った/もらった のに捨てるのはもったいない と考えがちである。全く使われずに部屋の奥地に放置され続けている方が もったいない と考えられるか。そして、そもそも 買わない という判断ができるかという点が重要になる。
プログラミングにおける断捨離マインド
ここでプログラミングのことを考えてみると、全く同じであると気づいた。プログラミングで「いつか使うであろうコード」をひとまず残し続け、コメントもひとまずたくさん残すと、途端にぐちゃぐちゃなシステムとなる。コードは Git で前の状態に戻すことが簡単にできるのに、時間をかけて書いたコードをそのまま消すのはもったいないという気持ちが働いてしまうわけだ。
優秀なプログラマーは、「少ないが美」と考える。書いたコードが少なければ少ないほど素晴らしい。それは、後で自分の思うように自由に変えることが簡単にできるし、問題が起こったとしてもすぐにその原因を見つけることができるからだ。だから、書いたコードを積極的に"捨てる"ことができるのである。
しかし、この捨てる判断がとても難しい。捨てていいか悪いかの判断が必要だからである。とりわけ複数人で管理している場合には、リスクを犯したくないから捨てる判断をするのではなく、追加することの判断をしてしまう。
それでも捨てる判断ができるプログラマーこそ、優秀なプログラマーである。
引っ越し
ところで今、私が引っ越しを控えていて、"いつかの将来"のための物は、ひたすら処分することに精を尽くしている。
とりわけ引っ越しでは、1年前の自分にとって必要だった物が、いつの間にか不要なものへと変わっていく。だからこそ家の物に関しては、より定期的に捨てるってことをしないといけない。捨てるってことを定期的にしていかないと、どんどんと住むスペースが狭くなってくる。以前は住むのに問題ない広さだったのに、そのうち狭いと感じるようになってしまう。それは、"いつかの将来" 使う物で溢れかえってしまっているからである。
住まいに関する YouTube で最近、「ミニマリスト」という言葉が人気のようだ。今必要な物だけを家に起くための工夫が紹介されている。その中で、プログラミングに似て感心した点がある。
彼らミニマリストは「しょっちゅう使わないけど必要な物」をいかに隠すかに情熱を注いでいる。カーテンの裏や、専用の物置スペース、そして空中に物を吊るすなど、様々な工夫を紹介している。まさにプログラミングでいう private なメソッドを定義しているかのように。
彼らミニマリストにとっての「物を床の上に直接置く」という行為と、プログラマーにとっての「いらないコードを消さない」という行為は、同じマインドのように感じる。つまり、彼らミニマリストは、プログラミングの才能がある。
終わりに
私も 断捨離 ミニマリストのテクニックを学び、よりコンパクトに住めるようにするための学習と実践をしてみよう。そしてプログラミングも同じマインドでし続けられるように意識していきたい。
部屋のシンプルさにこだわり続けた先に見えた真理。その悟りの境地を探していこうではないか。