攻撃的な仕事と、防御的な仕事に関しておもうこと

Brian W. Fitzpatrick,Ben Collins-Sussman オライリージャパン 2013-07-20
売り上げランキング : 27544
by ヨメレバ

p135 エンジニアとしては、何よりもプロダクトのローンチにエネルギーを注ぐべきだ。

リファクタリングなどに時間をかけたいと思うかもしれないが、半分以上の時間をこうした防御的な仕事に使っても全く評価されないし、何も(政治的に)重要なことをしない人という面倒な位置づけにされてしまう。

最近の自分におきかえると、レガシーコードにテストを書いたり、積極的なリファクタリングをしたりしているので、防御的な仕事の比率が多い。

やばい、このままでは何も(政治的に)重要なことをしない人とされてしまう。

ドキリとすると同時に、そうじゃないだろ。とも思うわけです。

立場と、これまで。

重要なのは、プロダクトへの関わり方だとおもっていて、

  • ゼロベースのプロダクトに参加しているのか
  • 途中から参加しているのか(たとえばバージョン2から参加)

では、攻撃・防御の比率が変わってきます。

僕自身の場合は、入社した時からいくつかのプロダクトがすでにあって、バージョンアップのタイミングでプロダクトに関わることがほとんどでした。入社1年目から現在の知見があれば色んな取り組み方ができたとおもうのですが、初めて書くプログラムは勇み足で、戦場であればすぐ死んでしまうくらい攻撃的だったわけです。そのようにして積み上げた技術的負債を5年後に"自分で"払うことなど想像することもなくヨッシャウゴイタナゼカは進むわけです。

・・・・

それから幾度も辛酸、苦虫、苦渋を味わい、「目の前のバグを潰して、背中にバグをくっつける日々を終わらせるためにはどうすればよいのか?」という命題に行きつきました。 それからは、TDD、リファクタリング、XP、アジャイルなど試せるものは何でも試し、防御的な仕事を少しずつできるようになり、今に至るという感じです。

防御的な仕事ばかりしてはダメ。攻撃的な仕事ばかりと同じくらい

  1. 攻撃的な仕事ばかりしているとツケが回ってくる。
  2. 防御的な仕事ばかりしていると評価が上がりにくい。

の定理から導かれる答えは、

攻撃・防御というのは、交互に繰り返してこそ効果的だということ。

なかなかエンジニアというのはむずかしい仕事...。

TeamGeekのこの一節に、ガツンと頭を殴られた感じがした(プロダクトコード書けや的な)のだけれど、立場とか状況によっては防御的な仕事に比重をおくこともたいせつ。

リスクの先にリターンがある

同書に、リスクを取らないと大きなリターンも得られないという考え方もあって、これはたしかにそうであると。 守っているばかりじゃ収穫が得られない。クマやトラと出会うリスクがあっても森にはいらないとウサギは見つからない。

攻撃にせよ、防御にせよ、エンジニアとしてのスキルアップは必須なので、攻め時に攻められるように、守るべき時に守れるように腕を上げていこうということで〆。

Brian W. Fitzpatrick,Ben Collins-Sussman オライリージャパン 2013-07-20
売り上げランキング : 27544
by ヨメレバ