Il nostro prodotto è un sistema distribuito. I moduli su cui lavoro sono abbastanza nuovi, abbastanza rigorosi, ben testati. Sono stati sviluppati tenendo conto delle recenti migliori pratiche. Altri moduli possono essere considerati come software legacy.Fail Fast vs. Solidità
Mentre sono attento a tutto ciò che accade nei moduli di cui sono responsabile, sono costantemente sotto pressione per lavorare con dati errati che mi vengono inviati dagli altri moduli. In fondo, sono uno sviluppatore del principio "Fail Fast" e di conseguenza, quando sorgono problemi, di solito sono in grado di eliminare la possibilità di errore nei miei moduli. Non si tratta tanto di incolpare, ma di risparmiare sforzi inutili per inseguire i bug nei posti sbagliati.
Ma l'argomento che continuo a discutere è: "Non possiamo lasciare che questa roba fallisca in produzione, il cliente si aspetta che funzioni, perché non si lavora su questo problema". E questo sarebbe un argomento di solidità: sii liberale in ciò che accetti, conservatore in ciò che mandi.
Devo anche notare che si tratta principalmente di problemi intermittenti. Li vediamo nei test di integrazione ma sono difficili da riprodurre. Cronometraggio e concorrenza sono coinvolti.
Ho difficoltà a bilanciare i due principi. In parte è la mia preoccupazione che se inizio a permettere e diffondere dati eccezionali, sto invitando problemi e non avrò più tanta fiducia nel mio sistema. Ma non posso discutere contro il mantenimento del sistema operativo anche se altri moduli mi stanno inviando dati errati. La ragione per cui altri moduli non vengono sistemati è che sono troppo complessi e fragili, mentre i miei appaiono ancora chiari e sicuri. Ma se non resisto alla pressione, i miei moduli verranno lentamente sellati con gli stessi problemi che ho rifiutato fino ad ora.
Devo dire che il sistema non si sta "bloccando" in produzione, ma il mio modulo potrebbe semplicemente visualizzare un errore all'operatore e chiedere loro di contattare l'assistenza. Un incidente sarebbe un grosso problema, ma se sto segnalando chiaramente l'errore, allora non è questa la cosa giusta da fare? Sospetto che i miei colleghi non vogliano che il cliente veda qualche problema, punto. Ma il mio modulo sta rifiutando i dati da altri moduli all'interno del nostro prodotto, non dall'input del cliente. Quindi mi sembra che non stiamo affrontando problemi.
Quindi, devo essere più pragmatico o tenere la mia terra?
Wow, l'intero thread, inclusi i commenti e le risposte, era totalmente professionale e ben fatto. Nessuna risposta istintiva, nessun dito puntato, nessuna lamentela. Sono impressionato da tutti coloro che hanno partecipato. Votate per aver fornito la conclusione, anche se un po 'incerto sull'accettare la vostra risposta. – MJB
Non ero sicuro di cosa fare per le risposte francamente. Pensavo che doveva essere la linea d'azione presa. Sto ancora imparando come farlo. – tolak