Hemos estado construyendo un CRM para un cliente. Ahora que la primera fase principal ha finalizado y que se ha acordado una segunda, el cliente desea realizar una parte del trabajo, realizando modificaciones menores en el esquema de la base de datos y los procesos de negocios en la primera fase mientras construimos la segunda fase. .
No estoy seguro de que esto sea práctico, pero suponiendo que sí, me gustaría algunos consejos sobre qué medidas se pueden tomar para que esto sea factible. Esto es lo que tengo hasta ahora:
-
Hasta ahora, el cliente ha visto principalmente el proyecto desde el punto de vista de un usuario; claramente, un seminario de dos partes debería tener lugar donde le presentemos 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 ejemplo y escribe un nuevo proceso de negocios para la mejora del esquema.
- El código reside actualmente en un repositorio interno de Subversion. Si bien podemos configurar uno público o uno en su (a la que podemos hacer VPN), creo que un sistema distribuido funcionaría mejor. Sin embargo, parece que soy el único que se siente así, por lo que podría usar algunos argumentos convincentes.
-
No estoy seguro de cómo asignar / garantizar que el código que se ejecuta en producción está confirmado. 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 entonces" los desastres son inevitables. Idealmente, todos los cambios, antes del despliegue, deberían:
- estar documentado en un sistema de seguimiento de problemas,
- ocurren primero en un entorno de prueba separado, y
- tienen que pasar las pruebas automatizadas.
Por desgracia, dudo que la disciplina para cualquiera de esas prevalezca.
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 yo cree que él insistiría en.