私は、開発作業がオフショアされているソフトウェア開発会社で働いています。オンショアチームがサポートを担当し、クライアントと直接話します。クライアントと直接話をすることはありません。オンショアチームのクライアントと直接話をするだけです。
要件が発生すると、オンショアチームがクライアントと話し合い、要件ドキュメントを作成して通知します。要件を検討した後、設計ドキュメントを作成します(従来のウォーターフォールモデルに従います)。
しかし、プロセス全体で1つの問題があります。オフショアチームまたはオンショアチームの誰もアプリケーションの機能を完全に理解していません。私たちは、複雑な注文処理、カタログ管理、キャンペーン管理などのアクティビティを処理する大きな複雑なWebアプリを知っています。要件が明確ではないため、設計ドキュメントに取り組んでいます。次に、オンショアチーム、オフショアチーム、クライアント間で一連の質問/回答を行ったり来たりします。コードから機能を理解するように言われることがよくあります。しかし、コードベースが巨大であり、単純なメニュー項目を理解することさえ、数週間ではなくても数日かかるため、通常、それは現実的ではありません。クライアントに知識を伝えるよう伝えましたアプリケーションについてですが、役に立ちません。設計ドキュメントが完全でない場合や要件が明確でない場合でも、マネージャーからコーディングを開始するように指示されることがよくあります。要件の明確な部分をコーディングすることから始めて、残りの部分を待ちます。
これは通常、展開を1か月遅らせます。極端なケースでは、開発と本番環境でのエラーは非常に少なくなりますが、クライアントはそれを求めていなかったと言います。これは非難ゲームと一連の変更要求を開始し、非常に異なる何かを開発することになります。
私の質問は、アプリの機能を完全に知らない場合、どのように開発作業を行うかです。
更新
開発の方法論は本当に私の選択ではなく、私のチームのリーダーではありません。それはそれが始まった方法です。アジャイルの利点について人々に伝えようとしたが、役に立たなかった。その上、私のチームはアジャイル環境で作業するために必要な考え方を持っているとは思いません。