9

私は、基本的に「古い」システムを「新しい」システムに置き換えるいくつかのプロジェクトに携わってきました。常に、「新しい」システムを構築するチームの誰も、「古い」システムについて実際の知識を持っていないというパターンがありました。私がこれに疑問を呈するたびに、これは意図的なものだと言われました...「古い」システムを知らないことで、チームは異なる考え方をすることができ、そこでのやり方に制限されなくなりました。そのため、「古い」システムについて何かを知っているのは通常、チーム内に 1 人か 2 人だけであり、「古い」システムがどのように機能したかについて質問があるたびに、彼らに相談します。

しかし、「新しい」システムが配信された後、「新しいシステムでは (古いシステムでは簡単だった) X をどのように行うのですか?」という形式のユーザーからの質問が常に発生するように思われます。開発者にとって、X のことを初めて耳にすることがよくあります。そのため、X とは何かを調査する必要があり、多くの場合、開発者がユーザーに返す答えは、「できません」または「できますが、本当に厄介です」。

これは私には正しくないように思えます...「新しい」システムのすべての開発者に「古い」システムをよく知ってもらうことで多くのことが得られるように思われます。彼らはまともな設計と開発のスキルを持っています。

どのアプローチが最適かについて何か考えはありますか?

4

3 に答える 3

8

より優れたビジネス アナリストが必要です。彼らは、古いシステムを見直し、新しいシステムが何をする必要があるかを正確に (そして完全に) 定義することになっています。発生する必要があるすべてが考慮されるように、要件の完全なリストを提供する必要があります。

要件を書いている人は誰でも、より徹底する必要があります。それが不可能な場合は、参加して「古いシステム」を学ぶ必要があるかもしれません。

しかし、見逃すものは常にあります - それは人間の本性です。ユーザーが忘れてしまったことに気付いたときに必要な機能を追加できるように、「新しいシステム」をできる限り柔軟にしようとする必要があることは明らかです。

私はあなたの痛みを理解しています。

于 2009-11-23T12:46:33.607 に答える
3

古いシステムを新しいシステムに置き換えることは、通常、同等の機能を意味します (つまり、少なくとも古いシステムで実行できたことを実行できるということです)。

そのため、古いシステムの詳細な知識は必須ではありませんが、インターフェイスを理解し、一連の機能テスト スイートを構築することは、新しいシステムを効率的に開発するのに役立ちます。
そのスイートは、新しい開発の結果を検証するために使用されますが、結果が 100% であってはならないことに注意してください (そうでなければ、最初のシステムのバグをうまく再現できたはずです!)

さらに、非常に大規模なシステムの場合、新しいプログラムには少なくとも 3 つの実装が必要です。

  • 古いシステムと対話できる人
  • 1つは古いものの部品を交換します
  • 古いプログラムを完全に引き継ぐもの

長い期間について話している場合、それには、古いシステムの進化を管理できるアーキテクトも含まれます (新しいシステムがそれを置き換えるまで数か月または数年待つことはできません)。新しい実装よりも方向性。

于 2009-11-23T12:45:39.677 に答える
2

これは、新しいシステムの仕様が不完全だったように思えます。これは、誰か (プロジェクト マネージャー、プロジェクトの開始者) が、古いシステムの機能が文書化され、顧客が実際に使用しているものを確認することを確認しなかったためです。

これが行われていれば、仕様は開発対象であるため、古いシステムを誰も知らないことは問題ではありません。

仕様がない場合は、他のすべての問題は別として、この問題を回避するために、誰もが古いシステムを知っている必要があります。

于 2009-11-23T12:49:16.840 に答える