Hemos escrito un paquete de software para una industria de nicho particular. Este paquete ha sido bastante exitoso, en la medida en que hemos registrado varios clientes diferentes en la industria, que nos utilizan como proveedores de soluciones alojadas, y muchos otros están llamando a nuestras puertas. Si logramos el tipo de éxito que buscamos, literalmente tendremos cientos de clientes, cada uno con su propio sitio web alojado en nuestros servidores.¿Cómo administrar clientes múltiples con reglas comerciales ligeramente diferentes?
El problema es que cada cliente presenta sus propias pequeñas personalizaciones y modificaciones que necesita para sus propias circunstancias y condiciones locales, a menudo (pero no siempre) según el estado local o incluso la legislación o burocracia del condado. Entonces, aunque probablemente el 90-95% del sistema sea el mismo para todos los clientes, vamos a tener que crear y soportar estas pequeñas personalizaciones.
Por otra parte, el sistema todavía es un trabajo en progreso. Hay mejoras y correcciones de errores continuamente en el sistema central que deben aplicarse en todos los clientes.
Estamos escribiendo código en .NET (ASP, C#), MS-SQL 2005 es nuestro servidor de bases de datos, y estamos usando SourceGear Vault como nuestro sistema de control de origen. He trabajado anteriormente en bóveda en Vault, y es genial si solo necesitas mantener sincronizadas 2 o 3 ramas, pero estamos buscando mantener cientos de ramas, lo cual es impensable.
Mi pregunta es: ¿Cómo recomendarías que administremos todo esto?
Espero que las respuestas se dirijan a cosas como arquitectura de objetos, arquitectura de servidor web, gestión de control de fuente, equipos de desarrolladores, etc. Tengo algunas ideas propias, pero no tengo experiencia en gestionar algo como esto, y Realmente agradecería saber de personas que han hecho este tipo de cosas antes.
Gracias!
+1 gracias - gran consejo –
+ crédito de respuesta - muchas buenas respuestas sobre esta pregunta, pero creo que la suya es la más útil y concisa. ¡Gracias! –