とあるIT屋の独白

ITや経営について主に書きます

リファクタリングについて思うところ

かなりのシステムの現場において、コードの保守性が低いといったことは課題に上がることが多いように思います。私の経験してきた現場の多くは、この保守性の低さについてどうしようかと、頭を悩ませてたような雰囲気はあります。
そういう時に、よく挙がる施策としてはリファクタリングです。リファクタリングのイメージはざっくり下記の記事にあって、クラスやメソッドなどを機能拡張等を行いやすいよう、整理するものになります。

style.biglobe.co.jp


リファクタリングの必要性を認識している現場は多いと思いますが、今やってる開発と、どちらを優先させるかという判断に悩まされることはあるでしょう。下記の記事で指摘されているように、リファクタリングを行うことが直接利益を生み出すわけではなかったり、最悪の時は作り直した方が良いという判断も出来たりはするので、コストをかけてやるかという話にはなりがちかなと思います。

nagise.hatenablog.jp


個人的には以下の記事で触れられているような、保守性が経営指標にどのように効いてくるのか、可視化するような考え方は良いなと思います。自分達が作っているものが、経営に対してどのように影響するのか、その観点無しでは中々突っ込んだ議論にはならない気がします。ちゃんとサービスを育てていくという方針であれば、ビジネスとシステム開発の関連を紐づけるのは、いつかは通らなければいけない道かなと感じます。

zenn.dev


ビジネスとシステム開発の関連という観点でいくと、やはりドメインの整理は避けて通れないと思います。ドメインの整理を行わないまま、リファクタリングを行うのは意味が無いとは言わないまでも、片手落ち感は個人的に感じてしまいます。今の時代、ビジネスの状況は刻々と変わっていくので、システムをどう追従させるかという観点は重要と考えています。
現実世界のビジネスはシンプルで無いことも多いです。ビジネスが複雑になっていく以上は、システムも複雑になってしまうことは致し方ないことではあります。ただ、ビジネスの複雑さに対してシステム側で手を打たないというのは、やはり違うかなと個人的に感じます。以下の記事にあるような複雑さにどう対応するか、その観点でリファクタリングをどう進めるか考えるのも大事かなと思います。

sg.wantedly.com