Abbiamo un grande progetto che include diverse applicazioni che fungono da base per diversi clienti.
Ogni cliente ha la propria personalizzazione del prodotto, pietre miliari diverse, requisiti diversi e così via, e quindi ogni progetto si evolverà indipendentemente sulla base delle proprie esigenze.
Il nucleo del progetto è simile (ma non uguale) in ogni progetto e l'organizzazione è realizzata in modo tale che ci siano team che gestiscono ciascun cliente in modo indipendente (ma con comunicazione tra di loro secondo necessità). Finora, non sono stato in grado di trovare uno schema adatto alle nostre esigenze, cercando in Internet o trovando un'idea geniale :)
Finora, abbiamo lavorato ottenendo il prodotto adatto a tutte le esigenze, con rami specifici per le modifiche necessarie ma, sebbene il prodotto abbia una buona architettura, sta lentamente diventando un grosso problema. Ecco i principali problemi che affrontiamo:
- Pietre miliari diverse per ogni cliente: ciò significa che ogni squadra deve produrre versioni come tempi diversi senza che il resto degli impegni influenzi la stabilità o il loro prodotto.
- Requisiti diversi, che possono o meno influire sul nucleo del sistema in alcuni casi.
- Team di grandi dimensioni (oltre 20 membri del team)
- Gestione dei bug nel sistema: cosa fai se una squadra trova un bug nel suo progetto che potrebbe interessare altri clienti?
Nota: stiamo parlando di un progetto che ha 10 + M LOC.
Nota: stiamo utilizzando Team Foundation System, Visual Studio 2008 e C # (principalmente).
Qualche suggerimento, fonte o idea su come affrontare la situazione? Esiste un modello sul mercato che presenta un problema simile?