Mamy bardzo duży projekt, który obejmuje kilka aplikacji, które stanowią bazę dla różnych klientów.
Każdy klient ma własną personalizację produktu, różne kamienie milowe, różne wymagania itd., Dzięki czemu każdy projekt będzie ewoluował niezależnie w zależności od własnych potrzeb.
Rdzeń projektu jest podobny (ale nie równy) w każdym projekcie, a organizacja jest tworzona tak, że istnieją zespoły, które obsługują każdego klienta niezależnie (ale w razie potrzeby z komunikacją między nimi). Do tej pory nie byłem w stanie znaleźć żadnego schematu, który odpowiadałby naszym potrzebom, przeszukując internet lub wpadając na genialny pomysł :)
Do tej pory pracowaliśmy nad tym, aby produkt był odpowiedni dla wszystkich potrzeb, z określonymi gałęziami dla potrzebnych zmian, ale chociaż produkt ma dobrą architekturę, powoli staje się dużym problemem. Oto główne problemy, przed którymi stoimy:
- Różne kamienie milowe dla każdego klienta: co oznacza, że każdy zespół musi produkować wersje w różnym czasie, bez reszty zmian wpływających na stabilność lub ich produkt.
- Różne wymagania, które mogą, ale nie muszą, wpływać na rdzeń systemu w niektórych przypadkach.
- Duże zespoły (ponad 20 członków zespołu)
- Obsługa błędów w systemie: Co robisz, jeśli zespół wykryje błąd w swoim projekcie, który może wpłynąć na innych klientów?
Uwaga: mówimy o projekcie, który ma 10 + M LOC.
Uwaga: używamy Team Foundation System, Visual Studio 2008 i C # (głównie).
Wszelkie sugestie, źródła lub pomysły dotyczące rozwiązania tej sytuacji? Czy jest jakiś model na rynku, który ma podobny problem?