Personalmente penso che questo principio dovrebbe essere preso con un pizzico di sale. Il codice è organico, le aziende cambiano e il codice cambia in base alle esigenze di un'azienda nel corso del tempo.
Trovo molto difficile capire che l'astrazione è la chiave. E se l'astrazione fosse originariamente sbagliata? Cosa succede se la funzione aziendale è cambiata in modo significativo?
Questo principio garantisce essenzialmente che le intenzioni e il comportamento ORIGINALI di un progetto non debbano mai cambiare. Questo probabilmente funziona per coloro che hanno API pubbliche e i loro clienti hanno problemi a tenere il passo con le nuove versioni e altri casi limite. Tuttavia, se una società possiede TUTTO il codice, allora sfido questo principio.
Avere una buona copertura di test del codice dovrebbe rendere il refactoring del codice base un gioco da ragazzi. Significa che è giusto sbagliare: i tuoi test ti aiuteranno a migliorare il design.
Dicendo che, se non ci sono test, allora questo principio è valido.