既存の追加開発/派生開発への影響を最小限に抑えて実施します
リファクタリングは振る舞いを変えない小さな変更を積み重ねます。 その小さな変更は一つ一つ完全にテストされ、動作を保った形で実現されます。 開発中のソースコードにリファクタリングを行う場合でも、その影響範囲はほとんどありません。 そのため、機能追加と並行して実施することが可能です。
リファクタリングとはソフトウェアの外部的振る舞いを変更することなく、ソフトウェアの内部構造を変更することです。 保守性を高めることにより、不具合修正や機能追加にかかるコストが大幅にカットされる結果、トータルコストの削減が可能となります。
長年機能追加が続けられながらも、設計/実装の品質改善を施されないままの「レガシーコード」に対しては 特に大きな効果を得ることができます。弊社の実績では、総開発工数を30%削減させた事例もございます。 (実際の成果は案件によって変動します。)
既存の追加開発/派生開発への影響を最小限に抑えて実施します
リファクタリングは振る舞いを変えない小さな変更を積み重ねます。 その小さな変更は一つ一つ完全にテストされ、動作を保った形で実現されます。 開発中のソースコードにリファクタリングを行う場合でも、その影響範囲はほとんどありません。 そのため、機能追加と並行して実施することが可能です。
方法論・人材・ツールの三方面からの堅実なアプローチをします
|
弊社の提供するリファクタリング支援は、開発経験が豊富で各種言語やプラットフォームに精通したエンジニアが開発現場に常駐し、 機能追加の担当者とコミュニケーションを取りながら実施するため、コミュニケーションのオーバーヘッドを最低限に保ちます。 担当者は多くの開発現場で培ったノウハウを活かし、現場に即した方法論でリファクタリングを実施します。 また、リファクタリングの戦略立案から技術者の教育まで、幅広いサービスを提供します。 ツールは内製/外製、有償/無償を問わず、さまざまなものを現場に即した形で導入し、活用します。 具体的には、自動テスト支援ツール、静的解析ツール、リファクタリングブラウザなど駆使し、作業の省力化を実践します。 |
|
弊社のリファクタリング支援では、まず最終的な目標となる「あるべき姿」を定義した上で作業を実施していきます。 そのため、現状のソースコードやドキュメント類のチェック、管理層や開発担当者へのヒヤリングを実施し、 「あるべき姿」とそこに至るための作業手順の方針を提案させていただきます。
リファクタリング計画と開発スケジュールを突き合わせ、 開発にローリスクな実現方法を検討し、数回に分けた詳細な単位での計画に落とし込みます。
まず、正規のソースコード管理から分岐させたリファクタリング用プロジェクトを作成し、 そのソースコードに対して状況に応じた変更を行います。 この変更は、自動テストを導入しながら迅速かつ慎重に作業を進めていきます。
1単位の作業が終了した時点で、正規のソースコードにリファクタリング後のソースコードをマージします。 マージは弊社独自のマージメソッドによって慎重/確実に行います。
動作確認終了後、これまでの作業で浮上した課題を整理し、次の計画を再検討します。 計画当初では見えなかった問題を踏まえて次の単位を実施します。 また、正規の開発計画に変更があった場合でも計画に大きなインパクトを与えることなく 次の計画へと進むことができます。これは小さな単位でのリファクタリングを実践する大きなメリットです。