今でこそ「技術的負債」みたいなワードがプログラマーの共通認識として取り入れられているので、技術者同士であれば話が通りやすいんだけども、それでもいざ負債の返済をやろうという段になると「そんな暇はない」というような返事が返ってくることが多い。そもそもそういう話が通らない人もいて、そういう人は「いいからチャッチャと次の機能を書いて終わらせろよ」みたいな空気になりがちなようにおもう。
なぜ根本から間違っているのか
そもそも雑な仕事だと中規模程度のコードベースでも崩壊しかねない。雑がすぎるとそもそもプロジェクトは完成しないのだ。現実にヘーシャも、進行の雑がすぎた結果として進捗が終わり、生贄に捧げられた人も精神が終わり、関わる人はみな会社をやめてプロジェクトは永遠に宙ぶらりんですよみたいなものがゴロゴロ存在している。
また、丁寧であることが質に直結するというのも常にtrueではない。
当たり前だが質の高いものは、良いコンセプトがあり、腕の良いプログラマーがいて、その人が裁量を存分にふるえる状況と余裕(時間含む)があって完成する。どれかが欠けても無理ではないが、全部が欠けていてはまず不可能だろう。
また、完成しないものは質もクソもない。無だ。リリース時期をおさえなければいけないようなプロジェクトで、そのポイントに間に合わないようなものもビジネス的にいえば無だろう。
コードの品質と完成までの速度は相反する概念ではない。それらはサービスの質を支える要素で、お互いが混ざり合っている。
よく作られたコードは修正や機能の追加がしやすい。これはユーザビリティそのものに関わる問題だし、クソコードと比べると開発速度も早い。
提供の速度も重要で、競合のいないスペースにねじ込むというビジネス上の問題もあるが、例えば今から数年かけて最高のJavaScriptコードを書いたところで、数年後にはNodeのバージョンは10くらいあがり、ECMAScriptの仕様も膨れ上がっていることになるだろう。今現在の最高は数年後の最高ではない。それなりの開発速度でリリースポイントを作り、進行方向を調整していくことはコードの質を保つことと不可分だ。
続きを読む