Hemos estado construyendo un CRM para un cliente. Ahora que la primera fase principal ha finalizado, y una segunda acordada, al cliente le gustaría retomar parte del trabajo, realizando enmiendas menores al esquema de la base de datos y a los procesos comerciales la primera fase mientras construimos la segunda .
No estoy seguro de si esto es práctico, pero suponiendo que lo sea, quisiera algunos consejos sobre las medidas que se pueden tomar para que esto sea viable. Esto es lo que tengo hasta ahora:
Hasta ahora, el cliente ha visto principalmente el proyecto desde el punto de vista del usuario; claramente, debería llevarse a cabo un seminario de dos partes donde le presentamos el funcionamiento interno:
- primero, mostrando el esquema de base de datos existente y, a modo de ejemplo, extendiéndolo,
- luego, muestra un código de muestra y escribe un nuevo proceso de negocio para la mejora del esquema.
- El código actualmente reside en un repositorio interno de Subversion. Si bien podríamos configurar uno público o uno en su red (que podemos usar para VPN), creo que un sistema distribuido funcionaría mejor. Sin embargo, parezco ser el único que se siente así, así que podría usar algunos buenos argumentos convincentes.
No estoy seguro de cómo ordenar / garantizar que el código que se ejecuta en producción esté comprometido. Parece que "x hizo un cambio crítico e indocumentado justo antes de irse de vacaciones; ahora está tratando de descubrir este error que ha estado ocurriendo desde que" los desastres son inevitables. Idealmente, todos los cambios, antes del despliegue, deberían:
- estar documentado en un sistema de seguimiento de problemas,
- ocurrir primero en un entorno de prueba separado y
- tiene que pasar pruebas automatizadas.
Por desgracia, dudo que prevalezca la disciplina para cualquiera de ellos.
Suponga que una arquitectura de plug-in o un proyecto separado no son opciones viables, porque 1) el primero no existe, y 2) el último prohibiría al cliente mirar y posiblemente modificar el código existente, una habilidad que creo que él haría insistir.