Le patch sono un brutto segno per il cliente? [chiuso]


14

In ufficio siamo appena usciti da un lungo periodo in cui rilasciavamo patch su una base troppo frequente. Verso la fine di quel periodo stavamo facendo in media quasi tre cerotti alla settimana.

Oltre a questo è stato molto demotivante per gli sviluppatori, mi chiedevo cosa ne pensasse il cliente. Ho posto la domanda da solo e ho concluso che non avevo mai conosciuto un software aggiornato di frequente. Tuttavia, per il caso che si avvicina di più non mi interessa davvero poiché le patch vengono applicate abbastanza rapidamente.

I clienti che hanno ricevuto queste patch differiscono molto gli uni dagli altri. Alcuni stavano davvero aspettando la patch dove ad altri non importava davvero, eppure avevano tutti le stesse patch. Il tempo di aggiornamento del software del cliente è inferiore a 30 secondi, quindi non mi aspetto alcun problema relativo al tempo. Tuttavia, devono essere disconnessi.

Quindi la mia domanda in modo più dettagliato: ricevere aggiornamenti frequentemente dà un messaggio "negativo" al destinatario?

Certo, potrei chiedere ai clienti, ma non sono in quella posizione né voglio "Risvegliare i cani che dormono".

PS: Se c'è qualcosa che potrei fare per migliorare la mia domanda, ti preghiamo di lasciare un commento.


@downvoter, ti interessa spiegare?
Mixxiphoid,

6
Se sei preoccupato per la percezione dei clienti, forse descriverli come "aggiornamenti" piuttosto che "patch"? :)
Chris Taylor,

Sebbene questa non sia una risposta diretta, se è possibile mantenere la distribuzione della patch il più non intrusiva e automatica possibile (ad esempio, scaricare gli aggiornamenti in background, avere un servizio di aggiornamento in esecuzione da applicare mentre è inattivo), è possibile mitigare l'ansia dell'utente finale rendendo ovvi gli aggiornamenti. Ad esempio: quanti aggiornamenti di Google Chrome hai ricevuto nell'ultimo mese o giù di lì? (Risposta: molte ) Potrebbero rilasciare 5 patch per Chrome al giorno e nessuno alzerebbe un sopracciglio. Gli aggiornamenti automatici di Windows (se abilitati) sono un altro esempio.
Jason C

"Il tempo di aggiornamento del software dei clienti è inferiore a 30 secondi, quindi non mi aspetto alcun problema relativo al tempo. Tuttavia, devono essere disconnessi." Che dire del cliente che sta testando la patch? Non so con che tipo di software stai lavorando, ma se è vicino a una missione critica per chiunque, vorranno testare un aggiornamento prima di utilizzarlo in un ambiente di produzione. Mentre l'installazione della patch potrebbe essere semplice e veloce, i test richiederanno molto tempo e sforzi da parte del cliente.
un CVn

@ MichaelKjörling Il problema è che in quel periodo le funzionalità mission critical fallirono, quindi non importava se l'ambiente di produzione o l'ambiente di test veniva aggiornato per primo. Doveva solo funzionare al più presto.
Mixxiphoid,

Risposte:


24

Come per molte cose nell'informatica, dipende. Se le patch rispondono alle richieste dei clienti di nuove funzionalità o miglioramenti, la tua azienda verrà considerata reattiva. Se, d'altra parte, le tue patch sono una risposta alle segnalazioni di bug, la tua azienda verrà considerata incompetente.

inserisci qui la descrizione dell'immagine

Testare il software sui tuoi clienti è di gran lunga il modo più costoso possibile per rilevare i bug, indipendentemente da ciò che dicono tutti. È una falsa economia; la manodopera gratuita che ritieni di ottenere è più che compensata dallo sforzo del servizio clienti, interrompendo il ciclo di vita dello sviluppo del software e perdendo la fiducia dei clienti.


3
Forse questa dovrebbe essere una domanda diversa, ma comunque: sapevamo che stavamo testando tramite i nostri clienti ma non potevamo fermarlo in quel momento, eravamo intrappolati in un ciclo. Cosa potremmo fare per uscire?
Mixxiphoid,

3
Robert, ho visto questo diagramma molte volte prima. Probabilmente era corretto quando lo sviluppo del software seguiva un puro modello a cascata, ma poiché il software può essere sviluppato e distribuito in piccoli cicli, è diventato sempre più sbagliato. Per essere precisi - per una piccola quantità di bug e software la tendenza è ancora vera, per molti bug è sicuramente sbagliato.
Doc Brown,

2
@DocBrown: il grafico è ancora corretto. Cicli di sviluppo più brevi significano meno costi per ciclo, il che è coerente con il grafico. Ma ciò non significa ancora che dovresti testare il tuo software sui tuoi clienti, a meno che non ci sia una chiara comprensione e un accordo sul fatto che questo sia parte del processo.
Robert Harvey,

Bene, il costo dei difetti diminuisce prima che il bug venga trovato e corretto. E la possibilità di trovare un bug aumenta in modo drammatico quanto prima si fa uscire il software dalla porta. Ciò non significa che si dovrebbe spingere in produzione software non testato, ovviamente. Raccomando, ad esempio, questo articolo agileelements.wordpress.com/2008/04/22/cost-of-software-defects
Doc Brown

1
Basta un po 'di autoriflessione per vedere che il principio stesso è solido, anche se i numeri o la forma della curva sono solo ipotesi selvagge. Ne abbiamo persino un nome nel linguaggio di programmazione: Fail Fast.
Robert Harvey,

10

Ho voglia di rilasciare diverse patch nelle immediate vicinanze riflette male sulla società. Mi fa sempre sentire come se non avessero testato abbastanza in anticipo, che gli sviluppatori fossero incompetenti o che il management non avesse idea di cosa stessero facendo.

Detto questo, l'altro lato del token è che il rilascio di più patch vicine tra loro mostra che la società sta adottando un approccio proattivo al proprio prodotto e continua a migliorare il proprio prodotto per il consumatore.

Sono più propenso a pensare che il primo sia il modo in cui la maggior parte lo guarderà dal punto di vista del consumatore, ma parlare direttamente con loro (ovviamente) sarà la scelta migliore, ma solleverà anche il problema all'interno della base clienti che potrebbero non essere stato a conoscenza inizialmente.


Quindi, in conclusione, dovremmo cercare di correggere solo quei clienti che ne hanno davvero bisogno e gli altri in un secondo momento in "blocco" per migliorare la nostra immagine?
Mixxiphoid,

5
L'applicazione di patch per i singoli clienti sembra che potrebbe essere un problema, soprattutto se esiste una vasta base di clienti. Distribuire le patch su una pianificazione regolare (mensile, bimestrale, ecc.) E promuoverle ai clienti potrebbe essere un buon modo per suscitare interesse nel "futuro" del tuo prodotto, nonché affrontare i problemi che vengono risolti. Naturalmente, la documentazione e la notifica adeguate sono fondamentali per comunicare all'utente finale con le note sulla patch.
Jack

Questo mi chiarisce molto. Sembra che dovremmo sforzarci di usare le nostre patch per migliorare la nostra immagine. Fino ad ora ero convinto che non fosse possibile. Ho sempre visto le patch come un male necessario.
Mixxiphoid,

dipende anche da quando si è nel ciclo di rilascio. Se le patch sono vicine tra loro nei primi giorni dopo il rilascio, ciò dà un'impressione diversa da quando (ancora) si chiudono insieme alcuni mesi dopo.
jwenting

7

Sempre più aziende seguono le orme di Chrome e hanno versioni sempre più frequenti dei clienti.

Il prerequisito per l'implementazione di cicli di rilascio brevi è un aggiornamento indolore: in Chrome, ad esempio, l'aggiornamento viene eseguito senza l'intervento dell'utente all'avvio dell'applicazione e se l'utente mantiene la sua applicazione sempre accesa, riceve un flag minore consigliargli di riavviare l'applicazione nel momento opportuno e l'applicazione fa quindi lo sforzo di riportarlo al suo stato precedente dopo il riavvio.

Questo metodo rende felice il cliente, poiché non è necessario che sia a conoscenza di ogni aggiornamento e poiché le versioni delle funzionalità sono frequenti, le versioni di correzione dei bug saranno altrettanto gradite.

Se, d'altra parte, le patch vengono dopo i bagliori evidenti dei bug di show-stopper, e si presentano in gruppi, poiché i precedenti non riuscivano a correggere il bug o creavano un bug più grande, state certi che i vostri clienti ne sentiranno l'odore. Ciò si rifletterà sicuramente in modo negativo sulla reputazione professionale del fornitore e ridurrà gli standard software percepiti dal fornitore. La consegna continua si basa fortemente su test unitari efficaci e test di integrazione per garantirne il successo.

Per quanto riguarda il fatto di non parlare con i tuoi clienti per "far mentire i cani che dormono", credo che questa sia una strategia sbagliata: i clienti non sono ciechi e non sono sciocchi. Credo che una buona comunicazione con i tuoi clienti possa solo rassicurarli sul fatto che sono la tua priorità e che sei ricettivo alle loro critiche. Se hai rilasciato un paio di volte di cattive pubblicazioni e non le senti lamentare - dovresti sicuramente preoccuparti - non è che non se ne siano accorte, più probabilmente sono solo impegnate a trovare un sostituto per te ...


2
+1, come cliente frequente di software, voglio i ragazzi con aggiornamenti frequenti e buoni modi per distribuirli. I prodotti che ristagnano sono la vera bandiera rossa qui - almeno significa che il fornitore non sta investendo nel prodotto. O investendo in vNEXT che vogliono che tu paghi ancora una volta.
Wyatt Barnett,

Quello che capisco dal tuo ultimo paragrafo è che dovremmo essere sempre onesti e trasparenti nella nostra comunicazione verso il cliente. Ci sono situazioni in cui non dovremmo (ancora) informare il cliente su determinate cose?
Mixxiphoid,

1
Naturalmente, essere onesti con il cliente non significa lasciare la linea aperta quando si convoca una riunione di panico per mitigare un disastro appena trovato. Dovresti comunicare le informazioni dopo aver valutato la situazione, avere una strategia per risolverle e puoi dire onestamente che tutto è sotto controllo. Potresti ritrovarti ad abbellire la verità, ma le bugie addirittura hanno un modo di perseguitarti in seguito ...
Uri Agassi

2

Le patch specifiche per i clienti che hanno rilevato un problema dovranno ovviamente uscire il prima possibile.

Ho visto software in grandi aziende quindi adottare l'approccio secondo cui altri clienti riceveranno quelle patch come service pack a intervalli regolari programmati. Normalmente perché le patch richiedono un certo sforzo per l'installazione e il test nell'ambiente del cliente, ma nel tuo caso potrebbero essere utilizzate solo per ridurre il possibile impatto dell'effetto di cui ti preoccupi.

Ho anche visto persone incoraggiare l'installazione di patch in repository o su siti Web in cui i clienti possono scaricare e installare quelli che desiderano. Questo può creare problemi nel sapere quali patch hanno i clienti, quindi quando chiamano un problema devi determinare esattamente quale codice stanno eseguendo, ma con attenzione che possono essere monitorati. È quindi possibile forzare le persone a passare a uno dei "pacchetti" più grandi quando viene rilasciato uno che raggruppa molte patch.

L'eccezione sono le patch di sicurezza. Una grande società di software con sede a Washington è nota per entrare nell'acqua calda aspettando il terzo giovedì del mese prima di rilasciare patch di sicurezza critiche e le informazioni sull'hacking sono trapelate e hanno costretto la mano presto a un imbarazzo ancora maggiore.

Google Chrome risolve il problema aggiornando automaticamente molto frequentemente, anche loro richiedono il ciclo del programma (riavvia Chrome o, nel tuo caso, esci). Ora hanno fatto quella pratica normale per i browser e le persone non ci pensano nemmeno più. Ma non tutti possono essere Google.

Le applicazioni SaaS risolvono l'intero problema eseguendo gli aggiornamenti in background.

Tuttavia, soprattutto, a meno che tu non stia facendo un'integrazione continua o l'aggiornamento con le funzionalità richieste dai nuovi utenti molto frequentemente, penso che siamo ancora in un momento in cui le persone si aspettano che tu abbia fatto un discreto numero di test prima del rilascio. Se saresti imbarazzato di incontrare i tuoi clienti e parlare della frequenza delle correzioni di bug, probabilmente non stai facendo abbastanza test. Hai rilasciato il rischio che stavi correndo prima di rilasciare il codice. C'è un argomento per rilasciare il codice buggy molto presto, purché tu sappia che è quello che è, ma penso che tu debba avere una buona comprensione della tua qualità nota, il che significa capire e tenere sotto controllo il tuo tempo per conoscere la qualità.


+1, questo è il punto chiave: più rapidamente è possibile correggere un bug (e distribuirlo), meglio è, a condizione che l'utente / cliente non compia ulteriori sforzi con la distribuzione. Quando il cliente deve distribuire manualmente o gli aggiornamenti interromperanno il suo flusso di lavoro, è importante trovare la frequenza giusta per le distribuzioni. Siti come Facebook distribuiranno diverse patch al giorno e la maggior parte delle persone non se ne accorgerà nemmeno.
Doc Brown,

quindi immagino che siamo fortunati da quella parte. I nostri aggiornamenti ci costano (oltre allo stress, alla codifica e tutto il resto) solo 1 o 2 ore. Il cliente costa 1 minuto per tornare al lavoro. Esaminerò l'approccio del "service pack", questo potrebbe davvero tornare utile per coloro che non necessitano direttamente della patch.
Mixxiphoid,

Ho trovato questo riferimento per Facebook: blogs.wsj.com/cio/2013/04/17/… , quindi sembrano esserci due versioni, non diverse, al giorno. Impressionante, credo.
Doc Brown,

Ho "sentito" quel codice push di Amazon ogni 17 secondi. Ma lo inserisco in un commento perché non ricordo chi me lo ha detto e Google non lo mostra. :-)
Encaitar

@Encaitar: giusto, l'architettura di Amazon ha centinaia di servizi interagenti. Quindi non sono sorpreso se spingono qualcosa di estremamente frequentemente, ma dubito fortemente che ogni spinta influenzi direttamente più di un componente. Quello che vedi come un singolo sito web non ha necessariamente una versione complessiva. È più come dire che la rete stradale della città viene aggiornata ogni 17 secondi perché i tuoi equipaggi dipingono in totale 5 mila linee fresche al giorno :-)
Steve Jessop
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.