Diary over Finite Fields

515ひかるの日記と雑文

「コードを書けるだけで幸せ」

という発言をたまに聞く。だいたい SIer 出身とかで人に実装作業を投げるために Excel に設計書だけおこしていた人たちがよく言っている。その人たちの過去の全てを知っているわけではないが、ネット上の様々な噂や過去のわりと壮絶なエピソードを聞くと、そういう発言に至るのは理解できなくはない。

だけど、聞くたびに違和感を覚える。

あたりまえだけど*1、エンジニアの仕事はコードを書くことだけではない。ウォータフォール開発をしようがアジャイル開発をしようが、データサイエンティストとしてレポーティングしようが、ドキュメントを書くし他者を説得したり妥協点を模索したりする。その仕事の様々な工程のごくごく一部に「コードを書く」、言い換えればソフトウェアなどを実装するという工程も含まれているにすぎない。その割合がいくばくのものか、というのはプロのエンジニアであればご存じだろう*2

コードを書く時間が0かそうでないかで大差がないとかそんなことを言いたいわけではもちろんない。なんとなく一切コードを書かない日が何日も続いたら、わたしもそれなりに不快な毎日を過ごす気がする。なので0とそれ以外をささいな差であるということはわたしにはできない。

わたしが言いたいのは、「コードを書く」ことをやたらと特別視するのはおかしいのではないかということだ。あんまり直接的に言うとカドが立つが、(観測範囲と主観に基づいて言葉を選ばずに書くと)良いコードを書く気がない人、コードにこだわりがない人たちに限って、コードを書くことをやけに神聖視し、そこに喜びを感じている気がする。

コーディングは確かに楽しい、かもしれない。しかしわたしは自分しか使わない、雑なコードでうわべだけを書いているから楽しいのだと思っている。

実際の業務では

  • 既存のクラスとの協調や実装が無駄な多重化をしないように脳内のスタックに詰め込んだ既存の関数を目の前のコードに適用していく
  • 各種API連携のため様々なドキュメント(たいていは英語)を読み込む
  • ドキュメントが信用できない/存在しないのでREPLで叩いて挙動を推測する

といった工程が入ってくる。楽しさというより大変さのほうが勝るし、帰宅するころにはヘトヘトになっている。少なくともわたしは。

だから彼らの「コードが書けるだけで幸せだ」というのは(わたしが家で書いているような)ゆるふわなコードを書いてお金がもらえるから幸せだ、という意味にわたしには聞こえる。

さらに言えば、ゆるふわなコードで許されているのは要するにその仕事のコアバリューがコード(ひいてはソフトウェア、プロダクト)ではないからだ。そのプロジェクトで稼いでいる(お金が発生している)コアバリューは別にある。業務においては誰がどんなコードを書くかなんかよりも、コアバリューの質を担保することの方がはるかに大切な仕事だ。極端なことを言えば、コードを書かずに安く早く済ませる方法があるならそちらを利用するべきだ。

そんな業務に従事している人が「コードを書けるだけで幸せだ」と言っているのを聞くと、そもそも自分の業務内容についてちゃんと把握できているのだろうかという疑念を持つことがある。あなたが「コードを書く」かどうかはその業務の成功にも失敗にもあまり寄与しないのだが。

なんか、ただの悪口みたいになってしまった。いや、実際悪口なのだろう。

*1:このブログは当たり前の話しかしない。

*2:わたしの感覚では業務時間のうち半分もコードを書いた日は書きすぎである。だいたい4分の1、せいぜい3分の1くらいだろうか。