私は、新しいアイデアを探している非常に大きな組織で働いています。現在、さまざまなアプリケーションに共通のアーキテクチャを提供することになっているこの大規模なプロジェクトが実施されています。「展開可能なユニット」または DU を作成するために使用される多くの「共有」コンポーネントとして編成されています。DU は最終的なアプリケーションです。
退屈な(そしてデリケートな)詳細に立ち入らない限り、現在私たちが行っている方法は機能していません。私たちには 30 件以上の申請があり、最も切迫した緊急の修正以上のことを行う許可を得るまでに 2 年以上待つことができます。組織化とテストに関する提案を探しています。
興味があれば、これまでの私の考えは次のとおりです。
- 専門的なスキルに基づいてチームを作成します。たとえば、GUI チーム、JSP チーム、データベース チーム、HTML/CSS チームなどです。これらの担当者は、ソリューションの要求を受け取ったときに、開発を加速する再利用の機会を見つけるのに理想的な立場にあります。チームが対象分野の専門家で構成されているという事実は、生成されるコードの品質も向上する必要があることを意味します。これらのチームは、要求に合わせて調整されたカスタム ソリューションを作成し、ソリューションを提供するために必要なものだけを含めます。
- 要件を収集し、適切な専門チームにソリューションを提供するビジネス クライアントと連携するチームを作成します。このチームは、さまざまなソリューションを最終的なアプリケーションに統合し、単体テストを実行する責任を負います。
- 自動化されたテスト ツール (JUnit など) を可能な限り利用します。また、本番環境のような環境でユーザー受け入れテストを通過できるアプリケーションの数を最大化するために、短い固定テスト期間を設定します。その時間枠の終わりに準備ができていない場合は、開発と単体テストに戻ります -例外はありません! 言い換えれば、要求する前に、ユーザーの受け入れ/生産の準備ができていることを確認してください。
最終的には、チームの 2 つのグループになります。1 つのグループはアプリケーション中心で、ビジネス クライアントに全体像のソリューションを提供することに関心があります。もう 1 つのグループは技術中心で、自分たちの専門分野だけで全体像をあまり知らないか気にかけません。
私が今説明したようなものは、遠く離れていてもすでにそこにありますか?