Recentemente ho iniziato a lavorare su un'applicazione legacy che francamente non fa tutto ciò che dovrebbe. Manca un sacco di funzioni, ha a malapena qualsiasi capacità di amministrazione e non controlla la metà dei dati che dovrebbe.
In quanto tale, è molto facile per gli utenti fare qualcosa di stupido e rimanere bloccati. "Ops, ho aggiunto questo elemento del tipo sbagliato a questo coso e ora non mi consentirà di rimuoverlo" . In effetti, l'applicazione avrebbe dovuto verificarlo, ma consentito aggiungere l'elemento sbagliato. E ora, quando si tratta di eliminare l'oggetto sbagliato, diventa estremamente protettivo e si rifiuta di rimuovere qualsiasi cosa.
Il problema è che i clienti (che in realtà sono utenti all'interno dell'azienda) non si preoccupano molto di questo. Hanno bisogno dell'applicazione per contenere i dati del mondo reale come dovrebbero, quindi chiedono agli sviluppatori di "ripararli" modificando i dati. In questo esempio, l'eliminazione dell'elemento sbagliato. In altri casi, riassegnerà gli articoli a diversi genitori, correggendo vari valori, ecc ...
Dato che l'applicazione non ha quasi nessuna GUI di amministrazione, tutto finisce per essere eseguito direttamente nel database (augh!), mettendo a rischio ancora più problemi down-the-line a meno che tu non sappia esattamente come funziona ( che nessuno fa davvero considerando la massiccia applicazione).
In definitiva, sembra che il database sia diventato un enorme file di Excel che si modifica giorno per giorno ai capricci dei clienti, a causa di errori dell'applicazione.
È ovvio per me che la correzione dell'applicazione per evitare situazioni del genere dovrebbe essere la priorità, ma sembra che i clienti preferiscano chiedere un sacco di nuove funzionalità invece che siano accettate come tali.
Che cosa può fare uno sviluppatore in una situazione del genere? È persino possibile rifiutare le modifiche di DB in favore di sistemare le cose? Ci sono così tanti bug che sembra che non aspetteranno mai che a lungo ...