6

バックグラウンド:

私はSAPに多額の投資をしている会社で働いています。また、数十の大規模な.NETシステム(主にエンジニアリングシステム用)とJavaプラットフォーム(主に外部Webアプリケーション用)もあります。そのため、ABAP、C#、およびJavaEEに大規模な開発ショップがあります。

質問:

つまり、商用の既成(COTS)ソフトウェアをいつ使用するか、また、独自の開発者をいつ活用するかを決定するためのより良い方法が必要です。

基準:

この質問に役立つベストプラクティスに基づいて決定木を構築したいと思います。

最高レベルでは、JeffAtwoodの関連記事はそれをうまくまとめています。最高のコードはコードがまったくないということです。

もう少し深く、次のような基準を見たいと思います。

ほとんどの要件を満たすCOTSシステムを利用できますか?(はいの場合、COTSシステムは良いオプションかもしれません:(車輪の再発明を避けてください))

  • もしそうなら、完全に公開されたAPIは利用できますか?(これは統合/カスタマイズに不可欠です)
  • もしそうなら、ソースコードは利用できますか?(これは、深い統合/カスタマイズに不可欠です)

システムはコアビジネス機能を満たすように設計されていますか/競争上の優位性を生み出していますか?(もしそうなら、カスタム開発は良いオプションかもしれません:Joel Sposkyの:In Defense of Not-Invented-Here Syndromeを参照してください

  • もしそうなら、カスタム開発は将来/他のシステムでコードの再利用を可能にしますか?(既存のコードを再利用することには多くの利点があります)

カスタムアプリケーションとCOTS製品のTCOはどのくらいですか?

カスタム開発では満たすことができなかった時間の制約はありますか?(はいの場合、COTSシステムが良いオプションかもしれません)

4

1 に答える 1

2

あなたが何を求めているのか完全にはわかりませんが、COTS とカスタム開発の選択肢で何年にもわたって発生してきたいくつかのことについてコメントしたいと思います。

  1. COTS システムの適合性を適切に分析するには時間がかかります。要件の観点と技術的な観点の両方から。分析の代わりに、どれだけのカスタム開発を行うことができたでしょうか?

  2. COTS の売り込みは月を約束するものであることに注意してください。それらはたくさんあります。取引を得るためにあらゆる要件を満たすことを申し出るイエスマンからの派手なプレゼンテーション。陥る最も危険な罠は、現在 COTS にはない機能が約束されていることですが、彼らはあなたのために追加します - 多くの場合、セールスマンは彼らの製品が可能かどうかを知ることさえせずにあなたに「はい」と言いました.それ。

  3. COTS の単体テストと、それらが使用する開発手法を確認してください。品質の良い指標。カウボーイな開発慣行、テストとドキュメントの欠如は、将来の保守性の頭痛の種です。

  4. COTS ベンダーが製品の技術的側面について多くの情報を提供していない場合は注意してください。

希望するシステムがかなり単純であれば、COTS の選択もかなり単純になります。しかし、大規模で複雑なシステムの場合は、おそらく RFP (提案依頼書) に提出することになるでしょう。そのためには、完全で正確な要件仕様が必要になります。RFP の要件を作成するのにかかる時間は、カスタムの開発アジャイル ソリューションよりも重要ですか? COTS システムが機能することを確認するには、これらの要件を非常に厳密に規定する必要があり、それには多くの時間と労力がかかります。

個人的には、次の場合を除き、COTS を検討することはありません。

  1. ソースコードが利用可能で、プログラマーに評価してもらいました
  2. 派手な売り込みだけでなく、動作するデモを見て試しました
  3. 社内でそれを行う時間も人員もありません。

最終的に、私は Joel の次の言葉に同意します。

于 2009-03-18T20:42:31.497 に答える