私たちは私のビジネスでこれと同じボートに乗っています。フェーズ1はうまくいった方向に進みましたが、理想的ではありませんでした。フェーズ2は、ビジネスモデルとロジックを変更しました.....このフェーズはオフショアでしたが、会社が構築することを選択したフレームワークを実際に理解していれば、それ自体は問題にはなりませんでした。したがって、ここでは、このような不十分に記述されたコードベースで作業する必要があることを嘆きながら、フェーズ3を終了しようとしています(フェーズ2の混乱を元に戻し、意図したとおりにフレームワークを適切に使用します)。重大な課題がありました。2つのjavascriptフレームワーク、不格好なレガシーUI、ジャンクコード、およびフレームワークのメジャーアップデートを使用して、現在のバージョンを廃止し、新しいバージョンに移行することをほぼ不可能にしました。
これが私たちが選択したことです....それはあなたの状況にとって理想的ではないかもしれません。まず、製品開発担当副社長は2週間かかり、データベース構造を完全に再検討しました。彼は、適切で効率的なDB構造に対応するために、必要に応じて既存のコードを変更するようにプログラミングスタッフを再利用しました。その(苦痛な)ステップが完了したら、2週間の休憩を取って、新機能を進歩させました。次に、UIを完全にリファクタリングするという職務を中断し、1つのJavascriptフレームワークの使用を取り消して、1つの共通プラットフォーム(コンセプト、ヒント、ひどいオフショア会社...)を使用できるようにしました。最新の効率的な最新のUI要素の効果的な使用。製品のベータ版が終了するまで、80%〜20%のタスクを組み合わせ、最終的な要件を80%達成し、コードを20%リファクタリングし、レガシーの混乱をクリーンアップします。各従業員には、「クリーンアップ」またはより効率的な作業を担当する領域が与えられています。プロセスの文書化も委任されたタスクであり、各従業員の1週間の労働時間に必要な割合です。
私たちのプロセスを成功させる秘訣は、フェーズ3が完了する前でもフェーズ4に目を向けることだと思います。新しいコードは最大の効率と互換性で構築されているため、この古いプラットフォームから移行する場合は、最小限の変更で済みます。私は(コードだけでなく)プロセスを区分化する方法を実験しているので、理論的には、適切なタイミングでプロセスを個別に新しいフレームワークに移動できます。私たちの将来の計画は紙に書かれており、要件リストが進化し、最良のツールを見つけるための研究が進行中です。最も重要なことは、チームリーダーは物事を正しく効率的に行うための執着者であるため、正しく行われなかった現在または将来のことは何も進みません。
前進するために後退する必要があることを経営陣に正当化するのは難しいです。あなたの会社の将来全体が、私たちがそうであったようにベータ版で立ち往生している製品に依存している場合、それはさらに困難です。私はそれを燃料効率の良い機器にもっとお金をかけることと比較します....それは今より多くの費用がかかるでしょう、しかし最終的にそれは莫大な経済的見返りを得るでしょう。この状況で成功する秘訣は、製品を素晴らしいものにするために時間を費やしている間、スタンドアロンで「十分に良い」製品の中央値を見つけることだと思います。その中央値を満たすための戦略を開発することは、ビジネスユニットに忍耐強く挑戦し、最終的には成功したときにあなたをヒーローにします。強力な計画を立て、その計画を伝え、他の人とうまく遊んで、あなたの尻尾を切り落とします。すぐに、あなたは