会社がリファクタリングに賛同してくれないたったひとつの理由

一定の工数をかけてリファクタリングをやったほうがいいことは(少なくとも筆者の観測範囲では)エンジニアリングのバックグラウンドがない人でもだいたい理解しています。 上司の無理解をあげつらっても仕方ありません。 リファクタリングの実施を渋る真の原因が工期や予算の問題であることはあまりないとおもいます。タイミングの問題である可能性はありますが。

必要であればコストをかけることにも同意してくれます。 「技術的負債は過去のビジネス上の選択によって生じたまさに負債なので、計画的に返済しましょう」っていえば、多くの経営者は理解を示してしてくれるでしょう。 本当に無理解ゆえにリファクタリングをしないのであれば技術的には死んでいる組織なので、エンジニアとして幸せになりたい場合は逃げ出したほうが賢明です。

というわけで、本稿ではそういう組織においてもなぜ「リファクタリングしましょう」という意見が受け入れられないかを解説します! 余談ですが、こういう話に触れるときは自分を棚上げすることが大事です。例に漏れず筆者も棚上げしていきますのでよろしくおねがいします。

結論: エンジニアのスキルが低い

ではさっそく結論ですが、リファクタリングの実施を主張するエンジニアにまともなリファクタリングを行う能力がない(と思われている)からです。 シンプルですね。

昔誰かが言った有名な言説に「スキルの低いエンジニアにいくら時間を与えても品質の低い成果物しかでてこないが、スキルの高いエンジニアは短い時間で品質の高い成果物を生み出すことができる」というものがあります。 理屈はこれと同じで、「リファクタリングしてきれいなコードにできるなら最初からリファクタリングがいらないコードを書いてくれ」というのがえらい人側の本音です。 よくないという事を理解しながら、多少のスピード感と偽りの安全を得るために既存のコードを踏襲しているようなエンジニアに形ばかりのリファクタリングをやらせても本質的な改善は得られないと思われているのです。

つよつよエンジニアは何も言わずに日頃からクソコードの拡大に抗い、用意された時間の中でリファクタリングをこっそり実施していたりします。 デキる人はいちいち「リファクタリングをやりましょう」とか言わずに勝手に改善しているのです。 上司はそういう人も見ているので、なおさら「リファクタリングしましょう」とかいうやつのことが信用ならないわけですね。

エンジニアのスキルが低いためにリファクタリングの必要が生まれているのに、その原因となったエンジニアたちの言葉を信じてリファクタリングにリソースを投下しようとはなかなか思ってもらえないのは当然だと思います。

まとめ

まずは日頃からリファクタリングがいらないコードを書けるように、上位の設計スキルを身に着けたり、ビジネスの理解を深めたりましょう。 高いスキルをもって、日頃から高品質なコードを書いていることがエンジニアとして信用を得るために最も重要です。

これができるようになったらリファクタリングはこっそり勝手にやりましょう。 ことさら必要性を主張してまとまった時間を確保してもらうのは本当にそれが必要になったときだけで十分です。

おまけ

筆者はいちおう上司とかテックリードとかそういう呼ばれ方をする立場で仕事をしたこともありますが、ビジネスサイドの偉い人はだいたい上に書いたような事を言います。

「こういうことをやったほうがいいんですよ」
『それはわかるけど、うちのエンジニアチームにそれやる能力ある?』
「...(^ω^ )」
『まずはエンジニアの育成頑張ろうや』
「わかる」

エンジニアリングの背景をもたずとも、仕事ができる人は冷静ですし、上司は上司なりに苦労しているようです。

share with:
この記事をTwitterで共有
この記事をはてなブックマークに追加