Tenemos un proyecto muy grande que incluye varias aplicaciones que sirven de base para diferentes clientes.
Cada cliente tiene su propia personalización del producto, diferentes hitos, diferentes requisitos, etc. y, por lo tanto, cada proyecto evolucionará de forma independiente en función de sus propias necesidades.
El núcleo del proyecto es similar (pero no igual) en cada proyecto y la organización está hecha para que haya equipos que manejen a cada cliente de forma independiente (pero con comunicación entre ellos según sea necesario). Hasta ahora, no he podido encontrar ningún esquema que se adapte a nuestras necesidades, ya sea buscando en Internet o surgiendo alguna idea brillante :)
Hasta ahora, hemos estado trabajando para que el producto se adapte a todas las necesidades, con ramas específicas para los cambios necesarios, pero, aunque el producto tiene una buena arquitectura, lentamente se está convirtiendo en un gran problema. Estos son los principales problemas que enfrentamos:
- Diferentes hitos para cada cliente: lo que significa que cada equipo debe producir versiones en diferentes momentos sin que el resto de los compromisos afecten la estabilidad o su producto.
- Diferentes requisitos, que pueden o no afectar el núcleo del sistema en algunos casos.
- Grandes equipos (más de 20 miembros del equipo)
- Manejo de errores en el sistema: ¿Qué hacer si un equipo encuentra un error en su proyecto que podría afectar a otros clientes?
Nota: Estamos hablando de un proyecto que tiene 10 + M LOC.
Nota: Estamos usando Team Foundation System, Visual Studio 2008 y C # (principalmente).
¿Alguna sugerencia, fuente o idea sobre cómo abordar la situación? ¿Hay algún modelo en el mercado que tenga un problema similar?
fuente