あなたの問題はもっと一般的だと思われます。
リファクタリングの問題は、症状であると同時に、問題の一部が軽減される可能性もあります。
ソフトウェアリードとチームがチームの時間を割り当てます
私の経験から、あなたは私が「誰もがソフトウェア管理者だ」と呼ぶ問題に遭遇していると思います。製品マネージャ、プロジェクトマネージャ、および場合によってはシステムエンジニアやテスターは、おそらく経験豊富なソフトウェアマネージャを既に持っている開発者をマイクロ管理しようとすることで有名です。自分の役割は管理することだと信じているチームのメンバーが数人いることさえあります。
あなたがソフトウェアマネージャーである場合は、希望するリファクタリングの割り当てを行うか、さらに良いことに、チームに承認のためにリファクタリングを提案してもらいます。マイクロ管理を行わないために、リファクタリングするコードの年齢/作成者/サイズ/コンテキストに関するガイドラインがあり、自由にリファクタリングできる場合と承認が必要な場合があります。チームのメンバーが、自分の書いた機能ではない複雑な古いコードの4つの大きなクラスを大量にリファクタリングしたい場合、彼の2週間の転用が問題なので、ノーと言う機会が必要です。
忍び寄ることはできますが、分析、設計、コーディング、複数の形式のテスト(少なくともユニットと統合)、リファクタリング、および歴史的に、そしてタスクに関連する経験または明確さ。チームの働きについてあまりにもオープンである(またはチームのメンバーがいる)場合は、コミュニケーションチャネルを絞り込んで、方法ではなくリソースや結果について話し合うのが賢明かもしれません。
初期のプロジェクト選択により、リファクタリングの悪循環が生じる
ソフトウェアのメンテナンスは大変です。組織内の他の人があなたの費用で選択を行っている場合、それは二重に困難です。これは間違っていますが、新しいものではありません。これは、Theory Wとして説明する管理モデルを提唱する優れたソフトウェアライターの1人であるBarry Boehmによって対処されました。
http://csse.usc.edu/csse/TECHRPTS/1989/usccse89-500/usccse89-500.pdf
多くの場合、ソフトウェア開発者は、労働者は基本的に怠け者であり、提出に打ち込まれない限り実行しないと述べているTheory-X管理アプローチに基づいて作成するようにhammerられます。Boehmは、提案されたモデルを次のように要約して対比します。
「マネジャーを独裁者(理論X)、コーチ(理論Y)、またはファシリテーター(理論Z)として特徴付けるのではなく、セオリーWは、マネージャーのさまざまな支持者とプロジェクトソリューションのパッケージャーとの間の交渉者としてのマネージャーの主な役割を特徴付けますさらに、マネージャーは目標設定者であり、目標に向けた進捗状況のモニターであり、日々の勝ち負けまたは負け負けのプロジェクトの対立を探し出し、それらに立ち向かう活動家です。それらをwin-winの状況に変更します。」
迅速で汚いのはしばしばただの汚い
Boehmは、メンテナンスチームの開発者にとって物事が非常に悲惨な理由を指摘し続けています。
「迅速でずさんな製品を構築することは、ソフトウェア開発者と顧客にとっては低コストで短期的な「勝ち」かもしれませんが、ユーザーとメンテナーにとっては「負け」になります。」Boehmのモデルでは、顧客はエンドユーザーではなく契約管理者に近いことに注意してください。ほとんどの企業では、製品マネージャーを顧客の代理人、またはおそらくその機能リストのために製品を購入する人と考えてください。
私の解決策は、コードが少なくともコーディング標準を満たすようにリファクタリングされるまで、元の開発チーム(または少なくとも元のリード)をリリースしないことです。
顧客にとっては、製品マネージャーを顧客の代理として数えることは合理的だと思います。迅速で汚れたものを提供したことで報われる人々のグループは確実に拡大することができます。
リファクタリングは交渉できません
ソフトウェアマネージャーとしての役割を引き下げないでください。プロセスと製品の改善にチームの時間を使用する権限と裁量権が必要です。その役割では、チームをより専門的にするために選択を交渉する必要があるかもしれません。ただし、プロセスに関しては、マーケティングと交渉しないでください。私の経験では、それは負けゲームです。エンジニアリング管理と交渉します。ビジョンがあることを示しています。プロのソフトウェアチームを構築することは、彼らの役割の延長であり、Win-Winと見なされる可能性がはるかに高いです。