Nous construisons un CRM pour un client. Maintenant que la première phase majeure est terminée et qu'une seconde a été convenue, le client souhaite reprendre une partie du travail, en apportant des modifications mineures au schéma de la base de données et aux processus métier la première phase pendant que nous construisons la seconde .
Je ne sais pas si cela est vraiment pratique, mais en supposant que ce soit le cas, j'aimerais avoir des indications sur les mesures à prendre pour que cela soit réalisable. Voici ce que j'ai jusqu'à présent:
Jusqu'à présent, le client a surtout vu le projet du point de vue d'un utilisateur; clairement, un séminaire en deux parties devrait avoir lieu où nous lui présenterons le fonctionnement interne:
- tout d'abord, en montrant le schéma de base de données existant et, à titre d'exemple, en l'étendant,
- puis, en montrant un exemple de code et en écrivant un nouveau processus métier pour l'amélioration du schéma.
- Le code réside actuellement dans un référentiel Subversion interne. Bien que nous puissions en créer un ou un public sur son réseau (auquel nous pouvons VPN), je pense qu'un système distribué fonctionnerait mieux. Cependant, il me semble que je suis le seul à ressentir cela, alors je pourrais utiliser de bons arguments convaincants.
Je ne sais pas comment mandater / s'assurer que le code qui s'exécute en production est validé. On dirait que "x a fait un changement critique et non documenté juste avant de partir en vacances; maintenant y essaie de comprendre ce bug qui se produit depuis" les catastrophes sont inévitables. Idéalement, toutes les modifications, avant le déploiement, devraient:
- être documenté dans un système de suivi des problèmes,
- se produire d'abord sur un environnement de test séparé, et
- doivent passer des tests automatisés.
Hélas, je doute la discipline pour tout ceux qui prévaudra.
Supposons qu'une architecture de plug-in ou un projet séparé ne sont pas des options viables, car 1) le premier n'existe pas et 2) le second interdirait au client de consulter et éventuellement de modifier le code existant, une capacité que je crois qu'il le ferait insister sur.