3

これは、どちらの方向が会社にとってより良い投資になるかについてのより一般的な質問です。

当社のコアビジネスアプリケーションはVisualFoxProで記述されており、約9年以上前のものです。データベースは15ギガ以上の巨大なものであり、コアロジックは複雑であり、さらに悪いことに、データモデルはひどいものです。それを構築し、これまでずっとそれを維持してきた2人の男は、少なくとも50代であるため、言うまでもなく、引退またはおそらく死は、今後10年ほど以内に来る可能性があります。

このVFPアプリは、すべてのコアビジネス機能を駆動し、外部からアクセスするにはターミナルサービスとcitrixが必要です。私たちのWebアプリはODBCを介してインターフェースする必要があり、常にパフォーマンスの問題が発生しています。このシステムを実行するサーバーも、Win 2000サーバーのように非常に古く、壊れています。

最近、このコアアプリを実行するシステムのアップグレードや、メールやファイルストレージなどの他のサービスについての会議があります。ただし、最大の費用は、新しいサーバーハードウェア、OSライセンス、ターミナルサービスライセンス、Citrixライセンスなどを購入して、現在発生しているパフォーマンスと外部アクセスの問題を解決することです。

値札は55,000ドルから65,000ドルの価格帯になります。したがって、Web開発者としての私の見解は、これは莫大なお金の無駄だということです。私の解決策は、そのお金をWebベースの.Netプラットフォームで実行するコアシステムの書き換えに投資することです。これにより、ターミナルサーバーとCitrixのライセンスが不要になり、実行するための高価なハードウェアと構成管理が不要になります。とにかくその道を進んでいるはずの時代遅れのシステムにこの種のお金を投資する意味がわかりません。

なぜこれがお金の無駄なのかについて、説得力のある議論をしたいと思っています。うまくいけば、その前にこの種の状況に直面したことがある誰かが私にいくつかの視点を与えることができます。ハードウェアのアップグレードは、コンサルタントがやって来てすべてを行うだけなので、最も簡単な方法のようです。ソフトウェア開発プロジェクトは、より時間がかかり、より多くのリソースを必要とし、おそらくもう少しお金がかかるでしょう。

4

10 に答える 10

6

The short-term rewrite vs. re-hardware argument cannot be won. Hardware and licenses are always cheaper than a rewrite. And hardware plus license seems to involve no risk.

You can't win on ROI argument. Unless the system is trivial and you are a genius, it will always cost $100K or more to rewrite an application that actually does something. Think multiple person years.

You might win the "technical debt" argument. Change is getting more and more complex, risky and expensive. The longer this code is perpetuated, the more risk and cost accumulates.

The real question is "start to fix now?" or "wait until it breaks and suffer later?" And that has no definite $-valued answer.

You can't compete on money, so you have to compete on risk, features, growth, maintainability, adaptability, standards compliance, security, creating unique value for each customer, etc., etc.


"We are now looking at a larger base of customers and more data". That's an argument you might be able to win.

(I'm over 50, I'm not planning on dying any time soon. That argument doesn't win hearts and minds. Unless they're over 80, you can't really use age except as way to get your argument ignored.)

Focus on the cost (and risk) of making changes.

Prove that you have a web-based solution that makes changes less costly and less risky.

Further, dig into what's there and find parts that can be replaced by a web framework. Code you don't write is cheaper to maintain the code you write.

于 2010-01-12T20:32:02.153 に答える
3

すべてのプロジェクトには、費用便益分析が必要です。60,000 ドルの 1 回限りの投資で今後 10 年間のすべての問題が解決される場合、開発者のチームを 1 年間雇って新しいより優れたシステムを構築するよりも (おそらく) はるかに経済的です。

一方、すでに年間 50,000 ドルのメンテナンス費用がかかっており、この資本コストがシステムを維持するためのものであり、数年後にさらに 60,000 ドルを費やす必要がある場合は、真剣に検討する必要があります。再設計を尊重します。

または、中道をたどって、Web サービスのような不透明なものにまとめてから、コンポーネントをより優れた (より効率的で保守しやすいなどの) 内部コンポーネントに徐々に交換することもできます。多くの企業がこの方法を採用しています。これは、書き直しの初期費用を先延ばしにするためです。必要に応じて、IT リソースを別の場所に置くことができます。

ただし、S.Lott の言うとおりです。コストだけでは競争できない可能性が高いです。これらの古いシステムに関連するリスクを定量化する必要があります。たとえば、元のプログラマーが辞めることを決めた場合 (または、非常に多くのマネージャーの用語を使用する場合)、資格のある FoxPro 開発者を見つけてトレーニングするのに会社がどれくらいの費用がかかるかなどです。 「バスに轢かれてしまった」…


これにさらに別の見方を追加すると、.NET の前 (およびその後の数年間) は、ほとんどのプロジェクトを Delphi だけで行っていました。当時、それはエンタープライズ開発にとって本当に素晴らしい選択でした。私は実際に「アップグレード」したくない人でした。しかし、しばらくすると、これが社外の人々を怖がらせていることが、私自身と上層部の両方に明らかになりました。

投資家、監査人、誰もが、私たちの中核となる IT 資産が「あいまいな」言語で作成されているという考えを好まなかったのです。もちろん、Delphi はそれほど曖昧ではありませんでした。SO には「delphi」タグがあり、カウントは 3340 です。ただし、SO を例として使用してみましょう。現在のカウントは次のとおりです。

  • c#- 57293
  • .net- 30577
  • asp.net- 26600
  • java- 31023
  • vb.net- 5996
  • delphi- 3340
  • foxpro- 69
  • vfp- 27

それらの数字をしばらくの間沈めさせてください。当時私が選んだツールである Delphi は現在、C# の表現の 10% 未満であり、これは非技術者を不安にさせました。Foxpro/VFP は 1% でもありません。次のような質問に何回答えなければならなかったかさえ覚えていません。

  • 主任開発者 (私) が辞めたり、バスに轢かれた場合はどうなりますか?
  • その分野でプログラマーを雇うのはどれくらい難しく/費用がかかりますか?
  • ベンダーがサポートを停止した場合はどうなりますか? (これはほとんど起こりました)
  • 外部の助けが必要な場合はどうしますか? コンサルタント?セキュリティ監査?
  • 外部製品と連携させるのはどれくらい簡単ですか?

とか何とかとか、心配、心配、と当時は思っていたのですが、そこまで曖昧ではない商品でした。あなたの場合、ここではFoxProについて話しています。FoxPro はほとんど COBOL のようになりました。確かに、それはまだあります。それを知っている人はいますが、今日 FoxPro で新しいプロジェクトを開始するのは誰ですか? つまらない、まさにゲットーだ。VB6 はゲットーになりつつあり、何年も前に VB/Access が実質的に FoxPro に取って代わりました。

ここでは明らかに少しメロドラマ的ですが、もし私があなただったら、これが私がとる角度です. 短期的な経済学や時代のことは忘れて、製品のあいまいさに集中してください。彼らが FoxPro 開発者の募集広告を出したら、どれだけの本物の適格な反応が得られると思いますか? そのような役職に対して、彼らはどのような報酬を提供しなければならないのでしょうか? 売上高はどのようになりますか?この 2 人の開発者が 20 数年もの間そこにいるとすれば、これはすべて遠いことのように思えるかもしれませんが、数百万ドル規模のビジネスを運営している場合、1 人または 2 人の従業員に自分の生存を賭けるのは決して良い考えではないことを知っておく必要があります。 -あなたがそれを助けることができるかどうかではありません

于 2010-01-12T20:35:22.907 に答える
1

一般的に、貧弱なシステムを補うのは悪い計画です。おそらく書き直したほうがいいと思いますが、詳細を知らずに言うのは難しいです。

適切な書き換えにより、パフォーマンス、信頼性、および保守性が向上するため、潜在的な節約は大きく、初期投資がもう少し多い場合でも、年々増加するだけであることに注意してください。

于 2010-01-12T20:33:07.903 に答える
1

歴史的な VFP 開発者として (Foxpro/VFP を 20 年以上使用しており、さまざまな理由で VFP を使用してシステムを作成/更新するように求められている人がいまだにいます)、依然として非常に強力です。しかし、私の OOP と開発の経験の多くを調査して活用し、.Net で作業しているうちに、特に強力な型キャストなど、.Net でいくつかのことをより簡単にできることがわかりました。ただし、基本的なレポートを実行するには、データベースのテーブル/構造/オブジェクトへのすべての強力な型キャストが必要であり、これまでの多くの場合、PITA を実行する必要があります。

書き換えの値札は常に重要な考慮事項ですが、VFP、VB、Access などに関係なく、あらゆるシステムの崩壊も同様です。コンサルティング会社にシステムの再モデリングを手伝ってもらうことを強くお勧めします。また、プロジェクト マネージャー/プログラマーの社内スタッフのメンターとして行動することを強くお勧めします。新しい開発環境でのトレーニング。このようにして、言語の強力な才能の優れた基盤を得ることができますが、独自のプログラミング スタッフを使用することでコストを抑えることができますが、補助的なプログラミング スタッフを雇う必要がある場合もあります。VFP から .Net への学習曲線はそこにあり、依然として頭を悩ませている可能性があります。

その後、サービスを .Net の世界に移行した VFP スペシャリストであったさまざまな企業があり、両方の世界の歴史的な知識と専門的な経験を持つ組織に完全に一致する可能性があります。私は、彼らがそのような仕事の発展のためのメンターとしても行動できることを知っています.

于 2010-01-13T16:32:46.060 に答える
1

価値があるかどうかを判断するには、書き直しのコストに加えて、次の計算を行う必要があります。

  1. システムが現在行っているすべてのことを文書化し、要件をリバースエンジニアリングします。

  2. 現在存在するすべてのものの単体テストと統合テストを作成します。これはおそらくまだ存在していませんが、存在するはずです。

  3. 新しいシステムを維持するためのコスト。新しいシステムは保守コストをなくすものではなく、単に削減するだけです。いくら節約できますか?

  4. 新しいシステムのハードウェアのコスト。新しいシステムは、何かで実行する必要があります。

  5. ソフトウェアなどのライセンス費用。新しいシステムに必要なもの。すべてがオープンソースになるのですか?それとも、開発者とテスター用に複数の Visual Studio Test Edition が必要ですか?

  6. 開発を行うために新しい人員を雇うコスト。単純な給与コストに加えて、オフィスコストがあります。たとえば 3 人の開発者の場合、給与、オフィス スペース、設備、ライセンス、医療給付を考慮して、合計は 300,000 ドルになる可能性があります。

  7. 節約の対象期間。節約はすぐにはできません。今後発生する予定です。それまでの間、彼らは現在のシステムのライセンス料を支払う必要があります。なぜなら、新しいシステムが導入されるまで何かをしなければならないからです。

  8. キャッシュフローの問題。上記の理由により、短期的には、開発資金を調達するためにより多くの資金が必要になります。実際のコストはもっと高くなります。なぜなら、彼らは本質的にローンを取得したり、株式を調達したり、機会費用を負担したりしなければならないからです (彼らは書き直しを追求するために、他の投資機会を差し控えなければなりません)。

  9. ビジネスリスク。書き直すとコストがかかる、動作が悪くなる、などの危険性があります。

于 2010-01-12T21:17:57.880 に答える
1

2 つの重要な数字:

  • 現在、サンフランシスコのクレイグリストに掲載されている「FoxPro」の仕事の数: 2.
  • 現在、サンフランシスコの craigslist にリストされている「.NET」ジョブの数: 252。

言及されている他の多くのポイントは有効です。ただし、ハードウェアにはいくらでも投資できますが、実際には、何かが壊れて助けが必要になった場合、助けてくれる人を探すのにかなりの時間がかかります。

より新しく、より適切にサポートされているテクノロジーへの移行¹ について話し始めるには、良い時期のように思えます。(そして、.NET が古い帽子である 10 年後には、やり直すことができます :)

[1]システムを進化させ、書き直さないこと。現在のシステムは、当時のニーズに基づいて非常に有機的に成長したと思います。そのすべてを完全に置き換えることはできません (少なくとも、数年と数百万ドルが必要です)。

于 2010-01-12T21:30:39.737 に答える
0

会社にとってここに特効薬はありません。確実にする唯一の方法は、既存のビジネスクリティカルなソフトウェアにもたらす安定性と速度の利点を得るために、新しいサーバーにヒットすることです。次に、それが数年間保留されたら、それが必要な場合は、.NETなどの別のプラットフォームでリエンジニアリングを開始します。ある時点で、VFPデータを新しいデータベース構造に移行する必要があることに注意してください。

于 2010-01-13T17:36:31.937 に答える
0

ROIを分析した後は、お金の無駄だとしか言えません。システムの書き換えにかかる費用に大きく依存します。

于 2010-01-12T20:27:10.727 に答える
0

JOS の典型的な間違い - 「システムがめちゃくちゃです。書き直しましょう」。

この古い建物を見て、爪楊枝を見て、なぜそこにあるのか不思議に思うようなものです。要らないと判断して引っこ抜きます。

突然、建物があなたの頭の周りで崩壊します:)

于 2010-01-12T21:06:28.700 に答える
0

する方が良いかもしれません

  1. 保守性を高めるために、システムの一部を書き直すことを検討してください。

  2. パフォーマンスを向上させるためにシステムを最適化します。

  3. Foxpro 固有の部分を抽象化して、他のテクノロジに簡単に変換できるようにします。

この漸進的なアプローチは、リスクを軽減し、短期的な改善をもたらします。

于 2010-01-12T22:23:47.637 に答える