Sto mantenendo un'applicazione legacy che interagisce con un ERP. L'ERP ha molte funzioni interessanti. Uno degli obiettivi dell'applicazione legacy consiste nel memorizzare i dati preparatori da inviare all'ERP, ma anche tenere aggiornati i dati in base a ciò che accade nell'ERP. Una sincronizzazione bidirezionale.
Purtroppo, l'applicazione legacy non implementa tutte le funzionalità dell'ERP per i bit che deve sincronizzare. Ciò non ha impedito all'azienda di utilizzare tutte le funzionalità ERP e quindi ha richiesto che l'applicazione legacy rimanesse sincronizzata.
Le differenze sono strutturali e non semplici da implementare nell'applicazione legacy. L'azienda non si preoccupa del problema perché è gestita dagli sviluppatori che devono raggruppare i dati in una struttura non destinata a questo, che porta a molti bug e che è costretta a violare le regole di integrità dei dati nel DB (che influisce sul business in cambio ma in modo così indiretto che non capiscono, non importa quante volte è spiegato). L'azienda ha priorità migliori.
Nella situazione data, sarebbe un dovere morale e / o professionale impedire che ciò accada ulteriormente per preservare la scarsa integrità dei dati e iniziare a percorrere una strada più pulita, o se la decisione dell'azienda fosse la fine di tutto tutti?
Nel caso in cui fermare la follia è la cosa giusta da fare, come si può fare? Sapendo che nel contesto attuale sembra impossibile dire "no, il software non può farcela, smettila di provare ad inserire i pioli quadrati nei fori rotondi". Il business è estremamente freddo all'idea che gli sviluppatori passino il tempo a rendere le cose strutturate e sicure, dal momento che non dà loro nulla di nuovo (funzionalità-saggio) da masticare. Fondamentalmente è interpretato come tempo sprecato.