おそらく、エンタープライズシステムを厳格に施行された標準に合わせて開発する時が来たのでしょうか。多くの本には、オプションの「標準」とベストプラクティスが記載されていますが、これらは純粋に推奨されるプラクティスです。それでも、自分が参加していないエンタープライズシステムのコードを見るたびに、アーキテクチャの作成に多くの時間を費やしています。
システムに何らかの形のISO認定を与えるべきではありませんか?ドメインモデル、トランザクションスクリプトなどの標準アーキテクチャを選択することもできますが、これらのいずれかを選択したら、厳密なアーキテクチャテンプレートに従う必要があります。システムを監査して、これらの基準に準拠していることを確認できます。当社はこの認定を受けています。
これは開発者にとってより良いことです。なぜなら、他の会社によって書かれたレガシー作業を引き受けるとき、アーキテクチャの解読に時間を費やす必要がないからです。
認定された開発会社のサービスを利用すれば、元の開発者に縛られることなく、別の会社を利用して維持・修正できることを知っているので、クライアントにとってもメリットがあります。
標準はすべてうまく聞こえますが、顧客が独自のアーキテクチャなしでは達成できないパフォーマンスのニーズや別のビジネスモデルを持っている場合はどうなりますか?各顧客は、さまざまなソリューションの長所と短所について情報に基づいた選択を行う必要があります。開発者のロックインは1つの懸念事項にすぎません。
プログラマーは特定の規格の認定を受ける必要がありますか?コンプライアンスを検証するためにソフトウェア検査官を派遣する統治機関を設立する予定ですか?オーストラリアの家庭用電気配線仕様は、アジアに準拠する必要はありません。ソフトウェアは世界中に広がる可能性があります。コンプライアンスのレベルはどうなりますか?絶対に100%?これを取り締まる負担は、違反を報告しなければならないクライアントにかかるようです。彼らには時間、専門知識、リソースがありますか?
独自の内部アプリを作成する企業でさえ、スピードを上げる必要のある新世代の開発者に対処する必要があり、常に最高のドキュメントや監督が提供されるとは限りません。
標準が適用される状況では、おそらくこれらの領域で標準を保証するのに十分な新しい開発がありません。
標準アーキテクチャモデルの主な問題は、標準システムでのみ機能するモデルです。実際のエンタープライズ環境の問題は、それらが常に異なることです。
その結果、標準が非常にあいまいになるため、標準がない方がよい場合があります。
非常に短い答えは次のとおりです。すべての場合に機能するアーキテクチャを定義するには、非常に賢くなければなりません。かろうじて誰もがとても賢いです。
私の経験では、ソフトウェアは2つの方法のいずれかで始まります。最初はアーキテクチャが少なく、大規模な書き換えを行う時間がない「顧客ができたら、製品を迅速に出荷してリファクタリングしましょう」という考えで、または「最初は見栄えが良いが、パフォーマンスの最適化またはアーキテクチャに適合しない機能のために、アーキテクチャをバイパスする場所が徐々に増えていきます。だから両方の時間oyuはそれを台無しにします。
また、多くの「エンタープライズ」プロジェクトは長期にわたって実行されており、古いものであることにも注意してください。ソフトウェア開発は比較的新しいものなので、良いと思われるものは急速に変化します。したがって、新しいトレンドが登場すると、製品でそれらを使用することに関心があります...
ドメインモデル、トランザクションスクリプトなどの標準アーキテクチャを選択することもできますが、これらのいずれかを選択したら、厳密なアーキテクチャテンプレートに従う必要があります。
なぜそこで止まるのですか?いくつかの標準的なアプリケーションを書いて、みんなに使ってもらいませんか?
もちろん、SAP、Oracle、IBM、CA Technologies、Googleなどの企業と競争する必要があるため、自分が何をしているのかをよく理解する必要があります。
エンタープライズアプリケーションの分野には多くの製品があるため、次のことを自問する必要があります。
なぜ企業は独自のアプリケーションを作成する必要があるのですか?
それに対する良い答えを考えることができれば、少数の標準アーキテクチャがあまりうまく機能しない理由がわかるでしょう。これは、すべてのエンタープライズアプリケーションが適切に設計されている、または多くのエンタープライズアプリケーション間に共通性がないということではありません。しかし、企業同士は競争する傾向があり、競合他社と同じようにシステムを構築することは、企業にとって思ったほど魅力的ではないのではないかと思います。
重要なのは、企業に特定の標準の使用を強制することはできないということです。ソフトウェア開発のポイントは、定型的なものではなく、カスタムのものを作成することです。さまざまな設計上の決定には常にトレードオフがあります。ある会社は主にスケーリングを重視する製品を持っている一方で、別の会社はセキュリティを主な焦点とする同様のソフトウェア製品を持っている場合があります。これらの両方の標準はどのように機能しますか?当然、彼らはソフトウェアのさまざまな領域により多くの時間を費やし、認識されたニーズに基づいてさまざまなアーキテクチャ上の決定を下します。