The King's Museum

ソフトウェアエンジニアのブログ。

道路を舗装する

仕事をしていると、アウトプットがあった日とそうでない日がある。

プログラマのアウトプットはコードだと思っている。 だから、コードが書けない日はアウトプットがなかったと感じる。 もちろん、コードの「量」だけがアウトプットだとは思っていない。 書いたコードの影響力とか、そのコードが与えたインパクトの大きさが大事だ。

ただ、やはりコードがアウトプットであることには変わりはないと思う。

コードを書かない日

コードを書かない日は何をしてるかというと、打ち合わせをしたり、メールをしたり、チケットにコメントを書いたり、開発環境を整えるのに苦労したりしている。 こういう日が増えてくると、目に見えるアウトプットが減っていき、仕事での達成感を失っていく。

ただ、少し見方を変えてみると違う結果が得られる。

事前に打ち合わせやメールで仕様を調整する。 インタフェースについて合意を取るためにチケットにコメントを書く。 開発環境の構築に時間を費やす。

一見、コードを書くことと関係なさそうに見えるこれらの仕事はうまくいっているのならコードを書くための準備運動だとみることもできる (ただ、「うまくいっているのなら」が重要なポイントで、意味のない打ち合わせなどは本当に何も生み出さないので注意)。 そう考えるとこれらの活動は、コード、すなわちアウトプットを直接生み出してないようにみえて、実はそれを生み出すための下地を整えているともいえる。

これを自分は「道路を舗装する」と呼んでいる。

アウトプットのために

快適にそして全速力でコーディングするために道路を舗装してるんだと思うと、打ち合わせやメール、めげそうになる Yak Shaving も少しだけポジティブに取り組むことができる。アウトプットを感じられなかった日も、自分は明日のために道路を舗装してたんだと思えばいくらか気分はましになる。

もちろん、もとから道路が舗装されていればベストだし、他人が舗装してくれることを期待してもよいだろう。 ただ、この職を続けていれば自分が舗装しなければならない場面に必ず遭遇するし、職位が上がると自分だけでなくチームのために道路を舗装しなければならないことも増えてくる。

そういう時に無駄に達成感をなくしてしまうのではなく、解釈を変えることで自分のモチベーションをうまく維持することができる。 そして、こういう自分を扱い方というものは身につけるべき一種のテクニックだなぁ感じた職業プログラマー10年目の春でした。

(c) The King's Museum