Con quanta rapidità e severità si dovrebbe suonare l'allarme quando le cose sembrano sospette?

5

Al momento ho il compito di fare da baby-sitter a un sistema ETL batch business critical, interrogare il database di questo sistema ogni mattina per incongruenze e rieseguire i lavori che hanno fallito.

Non sono il progettista originale del sistema o del database, ma ho apportato diverse modifiche ad entrambi e sono ragionevolmente a mio agio con il codice base e il modello dati.

Il sistema ha una reputazione per essere inaffidabile. Sono stati apportati miglioramenti, ma siamo ancora lontani dal raggiungere gli obiettivi da raggiungere. Ciò ha portato a problemi di fiducia sia per il sistema che per il team coinvolto. Quindi, ora il sistema ha una baby-sitter che si assicura che si comportino bene ogni mattina mentre lavoriamo per indurirlo.

Con questo in mente, mi sono imbattuto in un dilemma sul quale la mia squadra è divisa. Ogni volta che il sistema mostra incongruenze o esecuzioni fallite, con quale rapidità e severità dovremmo suonare l'allarme?

Ecco i fattori che sono entrati nella discussione finora:

  • Se non sappiamo che cosa sta causando un sintomo, ma il sintomo sembra grave, non smetteremo di suonare l'allarme, o suoneremo l'allarme con una gravità minore finché non ne conosciamo la causa e scopriamo che è davvero così grave?
  • Diciamo di conoscere la causa di qualcosa che causa un sintomo e il sintomo è grave. Abbiamo una strategia per mitigare quel sintomo, ma la soluzione ha la possibilità di uno o più fallimenti prima di un successo, e richiederà tuttavia del tempo per implementarla. Continuiamo a suonare l'allarme grave finché non completiamo i passaggi di attenuazione e continuiamo a vedere i dati andare lateralmente?
  • Diciamo di conoscere la causa di qualcosa che causa un sintomo, ma la causa è fuori dal nostro controllo e non saremo in grado di mitigare il sintomo finché la causa non verrà corretta da una terza parte. Questo merita la stessa severità di allarme come se la perdita di dati fosse responsabilità del nostro codice.
  • Se suoniamo troppo spesso i falsi allarmi, corriamo il rischio di perdere ancora più fiducia, perché ora sembriamo incompetenti riguardo alle modalità di errore del nostro sistema. Vale la pena ritardare gli allarmi, o moderare la loro gravità, per evitare di perdere la fiducia nella nostra capacità di sapere quando e come il nostro sistema si sta rompendo? Seguire gli allarmi di gravità elevata per ridurre il livello di gravità a sufficienza, o il danno è già stato fatto quando si è spento l'allarme grave?

Il motivo per cui lo chiedo è perché stamattina ho sentito che si trattava di un falso allarme, a causa di alcuni dati che inizialmente sembravano essere ben lontani da quello che mi aspettavo. Ulteriori ricerche hanno dimostrato che si trattava solo di una corsa contro dati insoliti, e quindi l'incoerenza che vedevo era prevedibile. Insieme a questo, ho dovuto tornare indietro e rieseguire alcune cose che non sono andate a buon fine, e ho dovuto aspettare che queste finissero prima che i miei controlli di coerenza dei dati significassero qualcosa.

Un altro membro del mio team mi ha chiamato su questo, e ha fatto il punto che non avrei dovuto suonare l'allarme, e avrei dovuto o non aver detto nulla fino a quando non ero sicuro, o aver riportato uno stato meno grave finché non ero sicuro che i dati erano in uno stato gravemente compromesso e che era nostra responsabilità che fosse così. In tal modo, non mi sto aiutando a ripristinare la fiducia.

Pertanto, con questo in mente, vorrei porre le seguenti domande: quando suoneresti gli allarmi e con quale gravità , per problemi di lavoro in batch come quello che descrivo sopra, sapendo che ha una storia di problemi? Inoltre, ci concentriamo sulle cose sbagliate nel ricostruire la fiducia cercando di assicurare che mandiamo gli allarmi il meno possibile ?

    
posta Ed Carrel 01.08.2011 - 22:41
fonte

6 risposte

16

Se vuoi creare fiducia, ti suggerisco di non chiederci, invece chiedi alle persone che consumano i tuoi avvisi .

Ora è un bel momento per tirarlo fuori. Spiega brevemente la situazione e chiedi se pensano che l'avviso avrebbe dovuto essere inviato com'era o no. Chiedere e agire sul feedback degli utenti è un ottimo modo per ottenere la risposta corretta per la tua situazione e creare la fiducia di cui hai bisogno.

    
risposta data 01.08.2011 - 23:18
fonte
7

Quando suoni un allarme, dovresti prima, nella misura massima possibile e pratica, sapere:

  1. Qual è il problema,
  2. Come risolverlo e
  3. Quanto ci vorrà per risolverlo.

La gravità del problema determinerà, in una certa misura, la dovuta diligenza che applichi a queste tre aree di segnalazione. Se il problema è veramente grave e lo sai già, allora tutte le tue risorse dovrebbero concentrarsi sulla risoluzione del problema, senza riportare in dettaglio in merito.

Ma non nascondere le cose; ciò minerà la tua credibilità più che avere una "politica delle porte aperte" sui problemi. Assicurati di aver compreso ogni problema, in modo che tu sappia di cosa stai parlando quando lo fai. Ciò consentirà di evitare il problema "falso allarme" che hai descritto.

In definitiva, il tuo team dovrebbe essere considerato affidabile per risolvere i problemi, non per perdere tempo a dire alla direzione quali sono i problemi. Ottenete tale fiducia fornendo una completa divulgazione ed essendo diligenti nel risolvere i problemi. Nel corso del tempo, svilupperai tale fiducia e il management ti farà sapere quante notifiche vogliono.

    
risposta data 01.08.2011 - 22:52
fonte
4

Innanzi tutto, ti incoraggio a ricordare a te stesso ea coloro con cui lavori che la fiducia nel prodotto e la fiducia nel tuo team si escludono a vicenda. Il tuo primo compito è creare fiducia nel tuo team al fine di costruire l'equità necessaria per influenzare il prodotto in modo da poter finalmente affrontare le carenze che spingono le persone a non fidarsi di esso.

Per creare fiducia nel tuo team, ciò che consiglio è un focus su tre aspetti chiave delle tue operazioni:

  • Comunicazione / Trasparenza
  • Coerenza
  • Affidabilità

Non ho idea di come siano le tue operazioni correnti, ma se non è già supportato da un sistema di tracciamento dei problemi e cambia sistema di gestione, installane uno. Puoi installare qualsiasi cosa da RT, Bugzilla o FogBugz, o utilizzare un servizio in hosting come Lighthouse. In entrambi i casi, è necessario un sistema del genere per fornire visibilità al processo, per fornire un monitoraggio adeguato per eventi specifici e per fungere da base di conoscenza per la risoluzione di problemi di un tipo specifico.

Successivamente, è necessario un "Run Book". Un Run Book documenterà in modo più coerente, i passi da compiere quando viene rilevato un problema. Un libro di esercizi fornisce istruzioni dettagliate alle persone del tuo team per identificare, diagnosticare, correggere e / o se necessario estendere il problema a qualcun altro del team che può portare più esperienza a sopportare il problema.

Inoltre, considera la possibilità di pubblicare una pagina di stato del sistema che indichi chiaramente e sinteticamente se il sistema è ok, in difficoltà, in condizioni critiche, ecc. Dà agli altri membri dell'organizzazione gli strumenti di cui hanno bisogno per comunicare ai loro collegi elettorali, sia esso CEO o clienti. La possibilità per qualcuno di andare da qualche parte, accertare se le cose vanno bene o no, può essere salvavita ai responsabili della risposta a problemi e / o domande dei clienti. "Grazie per avercelo fatto sapere, siamo consapevoli del problema e stiamo lavorando attivamente per risolverlo."

Infine, conduci e pubblica postmortem per ogni nuovo tipo di evento. Distribuisci i postmortems per selezionare le persone in azienda in modo tempestivo.

Questo può sembrare intimidatorio, specialmente se si tratta di un sacco di lavoro / processo extra rispetto a quello a cui sei abituato. Ricorda, questi sistemi vanno tutti a supporto dei tre valori che i tuoi team investono nella costruzione.

  1. La creazione di documentazione e un sistema per tenere traccia dei problemi quando si verificano consente a tutti gli utenti dell'organizzazione di sapere cosa sta andando male, chi ci sta lavorando e cosa è stato fatto per risolverlo. I postmortem consentono al tuo team di documentare la causalità e, auspicabilmente, illustrare nel tempo che la tua squadra non è la causa principale del problema e che il tuo team è attivamente impegnato nel processo per assicurarsi che le cose brutte non si ripetano.

  2. La documentazione e il runbook aiutano l'organizzazione a eseguire in modo coerente. Alcuni problemi vengono risolti rapidamente e alcuni possono richiedere giorni. Ma l'uniformità nel modo in cui i problemi vengono affrontati e risolti può aiutare a distogliere le persone dalle tue spalle quando le cose vanno male perché sanno per esperienza (anche passivamente) che il tuo team esegue molto e più volte.

  3. Infine, questi sistemi aiutano a dimostrare la tua affidabilità telegrafando il tuo lavoro al resto dell'organizzazione. Mostra leadership attraverso la crisi e la capacità di mantenere la calma.

Tutto ciò contribuisce a creare fiducia nella tua squadra. Quindi, una volta che le persone si fidano di te, spero di avere il peso necessario per influenzare il team del prodotto per apportare modifiche in modo da non essere costantemente impegnato in esercitazioni antincendio.

    
risposta data 01.08.2011 - 23:46
fonte
3

I sistemi Mission Critical necessitano di monitoraggio critico delle missioni

Mi sembra che i sistemi che stai monitorando siano mission-critical e causino stress finanziari e legali alle aziende se scendono.

Generalmente è meglio avere un falso allarme piuttosto che non avere un allarme e aprirsi a un contenzioso o operare sotto il falso pretesto che il sistema è in esecuzione ma in realtà è offline, ma nessuno lo ha ancora notato. Cioè Un sistema di gateway di pagamento è attualmente offline, ma le transazioni non riescono senza generare errori visibili (gli errori si trovano in un file di registro da qualche parte).

Monitoraggio automatico

Dovresti disporre di un sistema di avviso automatico come Nagios che sta monitorando tutte le parti del sistema critiche per le missioni. Avere qualcuno registri di revisione per i dati imprevisti è ok per il breve termine, tuttavia essere in grado di avere un avviso immediato se un fornitore di gateway di pagamento o una VPN mission critical non è in linea può significare una grande differenza.

Nagios non è solo per il monitoraggio se i sistemi sono online e ping. È possibile scrivere plug-in dal proprio software per riportare lo stato su Nagios. Ho avuto server di monitoraggio Nagios che eseguono MSMQ e segnalano lo stato della coda dei messaggi

Fidati della trasparenza

Una volta attivato il monitoraggio automatizzato, esiste una parvenza di fiducia nel sistema e inerentemente il team e l'applicazione. Se qualcosa va offline verrà immediatamente avvisato e può essere gestito.

La gestione del rischio è una decisione commerciale e non tecnica

I problemi a cui il monitoraggio del software non può fare a meno sono errori di logica del caso d'angolo che possono e saranno verificarsi in sistemi complessi di grandi dimensioni. Generalmente, se un bug di questa gravità continua, ciò può causare problemi legali. In tal caso, è meglio chiudere l'attività del sistema fino a quando non è possibile risolverlo.

Tuttavia questa è una decisione aziendale e in ogni caso l'azienda dovrebbe sempre sapere che cosa sta succedendo con il sistema in modo che possa eseguire la gestione del rischio.

    
risposta data 02.08.2011 - 01:39
fonte
2

This has led to trust issues for both the system and the team involved.

By doing so, I am not helping us restore trust

when would you sound the alarms, ...

Fiducia == Trasparenza. Visibilità. Chiarezza.

Niente a che vedere con gli allarmi. Il suono di un "allarme" è un errore, tranne nel caso raro di lesioni personali, violazioni della sicurezza dei dati o guasti del controllo finanziario.

Riducete il livello di minaccia di qualche tacca. I fatti sono fatti. Cerca di attenersi ai fatti.

Prendi "allarme" dal tuo vocabolario. Passa da "allarme" a "fatto" e riporta semplicemente i fatti senza ansia, stress o allarmi.

    
risposta data 01.08.2011 - 23:26
fonte
1

Per me è semplice:

Se ti manchi l'SLA, avvisa.

Se si verifica una perdita di integrità dei dati, si avvisa ad alta voce, con l'opzione di passare offline. Spesso, il rapporto valido di ieri è migliore del rapporto sbagliato di oggi.

Se si verifica una connettività ridotta, si avvisa.

Se hai intenzione di rendere il sistema dati non disponibile per la manutenzione, avvisa.

    
risposta data 02.08.2011 - 02:05
fonte

Leggi altre domande sui tag