開発の再生
リファクタリングのメリットは明らか
ここまで、弥生がとった打ち手をお話ししてきましたが、これは経営としては難しい判断でした。なぜならば、これらの打ち手は中長期的には絶対に必要なものですが、短期的に見れば、コストを増大させ、また実現できる機能(スコープ)を減らすことにつながりかねないからです。冒頭でお話しした通り、純粋に経営的観点で、かつ短期的視野で考えれば、こういった打ち手は「また今度」にしたいものです。その方が低いコストで、とりあえず今期をしのぐことができます。
ただ、それは問題の単なる先送りに過ぎません。そして、その先送りをいつまでも続けるわけにはいきません。「もぐら叩き」によるバグ取りで、結果的にはお客様に提供できる品質は確保されていましたが、それは当然というよりも幸運によるもの。このまま単調な保守を続けてもどこにも行かないというエンジニアの疲弊も臨界点に達しつつありました。
経営としてどちらを取るか。「とりあえず今年は」で問題を(また)先送りするか、「開発の再生」を図り将来に備えるのか。もうお分かりの通り、弥生は後者を選びました。この判断ができたのは開発の現場出身者ならではだと感じています。もっとも、前任者もどこかのタイミングで、開発の在り方を見直すことの必要性は感じていたのです。だからこそ、外部からエンジニア出身者を招聘するという大胆な判断があったのでしょう。
さて、ここまでの打ち手はいわゆる定石ですが、次の一手は耳慣れない方もいらっしゃるかもしれません。それはリファクタリングです。Wikipediaによれば、リファクタリングとは、「プログラムの外部から見た動作を変えずにソースコードの内部構造を整理すること」。
少し前までの開発は「動いているものには触るな」が常識でした。動いているコードに下手に手を加えると想定しない不具合(いわゆるデグレード)を生みがちという先達の知恵です。一方で、この常識によって、必ずしも最適でないコードが温存されるというコード疲労を生んでいることも事実。
実は、このリファクタリングを提案したのは私ではありません。提案者であり、推進者は私が外部から招聘した開発のヘッド。今だから告白しますが、私は当初リファクタリングには懐疑的でした。私も前述の常識を疑っていませんでしたから。しかし、実際にリファクタリングを始めてみると、そのメリットは明らかでした。
今では私も「動いているものには触るな」の常識は必ずしも正解ではないと考えています。従前の常識が変わってきた背景には、開発環境/開発ツールの発展があります。今では各種のツールを利用し、コードに手を加えた前と後とでの挙動の違いをシステマティックにテストすることが可能になりました。開発の進め方が進化した以上、常識も進化すべきではないでしょうか。
今回、リファクタリングについて簡単にお話させて頂きましたが、このリファクタリングは私が想像した以上に、非常に大きい効果をもたらすことになります。次回は、リファクタリングの意味を中心にお話させて頂きたいと思います。
岡本浩一郎
1969年3月、横浜生まれの横浜育ち。
野村総合研究所、ボストン コンサルティング グループを経て、2000年6月にコンサルティング会社リアルソリューションズを起業。
2008年4月、弥生株式会社 代表取締役社長に就任。「かんたん、やさしい」そして「あんしん」な弥生シリーズを広めるべく、全国行脚中。
ブログは弥生社長の愚直な実践。Twitterはkayokamoto。
この連載の記事
- 第6回
ビジネス
弥生がWindows Azureを選んだわけ - 第5回
ビジネス
なぜ弥生はSaaSに取り組むのか? - 第4回
ビジネス
リファクタリング 最大の成果は「自信」を勝ち得たこと - 第2回
ビジネス
言うのは簡単、やるのは大変。だったらお前がやってみろ - 第1回
ビジネス
ポケコンでカナ・ワープロを作る 私の源流はエンジニア ビジネス
弥生のモノ作り神田通信<目次>
この記事の編集者は以下の記事もオススメしています
-
ビジネス
“稼ぐカスタマーセンター”訪問記 -
ビジネス
HDD復旧までやる!弥生10で掲げる「愚直な実践」