Ho una classe di chirurgo che cambia costantemente
class Surgeon
{
string name, discipline;
public:
Surgeon(string _name, string _discp) : name{_name}, discipline{_discp}{}
void writeDir(string _dir);
void readDir(string _dir);
}
Ora devo aggiungere le impostazioni di registrazione a Surgeon. Tenendo presente i principi SOLID questo mi costringe a tornare in classe Surgeon aggiungendo impostazioni di registrazione e modificare tutto nella classe del chirurgo. Ora, sono anche consapevole che l'attuale implementazione del software aggiunge già valore all'azienda. E il refattore non è necessario, ma per fare questo compito ho bisogno di rifattorizzare l'intera classe. Se aggiungo solo la funzionalità che funziona con il design attuale, sto semplicemente perpetuando un cattivo design.
Da dove proviene l'ingegnere software il maggior valore? Dovrei produrre codice che mostri i risultati rapidamente, ma è soggetto a errori in futuro o dovrei ritardare i risultati rapidi per produrre un buon codice che sia più robusto? Quale sarebbe il mezzo felice se ce n'è?