Ho osservato una correlazione tra un software di ordinazione dei clienti di qualità "abbastanza buona" e lo stesso cliente che non è disposto a pagare per le buone pratiche di ingegneria (test di unità, revisioni di codice e simili) che molte volte chiamerei causalità . Tuttavia, sto avendo difficoltà a trovare un ragionamento logico alla base di questo modo di pensare, quindi vorrei apprezzare alcuni spunti della comunità qui.
A mio parere, le pratiche ingegneristiche sopra menzionate hanno effetto solo su due attributi di qualità: manutenibilità e, in misura minore, affidabilità. Fatta eccezione per i prototipi da buttare via, non riesco a immaginare un cliente sano di mente che vorrebbe avere un software che
- si blocca di tanto in tanto (anche se mi rendo conto che le aspettative MTBF variano a seconda del costo dell'errore) e / o
- comporta notevoli costi di manutenzione lungo la strada.
D'altra parte, altri attributi di qualità come la scalabilità o le prestazioni non sono direttamente influenzati dalle pratiche ingegneristiche (se non consideriamo le revisioni di architettura che fanno parte di un altro campionato). Cosa ancora più interessante, il rilassamento di uno o più di questi potrebbe portare a riduzioni dei costi più considerevoli, mentre non seguire le corrette pratiche di ingegneria potrebbe anche portare ad aumentare i costi del progetto a causa del cosiddetto "ciclo di debug / stabilizzazione infinito"
Mi dovrebbe mancare qualcosa di importante dal momento che la preferenza per "salvare" sul non fare lo sviluppo del software correttamente è così diffusa tra i clienti.
Per favore illuminami:)