Questa è una domanda un po 'complessa a cui rispondere perché, come molte cose, dipende davvero dalle circostanze del progetto, dal livello di controllo che la società appaltata ha, se il software personalizzato è stato gestito dall'azienda appaltata per l'intero ciclo di vita, la quantità di "interferenza" da parte di altre persone con accesso alla base di codice, l'atteggiamento di tutte le persone coinvolte, la complessità del progetto e le metodologie utilizzate ... Potrei davvero continuare.
Tutti i sistemi hanno un certo debito tecnico. In alcuni casi questo potrebbe non essere particolarmente evidente a causa degli sforzi diligenti da parte degli sviluppatori che lavorano per mantenere sempre una base di codice pulita, tuttavia nessun sistema è perfetto e una riprogettazione importante può rendere evidente un problema apparentemente innocente ma di lunga data. Quindi, come gestiscono le aziende a contratto?
In molti casi non lo fanno. Spesso il software viene scritto da una società, quindi modificato da un'altra, e non è inusuale vedere la base di codice essere davvero incasinata poiché ogni società sotto contratto lavora a una scadenza serrata e non giustifica il tempo per mantenere pulito il codice ( e a volte a malapena testato) se ciò significa che potrebbero rischiare di perdere una scadenza.
In altri casi, trovi aziende che non solo gestiscono bene il loro progetto contrattato, ma che in qualche modo trovano il tempo per lasciare la base di codice esistente in uno stato migliore di quello che hanno trovato. Lo fanno spesso con un'attenta pianificazione, identificando le fonti di debito tecnico - di solito quelle che avranno un impatto maggiore sul nuovo lavoro - e escogitano strategie per fornire casi di prova e modifiche che contribuiscono a gestire il debito tecnico e ad integrare tutto ciò nel loro programma di progetto .
Essere un software personalizzato garantisce un debito tecnico rispetto alla scrittura di un prodotto centrale? La risposta breve è no, tuttavia è probabile che il debito tecnico maturi se non viene attivamente trattato. È lo stesso di qualsiasi altro progetto software. Se controlli il progetto interamente durante il suo ciclo di vita, allora hai una migliore opportunità di affrontare il debito tecnico. In caso contrario, dovrai occuparti del debito tecnico che potrebbe essere derivato dal codice che la società precedente ha lasciato indietro.
D'altra parte, se la tua domanda fosse quella di chiedere se scrivere software indipendentemente dal tuo modello di business sia una garanzia di debito tecnico. La risposta sarebbe assolutamente. La vera domanda è come qualsiasi azienda gestisce il debito tecnico. Lasciarli maturare e gestirli in un momento prestabilito o gestire una base di codice pulita in modo continuo al fine di pagare il debito tecnico il più presto possibile? Tale risposta si basa sulle priorità individuali di un'azienda e se il debito tecnico sostenuto è finanziariamente rilevante.