У нас дуже великий проект, який включає кілька додатків, які виступають базою для різних клієнтів.
У кожного клієнта є своя персоналізація продукту, різні основні етапи, різні вимоги тощо, і таким чином кожен проект розвиватиметься незалежно залежно від власних потреб.
Ядро проекту, є подібним (але не рівним) у кожному проекті, організація створена так, що є команди, які обробляють кожного клієнта самостійно (але з комунікацією між ними у міру необхідності). Поки що я не зміг знайти жодної схеми, яка б відповідала нашим потребам, або в пошуку в Інтернеті, або придумала геніальну ідею :)
Поки ми працювали над тим, щоб виріб підходив до всіх потреб, маючи конкретні гілки для необхідних змін, але, хоча продукт має гарну архітектуру, він поступово стає великою проблемою. Ось основні проблеми, з якими ми стикаємося:
- Різні основні етапи для кожного клієнта: Це означає, що кожна команда повинна виробляти версії як різні часи, без решти зобов'язань, що впливають на стабільність або їхній продукт.
- Різні вимоги, які можуть або не впливають на ядро системи в деяких випадках.
- Великі команди (20+ членів команди)
- Поводження з помилками в системі: Що робити, якщо команда знайде помилку в своєму проекті, яка може вплинути на інших клієнтів?
Примітка. Ми говоримо про проект, який має 10 + M LOC.
Примітка. Ми використовуємо Team Foundation System, Visual Studio 2008 та C # (в основному).
Будь-які пропозиції, джерела чи ідеї щодо вирішення ситуації? Чи є на ринку модель, яка має подібну проблему?