Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

集中力の運用/1

これまでのあらすじ

今こうして集中力を「運用」することについて考えているのは、僕自身が集中力の運用に秀でていないからだ。 一日あたりの集中力には限りがあって、これを賢く配分しなければすぐれた仕事を成し遂げられない。 仕事には集中力を注ぐべきものとあまり注ぐ必要がないものとがある。 これらの仕事にしかるべき量の集中力を注ぎ、過不足がないようにしなければならない。 僕はこれをシステマチックに行おうと画策しており、これを集中力の運用と呼びたいと思う。

お世辞にも自分の仕事っぷりは集中力をうまく運用できているとはいえない。 対価の小さな目標、たとえばそれほど重要でない箇所のリファクタリングといった目標にエネルギーを注ぎすぎて、本来エネルギーを注ぐべきであった目標に到達する頃にはエネルギーを使い果たしてしまっている。 定時になる頃にはもう燃え尽きたも同然で、本来やるつもりだった仕事が埃を被っているのに失望しながら家に帰らなければならないのだ。 帰宅してもくたびれている事に変わりはない。嫌な思い出は忘れたいので他の気晴らしをして夜の帳をやり過ごす。これが毎日続く。 そういったつらい輪廻を経て、集中力の運用に本腰を入れる覚悟を決めたのだ。仕事にコントロールと創造性とを取り戻すのがミッションだ

しあわせなソフトウェア開発人生はコントロールと創造性の賜物だ。この両者は、単なるがむしゃらなハードワークによっては持続できない。 そのための一歩が集中力の運用にかかっている。一体どうやって集中力を運用するのか?

地図とともに作業する

仕事を構成するのは小さな作業で、それ単独では価値を持たない。この作業をどこで開始するか・どこでやめるか・作業の集合をいかに方向付けるかが関心事だ。これができていれば集中力を大幅に節約できるからだ。 そのためにはまず仕事と作業とを認識の中に繋ぎ止めていなければならない。この鎖が外れると、何のために作業しているのか・次に行うべき作業は何なのか・どう作業をすれば良いかがわからなくなってしまう。 人間の記憶力には限度があり、またソフトウェア開発は脳のあちこちに意識を移動させながら行わなければならない難儀な活動でもある。したがって仕事と作業との認識をいつも抱えておくのは難しい。 できるだけ復元しやすい形で作業をどこかに保存する方法を見付けなくてはならない。

自分がこれまでに保存に使ってきた手段を眺めてみる。

まずマシンの上にテキストファイルを保存してみた。単純に箇条書きにしたテキストがずらっと並んでおり、リンクも張ることができる。そして欠点もある。 書くのに夢中になってしまって集中力を消費してしまうことと、いくらでも書けるのでまとめる努力をしなくなるということだ。とにかくエディタの操作で意識があちこちに飛び火してしまうのであまり嬉しくなかった。 しかもファイルを開いていないうちは内容を確認できないのでなめらかな進捗状況の確認ができない。 ちなみにタスク管理ツールも同様だ。イカしたツールは集中力を無駄遣いしがちな人間にはオモシロすぎるので没。

リーガルパッドは大きめのメモ帳のようなものだ。定型サイズの紙に横書きの罫線が入っていて短辺綴じになっている。ページは切り離すことができるので1日で1ページを使う。 残った仕事と作業とをその日の終わりに次のページに書き写し、翌日に備えていた*1。 この方式の欠点は情報の紛失にある。既に完了した作業の記述が破棄されるので何をしていたのかが分からなくなってしまうのだ。作業を消さなければ余白が足りなくなり書き写す量も増える。これは嬉しくない。 二重線だらけになったリーガルパッドを眺めるのは苦痛だ。

付箋はやや大きめのものを使う。普通の文字で2行ほど書ける付箋に作業を書きこみ、仕事別に集めて配置しておくのだ。センテンスが強制的に付箋のサイズまでに制限されるから作業の粒度をある程度揃えられる。これは予期しないメリットだった。 しかも不必要になったら捨てればよいし、内容に変更があったら書き直して貼ればよい。*2 今はこの方式で乗り切るつもりでいる。不満な点は貼り付けるという動作が要ることだ。僕は普段から万年筆を使っているので付箋もこれで書いたのを貼り付けなければならない。インクが乾ききらないうちに付箋を上から押さえると悲惨な状態になってしまう。 仕方がないのでジェットストリームを使うことも検討している。ただしあまり楽しくないと一気に集中力を失ってしまうのが僕の悪い所だ。

いくつかの保存手段を並べてみた。ここからいくつかの知恵を見て取ることができる。

まず複雑な操作をしてはいけないこと。複雑な操作が介入するとその事で頭がいっぱいになってしまう。すると肝心の作業についての記述がおろそかになってしまう。すぐ書けていつでも見られるのが重要だ。 しかも複雑な操作は集中力を消費するのでそもそも損だ。考えもせずに処理できるのが一番良い。この文章もWindowsのメモ帳で作成している。

次にほどほどに楽しいこと。ほどほどというのは集中力を台無しにするほどつまらないものであってはならない一方で集中力を湯水のように使ってしまうほど面白すぎてもいけないということだ。 ゲーミフィケーションも行きすぎればただのゲームになってしまう。ゲームは手段であって目的ではない。本来の仕事を忘れないことが大事だ。

そして作業にどのくらいの時間がかかるかを把握できること。これは作業の並べ替えのために必要になる情報だ。 例えば30分の空き時間にどの作業を選んだらよいか分からないとき、自分は小さなタスクを30分に引き伸ばして時間と集中力を無駄にするか、 大きなタスクを30分でやろうとして中途半端なタスクがその後の予定をめちゃめちゃにするのを目の当たりにするかの、いずれかに突き進んでしまう。

時間を予測するための条件は、具体的かつ単純に作業を記述できているかどうかにかかっている。「リファクタリングする」は単純だが具体性に欠けるので作業に要する時間は想像もつかない。 その一方で複雑な作業をいくら具体的に記述したとしても作業に要する時間は分からない。それは書いた本人も作業のことがよく分かっていない証拠だ。とりあえず思い付いたままに書いてみたというだけの状態のこともある。 この場合は一度仕事や作業を分割し直して、適切な形に落とし込むべきだ。そうすれば作業の内容が想像できるようになるし、より柔軟な進め方を思い付くかもしれない。作業についてよく分かっていれば集中力を無駄に消耗する愚を回避しやすくする。

集中力がなくなってきたので今日はここまでにしておこう。そのうちまた集中力を運用する方法について考えてみたいと思う。

*1:ガベージコレクションだ!

*2:イミュータブルで嬉しいね。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?