Abbiamo creato un CRM per un cliente. Ora che la prima fase principale è terminata, e una seconda concordata, il cliente vorrebbe riprendere parte del lavoro, apportando lievi modifiche allo schema del database e ai processi aziendali nella prima fase mentre costruiamo la seconda .
Sono indeciso se questo sia del tutto pratico, ma supponendo che lo sia, vorrei alcuni suggerimenti su quali misure possono essere prese per renderlo del tutto praticabile. Ecco cosa ho finora:
Fino ad ora, il cliente ha in gran parte visto il progetto dal punto di vista di un utente; chiaramente, dovrebbe svolgersi un seminario in due parti in cui lo presentiamo ai meccanismi interni:
- in primo luogo, mostrando lo schema del database esistente e, a titolo esemplificativo, estendendolo,
- quindi, mostrando un codice di esempio e scrivendo un nuovo processo aziendale per il miglioramento dello schema.
- Il codice attualmente risiede in un repository Subversion interno. Mentre potremmo installarne uno o uno pubblico sulla sua rete (a cui possiamo VPN), penso che un sistema distribuito funzionerebbe meglio. Mi sembra di essere l'unico a sentirsi così, tuttavia, in modo da poter usare alcuni buoni argomenti convincenti.
Non sono sicuro di come imporre / garantire che venga eseguito il commit del codice eseguito in produzione. Sembra che "x abbia apportato un cambiamento critico e senza documenti 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, dovrebbero:
- essere documentato in un sistema di localizzazione dei problemi,
- si verificano prima in un ambiente di test separato e
- passare test automatici.
Purtroppo, dubito che prevarrà la disciplina per nessuno di questi.
Supponiamo che un'architettura plug-in o un progetto separato non siano opzioni praticabili, perché 1) il primo non esiste e 2) il secondo vieterebbe al client di guardare e eventualmente modificare il codice esistente, un'abilità che credo avrebbe insistere su.