エンジニアがコーディングする価値
いつの頃から、積極的にコーディング(プログラミング)しなくなりました。
なんで自分でコーディングするのがイヤになってきたか思い出した。やはり、自分のソースが他のシステムとリプレースされるのを、自分がその現場から離れて体験すると「あれだけ頑張ったのに捨てられたかー」となったなぁ。
— なかむぅ (@n4k4moo) April 10, 2017
プログラミングというのは色々なレベル感があります。
レベル1:教科書レベルにコーディングして動くこと。
レベル2:仕様書通りにプログラミングできること。
レベル3:適切なリファクタリングや、可読性が高く保守性の高い、性能面でも最善を尽くすプログラミングができること。
設計まわりの話を混ぜると複雑になるので、プログラミングの話に統一しました。
未経験者が動くプログラムが書けるようになるのがレベル1。新卒が入社して研修が終わったくらいの段階です。
レベル2、社会人プログラマーとして必要最低限のレベルです。仕様書に記載された通りにプログラミングできること。一般的なプログラマー、シニアプログラマーみたいな人も大体はこのレベルです。
レベル3、効率の良いプログラミングができ、性能面の考慮、保守性を高くして今後の改修に備えることができる、最上級です。このうち、いくつかはできるという人はいますが、全部できる人はなかなかいません。
問題はこのレベル3で、仮にレベル3までいったとしても、一つの言語が流行し続けることってなかなかありません。フレームワークも変わってきたりするので、常に変化を受け入れなければいけません。言語による違いも勉強していく必要があります。
そして、苦労して作った傑作だったとしても、未来永劫使われることはありません。外部委託の納品物はおおむね5年でハード等の保守期限が来て、ハードを含めてソフトウェアも作り直してまるっとリプレースするケースが多々あります。ハードのリプレースでなくても、会社の環境変化によりソフトウェアが変わることもあります。そんな経験を今までしてきたので、どうもコーディングする意欲が弱くなってきたんです。
ただ、設計書は使いまわせますし、残るものです。リプレースする際も、必ず参考にします。なんなら、そのまま使いまわせる可能性もあります。こうして、優秀なエンジニアたちは少しずつ、設計寄りになっていくのでは、と思っています。