システムのリニューアルについて

はてなは「絶対すべきでないこと」をやらかしたのか?



上のエントリーはWebサービスに関するちょっとマニアックな内容なので、興味のない方は適当に端折ってご覧下さい。要点は、提供しているサービスがそれなりの年数を経て古くなってきた時、リニューアルをする方法論についての考察です。



おちゃのこネットもサービスの提供開始は2004年の夏前。もう丸8年が経とうとしています(!)。8年前とは色んな環境が変化してきており、そもそも当初は現在のようなご利用店舗数もアクセス数も想定していなかった訳ですから、低レベルなシステムでした。どんどん追加で手を入れていますので、コードは肥大して、スパゲティ化。我々も「これはさすがに全部新しく書き直すか?」という気になりましてね。一度は全面リニューアルに手を付けました。

でもやっぱり実務的にはそれは困難なんですね。何と言っても、日々新しい機能追加や改善の要望に応え続けていかねばならず、手を止めるわけにはいきません。そうなると、元々少ないリソースをやり繰りしていますので、いつまで経っても新システムを旧システムに追いつかせることが出来ないんですね。



そして大事なポイントは、新システムに置き換えたとして、バグが多数発生する可能性があるという点です。旧システムは永年に渡って多数のユーザーさんにご利用頂いているため、枯れたシステムになっています。この時間と労力が半端ないんですね。これは大変貴重な資産とも言えますので、これを引き換えにしても価値があると思えるだけの新しい効果が得られないと、それはやはり間違った判断だということになってしまいます。



ですので、この話の結論は「システムの全面リニューアルには大きな犠牲が伴うので、その必要性をよく吟味しましょう」という、ま、普通の面白くない話です。プログラマーの諸君は目の前のレガシーコードに辟易する事もあるでしょうが、美しいコードのコンテストをしている訳でも何でもありませんので、現実とうまく折り合いを付けてもらう事が大事だと思います。得られた経験は、次に新サービスを構築する時に活かしましょう。