[相談] 自分の生産性が低いと感じてしまいます
プログラマーの生産性が人によって100倍以上違う理由の動画を拝見したのですが、自分は今営業の会社でプログラマとして自社Webサービスの開発を一人で担当している(プログラマが私しか会社に在籍していない)のですが、自分自身の生産性が低い気がして悩んでいます。というのも、1日に書けるコード行数は多くて500行程度、少ない時は100行とかしか書けないんです。
時間配分は既存ソースコードの解析が20%、アルゴリズムの組み立てが40%、オブジェクト指向ベースでの設計が30%、残り10%程度が実際のコーディング時間といった感じです。
元々今担当しているプロジェクトのWebサービスが外注によって、使い回しのソースコードで組み立てられており、品質としては最悪といった具合でこっちにバトンタッチされた感じで、ソースコードの解析は必須なのと、フレームワーク無しのバニラPHPで9割以上が手続き型で書かれているので解析に時間がかかるのは否めないのですが、それでも生産性が低いのでは?と思ってしまいます。
自分しか理解できないソースコードを書くのはとても嫌で、抽象化して中身を見なくても別な人が追加開発できるように心がけており、汚いソースコードが気になってしまう性格も相まって開発スピードを下げている気がしています。やはり設計の部分である程度妥協するほうがいいのでしょうか?
読者の方から相談メールをいただきました。
同じような悩みを持っている方向けに回答内容を一部紹介します。
仕事の質をどう計測する?
生産性は、書いた行数だけではないので、どれだけ既存ソースコードの解析ができたか?
どれほど良いアルゴリズムの組み立てができたか?
どれほど良い設計ができたか?
も「生産性」に含まれます。
しかも、改修フェーズで1日に100行も書ければ、行数だけで測ったとしても十分な数です。
改修の場合、どこを変えればいいのかを解析するのに数日かかって、3行コードを追加したら完了みたいなことはいくらでもありますからね。
汚いコードと生産性の関係
読みにくいコードを解析するのも生産性の一部ですから、読みにくいコードを解析できてる時点で十分だと思います。読みにくいコードはいくら読んでもわからんってこともありえますからね。
潜在的な生産性を大切にしよう!
汚いソースコードをわかりやすいコードへと書き換えることは、今後の生産性につながります。コードが読みやすくなることで、あなたの生産性だけでなく、そのコードを読む他のエンジニアの生産性まで向上します。
汚いコードをその場しのぎの手軽な手段で改修するのはその改修一回の生産性は高いように見えても、潜在的な生産性(今後の改修時の生産性)まで含めると、あなたがやっている抽象化して整った構造のコードに書き換えるやりかたのほうが生産性はずっとずっと高いので、妥協などせず、そのような素晴らしい仕事を続けていけばいいと思います!