Questa è una domanda alquanto complessa a cui rispondere perché, come molte cose, dipende realmente dalle circostanze del progetto, dal livello di controllo della società appaltata, indipendentemente dal fatto che il software personalizzato sia stato gestito dalla società appaltata per l'intero ciclo di vita. , la quantità di "interferenze" 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 andare avanti.
Tutti i sistemi hanno un certo grado di 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 una questione apparentemente innocente, ma di vecchia data. Quindi, come gestiscono le aziende appaltate?
In molti casi non lo fanno. Spesso il software sarà scritto da una ditta, poi modificato da un'altra, e non è raro vedere la base di codice diventare davvero incasinata dato che ogni azienda sotto contratto lavora a una scadenza ristretta e non giustifica il tempo per mantenere il codice pulito ( 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 contrattuale, ma trovano anche il tempo di lasciare il codice esistente in uno stato migliore rispetto a quello in cui lo hanno trovato. Lo fanno spesso con un'attenta pianificazione, identificando le fonti di debito tecnico - di solito quelle che incidono di più sul nuovo lavoro - e escogitano strategie per fornire casi di test e modifiche che contribuiscono alla gestione del debito tecnico e fanno tutto questo 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 maturerà se non viene affrontato attivamente. Questo è uguale a 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, sarà necessario affrontare il debito tecnico che potrebbe essere derivato dal codice che la società precedente ha lasciato.
D'altra parte, se la tua domanda dovesse chiederti se scrivere software indipendentemente dal tuo modello di business è una garanzia di debito tecnico. La risposta sarebbe assolutamente. La vera domanda è come qualsiasi azienda gestisce il debito tecnico. Lasciarlo maturare e gestirlo a un orario programmato, o gestire una base di codice pulita in modo continuativo al fine di pagare il debito tecnico il prima possibile? Questa risposta si riduce alle priorità individuali di un'azienda e se il debito tecnico sostenuto è rilevante dal punto di vista finanziario.