Quali sono i termini del contratto? Hai specificato di avere una fase di test di accettazione utente? Hai effettuato i pagamenti in base alla liquidazione dell'UAT?
I moduli / unità / sono stati accettati dalla tua organizzazione? Nota che c'è una differenza tra ricevuto e accettato. Ricevuto significa che hai ricevuto il codice e sta entrando nel test di accettazione dell'utente. Accettato significa che ha superato l'UAT.
Se il bug viene trovato dopo UAT, generalmente sei tenuto a pagare la correzione. Se viene rilevato durante UAT, non hai ancora ricevuto il codice di lavoro, quindi il traguardo del pagamento non è stato raggiunto.
Se non hai inserito alcun tipo di clausola di accettazione nel contratto, probabilmente dovrai pagare per correggere i bug.
Sto editorializzando qui - se sei in una condizione in cui non disponi di mezzi per far rispettare il codice di ricezione che funziona come previsto, quindi disattivi il contratto ora. L'azienda esterna è tenuta a fornire solo ciò che è nei termini del contratto. Se il contratto non specifica cosa sia "funzionale", allora sei praticamente in balia di ciò che viene consegnato per il contenuto finale.
Modifica aggiuntiva n. 1:
Se si è in un contratto "Tempo e materiali" per il lavoro di sviluppo, non vi è alcuna differenza funzionale tra il pagamento per loro di codificare una nuova funzione o il pagamento per correggere i bug nelle nuove funzioni. Pensalo in questo modo: solo perché ti hanno dato un'anteprima di una funzione non significa che la funzione sia stata effettivamente consegnata. Quindi, anche se potresti aver trovato difetti nell'anteprima della funzione, significa che non sono ancora completi con lo sviluppo. Quello che vedi come correzioni di bug è in realtà il loro continuo perfezionamento della funzione.
Modifica aggiuntiva n. 2:
Vorrei incoraggiare il controllo per vedere se ti sei spostato formalmente dal contratto a prezzo fisso all'approccio progetto-log / per-l'ora (alias T & M). In generale, ho mai consigliato a nessuno dei miei clienti di accettare un contratto T & M quando si tratta di nuovi sviluppi. Ci sono semplicemente troppe variabili in gioco per rendere un contratto T & M un rischio accettabile.
In un mondo di prezzi fissi, sono tenuti a risolvere tutti i problemi che impediscono di fornire la funzione specificata dal contratto. Quindi correzioni di bug dovrebbero essere sulla loro monetina, non il tuo.
In un mondo T & M, non esiste una soluzione di bug. È solo un ulteriore miglioramento del codice che è stato generato in quel momento.
(Editoriale # 2) Se le cose vanno male, non aver paura di abbandonare un cattivo contratto. Paga la sanzione di fuga e sii fatto con esso. È molto facile entrare in una situazione in cui i buoni soldi vengono gettati dopo male. Stop al cattivo processo di sviluppo; rielaborare la richiesta di offerta e specificare cosa è effettivamente richiesto; inchiostro un nuovo contratto. È il modo migliore per assicurarti che otterrai ciò di cui hai effettivamente bisogno e risparmierai un sacco di mal di testa nel lavorare con un cattivo contratto.