Abbiamo creato un CRM per un cliente. Ora che è stata completata la prima fase importante e una seconda è stata concordata, il cliente vorrebbe riprendere parte del lavoro, apportando modifiche minori allo schema del database e ai processi aziendali nella prima fase mentre costruiamo il secondo .
Sono indeciso se questo sia del tutto pratico, ma supponendo che lo sia, mi piacerebbe alcuni suggerimenti su quali misure possono essere prese per rendere tutto ciò davvero fattibile. Ecco cosa ho ottenuto finora:
-
Fino ad ora, il client ha principalmente visto il progetto dal punto di vista dell'utente; chiaramente, un seminario in due parti dovrebbe aver luogo dove lo introduciamo al funzionamento interno:
- prima, mostrando lo schema del database esistente e, a titolo di esempio, estendendolo,
- quindi, mostrando un codice di esempio e scrivendo un nuovo processo aziendale per l'ottimizzazione dello schema.
- Il codice attualmente risiede in un repository Subversion interno. Mentre potremmo impostare uno o uno pubblico sulla sua rete (che possiamo VPN per), sento che un sistema distribuito funzionerebbe meglio. Mi sembra di essere l'unico che si sente in quel modo, tuttavia, quindi potrei usare alcuni validi argomenti convincenti.
-
Non sono sicuro su come eseguire il commit / assicurare che venga eseguito il commit del codice che viene eseguito in produzione. Sembra che "x abbia apportato un cambiamento critico e non documentato proprio prima di andare in vacanza, ora stai cercando di capire questo bug che si sta verificando da quando" i disastri sono inevitabili. Idealmente, tutte le modifiche, prima della distribuzione, sarebbero:
- essere documentato in un sistema di tracciamento dei problemi,
- si verificano prima in un ambiente di test separato e
- devono superare test automatici.
Purtroppo, dubito che la disciplina per qualsiasi di quelli prevarrà.
Supponiamo che un'architettura plug-in o un progetto separato non siano opzioni praticabili, perché 1) il primo non esiste e 2) quest'ultimo impedirebbe al client di guardare e possibilmente modificare il codice esistente, una capacità I credo che vorrebbe insistere.