Domanda:
È ragionevole che il mio project manager non si aspetti bug in produzione?
Niahc
2017-02-08 00:12:49 UTC
view on stackexchange narkive permalink

Sono uno sviluppatore front-end per un'azienda che realizza siti Web per i clienti.

Ho un processo di test piuttosto completo che richiede già molto tempo, ma collaudo sempre completamente prima che qualsiasi cosa venga pubblicata.

In un'occasione molto rara qualcosa di piccolo scivolerà via e il project manager si arrabbierà e dichiarerà che avrei dovuto catturarlo in testing. Di solito non è niente di fondamentale per il funzionamento del sito, ma un problema di stile su una pagina che non ho testato.

Ritengo che se avessi testato ogni pagina di ogni sito web su ogni browser il tempo necessario per farlo sarebbe rendere impossibile completare tutto il mio lavoro.

È ragionevole che il mio project manager non si aspetti che nessun bug arrivi su un sito live?

  • Se il software privo di bug è ragionevole, quale processo viene utilizzato per produrlo? E come spiegherei i costi di questo processo a un manager e bilanciare la quantità di test previsti con un grande carico di lavoro?
  • Se un software privo di bug non è ragionevole, come posso convincere un manager di questo?
Vedi: [È possibile raggiungere lo stato di bug zero assoluto per software su larga scala?] (Http://softwareengineering.stackexchange.com/questions/195571/is-it-possible-to-reach-absolute-zero-bug-state-per-software su larga scala / 208536) su softwareengineering.SE.In breve: no.
Anche per piccoli progetti, essere privi di bug è impossibile.Non solo c'è sempre qualcosa (non importa quanto piccolo) che viene trascurato, in pratica i requisiti non sono mai così chiari da non riuscire a trovare qualcosa da chiamare "bug" che semplicemente non sia coperto dai requisiti.
Mi sembra che dal punto di vista tecnico tu abbia una metodologia di test difettosa (_ "Non sono riuscito a testare la pagina X" _ è ... sciocco. Suona sia manuale che incompleto. L'automazione è la chiave qui).Dal punto di vista gestionale sembra che le persone abbiano sia aspettative del tutto irragionevoli, sia una fondamentale mancanza di comprensione dei test e dello sviluppo del software.Ecco perché le aziende che sanno cosa stanno facendo hanno qualcosa chiamato "test di accettazione degli utenti".Significa che il "pubblico di destinazione" (ovvero il cliente) utilizza la dannata cosa e indica tutto ciò che non soddisfa le specifiche
I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/53248/discussion-on-question-by-niahc-is-it-reasonable-for-my-project-manager-to-expec).
Sai chi punta a 0 bug in produzione?NASA ... Immagino che il tuo capo non sia disposto a sostenere i costi aggiuntivi di sviluppo e test per imitare il modello di sviluppo del software della NASA.Quindi no, non è ragionevole aspettarsi 0 bug in produzione.EDIT: E anche la NASA ha ancora bug in produzione!
Otto risposte:
sleske
2017-02-08 00:23:11 UTC
view on stackexchange narkive permalink

È ragionevole che il mio project manager non si aspetti che nessun bug arrivi a un sito live,

No.

o è ragionevole dire che non posso sempre controllare tutto o garantisco che non ci sarà mai un bug?

Sì, lo è. Altrimenti non spediresti mai nulla.

E come potrei bilanciare la quantità di test previsti con un grande carico di lavoro?

Ora stiamo arrivando da qualche parte: - ). Questa è un'ottima domanda da porre. Questo è ciò che dovresti chiedere al tuo project manager: è loro compito decidere se più funzionalità o una qualità superiore sono più importanti.

Si spera che il tuo manager capisca che c'è un compromesso coinvolto - è il vecchio "triangolo del progetto" (costo - ambito - tempo, scegline due), solo con "qualità" come dimensione aggiunta.

Se il tuo PM capisce che esiste un compromesso tra caratteristiche e qualità, discuterne con loro e decidere insieme dove si vuole essere o se l'intero approccio deve cambiare (ad esempio assumendo un tester). Se il tuo PM non lo capisce, allora hai molte spiegazioni da fare ...

"Se il tuo PM non lo capisce, allora hai molte spiegazioni da fare ..." Storia della mia vita.
Quanti milioni è pronto a pagare il cliente per assicurarsi che non ci siano bug?
@David Per un sito web?Non credo che nemmeno "milioni" lo coprirebbero ...
Chris E
2017-02-08 00:23:17 UTC
view on stackexchange narkive permalink

Esperienza precedente: sviluppatore di software su PC e dispositivi da 30 anni.

No. Non è normale aspettarsi nessun bug

Lo estenderei per dire che non è ragionevole. Ci si possono aspettare bug. Ho molta paura quando scrivo qualcosa di complesso e non ha bug . Questo di solito mi dice che mi sto perdendo qualcosa di importante e mi chiedo se sta raggiungendo i metodi che dovrebbe.

Ci saranno dei bug. Periodo. Nessun software tranne il più semplice programma banale è privo di bug. Nessuna. Mai.

Chiederei al tuo PM di trovarti un'azienda che non ha mai avuto bisogno di patchare il suo software. Zero bug è un obiettivo. Nient'altro.

Consentitemi di aggiungere questo comunque. Niente di tutto questo significa che un bug in produzione è accettabile. Risolvilo.

Ben detto.La tua ultima frase può sembrare contraddittoria, ma non lo è.SÌ, i bug scivoleranno via, ma una volta trovati, devono essere risolti il prima possibile."Ho molta paura quando scrivo qualcosa di complesso e non ha bug."infatti!Aggiungerei anche che la rabbia del Primo Ministro è fuori luogo.Se trovi un bug, lo risolvi.Fatto.Non arrabbiarti, aggiustalo e basta.
Darei una prospettiva leggermente diversa a questo.Sicuramente il PM * non vuole * bug.Il Primo Ministro certamente non dirà che n bug sono accettabili.Ciò che è stupido è che il Primo Ministro si arrabbia.Impazzire è controproducente.Quindi per qualsiasi bug devi decidere se è (1) critico e deve essere risolto prima del rilascio (2) non critico e risolto in una versione futura o (3) banale e non verrà mai risolto.// Un bug banale potrebbe essere l'uso del "colore" britannico invece del "colore" americano in un testo su qualche pagina web.Hai davvero bisogno di due versioni del programma o gli americani possono convivere con il "colore"?
È necessario rendersi conto che anche gli utenti finali sono straordinari con le loro capacità di fare cose che sono così impensabili che è difficile testarle.Una volta si è lamentato che qualcosa era di 1 pixel spento se si ingrandiva max.
Ricordo di essermi lamentato perché un utente ha provato a trascinare un'immagine in un campo di testo e si è bloccato.Ho risposto: "Cosa dirà un dottore se ti lamenti che ti fa male il sedere perché ti ha bloccato un pompelmo nel retto !? Diceva 'Perché dovresti pensare di farlo e semplicemente non farlo!"Ma alcune persone si deformano perché non è possibile prevedere i casi limite, indipendentemente da quante volte spieghi cosa significa "caso limite".
Kilisi
2017-02-08 01:58:39 UTC
view on stackexchange narkive permalink

Sì, vendo sistemi finanziari privi di bug personalizzati che funzionano perfettamente all'interno dei loro parametri ben definiti una volta che il cliente li ha. Ogni singola cosa in essi viene testata almeno due volte la maggior parte vengono testati molto più di due volte.

Mi costa molto farli in questo modo, ma quel costo viene trasferito al cliente e il tempo per renderli in questo modo viene preso in considerazione nei tempi.

Non riesco a capire queste altre risposte dicendo che non è possibile soprattutto per piccoli progetti. In effetti non solo è possibile, ma è il risultato desiderabile. Se un cliente veniva da me con un bug, scopriva che avrei licenziato qualcuno. I tempi di inattività di questi sistemi possono costare ai clienti centinaia al minuto.

Il trucco è quello che sono i "parametri ben definiti" ... Se vuoi un programma che esegua una funzione specifica su una macchina specifica, allora sicuramente, privo di bug è facilmente nel regno delle possibilità.Se vuoi un programma che possa essere eseguito su qualsiasi computer ovunque ... allora ci saranno dei bug.Non perché il software sia difficile da scrivere, ma perché non posso testare ogni combinazione di hardware e software esistente e, a volte, è colpa dell'hardware.
Sarei molto preoccupato per un PM che, durante la costruzione di qualcosa come un software di controllo degli aerei, pensava che qualsiasi bug fosse accettabile.Mi preoccuperei anche di un PM che richiedeva il 100% senza bug ad ogni costo su un gioco per telefono per bambini.Il contesto è tutto.@Justin forse solo il 20% di noi lavora su cose in cui i bug hanno effettivamente conseguenze importanti?
In pratica non è possibile rimuovere tutti i bug in un sistema sufficientemente complesso.A seconda di come si definisce "bug", anche i casi di test potrebbero avere bug che portano loro a perdere comportamenti indesiderati. Gli aerei hanno insetti, controller di razzi, attrezzature mediche, ecc.
I commenti non sono per discussioni estese;questa conversazione è stata [spostata in chat] (http://chat.stackexchange.com/rooms/53247/discussion-on-answer-by-kilisi-is-it-reasonable-for-my-project-manager-to-aspettarsi).
Trovato il venditore.
In pratica, se hai le competenze e conosci completamente l'ambiente operativo, puoi creare software privo di bug all'interno di quell'ambiente operativo.ma non è l'opzione economica o facile.
Facile fare un'affermazione audace come quella, difficile dimostrare che è effettivamente vero.Non credo a una parola sul fatto che vendi software privo di bug.Hai detto che non sei un ingegnere, come puoi affermare di avere l'esperienza necessaria per affermare che il tuo software è privo di bug?
@PieterB Sono un ingegnere, non ho mai avuto un solo problema con nessuno dei miei sistemi entro i parametri di funzionamento nei due anni da quando ho venduto il primo ... ma sentiti libero di credere a quello che vuoi.
Leftblank
2017-02-08 00:26:25 UTC
view on stackexchange narkive permalink

Personalmente penso che sia irragionevole aspettarsi che nessun bug compaia in produzione quando non esiste un solido framework di test. Quando si esegue il test manuale, si è inclini a perdere errori qua e là.

Ti consiglio di far venire l'idea di utilizzare test automatici, ad esempio utilizzando Selenium o GhostInspector, per assicurarti che le tue funzioni continuino a funzionare, anche dopo che sono state apportate modifiche. Una volta impostati questi test e assicurati che vengano eseguiti prima che le modifiche arrivino alla produzione, dovrebbe essere possibile disporre di un ambiente di produzione privo di semplici bug.

Sono fermamente convinto che non sia possibile ispezionare la qualità in un prodotto.Il test dei bug consiste essenzialmente nell'ispezione.
Questa è l'unica risposta pratica.Mentre le altre risposte sono corrette che il manager ha bisogno di capire l'investimento di tempo necessario per i test, il test automatizzato è l'unico modo per evitare che diventi un lavoro manuale a tempo pieno.Questo risolve entrambi i problemi.
@MaxW questa domanda non riguarda l'ispezione della qualità in un pasticcio, si tratta di catturare "* un'occasione molto rara [quando] qualcosa di piccolo scivolerà via *".L'ispezione non è ancora applicabile in quello scenario?
JayNCoke
2017-02-08 02:32:36 UTC
view on stackexchange narkive permalink

I bug critici e spettacolari sono una cosa. Dovresti sempre provare a testarli il più possibile. E ci sarà sempre una minima possibilità che si verifichi qualche caso limite davvero strano. Il modo migliore per gestirlo è sistemarlo, creare un test e andare avanti.

Tuttavia, penso che sia praticamente impossibile fare ciò che richiedono. La cosa più importante per me è che non esiste una definizione di ciò che è considerato un "bug".

C'è uno stile di cui non piace l'aspetto? L'interfaccia utente non sta esattamente facendo quello che si aspettava?

È qui che devi esaminare veramente: è un bug o un risultato non intenzionale? Ad esempio, se ho reso il testo blu senza alcun obbligo di dire che doveva essere blu o non essere rosso o essere di qualsiasi colore, il project manager mi urla perché ha un aspetto migliore in verde (e non c'era alcun requisito per il verde ), Direi che questo non è un bug e che non ci si poteva aspettare che lo sapessi. Assicurati quando dicono che è un bug: è qualcosa che è un comportamento sostanzialmente inaspettato quando qualcosa era esplicitamente previsto.

Ora non sto dicendo che devi essere veramente pignolo con ciò che è e non è un bug. L'ultima cosa che vuoi è iniziare a scontrarti con il tuo project manager su una cosa del genere. Quello che vuoi fare è rimanere sulla stessa pagina: riconosci di essere d'accordo sul fatto che idealmente dovrebbero esserci zero bug, ma non puoi aspettarti che non accadrà mai. È impossibile conoscere le infinite combinazioni di azioni e aspettative per creare tutti i test per loro. E quasi certamente i bug si verificheranno in molti gradi diversi. L'importante è affrontarli in modo professionale e tempestivo riducendo al minimo l'impatto sugli utenti.

Inoltre, forse non correlato alla domanda principale, ma penso che potrebbe essere utile: quando ho a che fare con qualcuno (un manager, un cliente, un utente, qualunque cosa) che è arrabbiato con me: riconosco le loro preoccupazioni, mi concentro sul capire capire qual è il loro problema e rispondere con empatia e logica. Determina di cosa sono turbati, fai (o in alcuni casi non fai) ciò che deve essere fatto per risolverlo, quindi parlane. Mantieni la calma, pensa e rispondi. Parlare e comunicare sono spesso trascurati e necessari quando entrambe le parti devono fidarsi l'una dell'altra per fare le cose.

Penso che tu debba guardare non solo se il bug è un ostacolo ma se è probabile che si verifichi.Un bug che blocca lo spettacolo che si verifica una volta ogni 100 anni non dovrebbe essere corretto per molti sistemi.
Troppo vero, @sixtyfootersdude!Dovremmo anche assicurarci di considerare i rischi.Un bug ogni 100 anni che rompe Facebook può essere ignorato più facilmente, ma un bug ogni 100 anni per un sistema critico per la vita come i sistemi di supporto vitale negli ospedali o le auto a guida autonoma ... è tutta un'altra scatola di vermi che noici entrerò!
Dal punto di vista della responsabilità, certo (perché per qualche ragione, le persone si aspettano che le macchine non siano solo migliori degli umani, ma * perfette * - e che i loro creatori (newsflash - umani) si assumano la piena responsabilità dell'errore).Ma non dimenticare che ogni compromesso ha il suo lato positivo e uno negativo.E se correggere il bug di 1 su 100 anni in un sistema di supporto vitale significasse che solo un decimo degli ospedali può permettersi il software?È il tipo di calcolo con cui gli esseri umani sono incredibilmente a disagio, perché cerchiamo sempre di fingere che la vita umana non abbia prezzo, proibendo ogni calcolo coerente.
NotVonKaiser
2017-02-08 06:04:00 UTC
view on stackexchange narkive permalink

Per aggiungere a ciò che altri hanno detto qui, ci sono un paio di cose che vedo qui che sono potenziali insidie ​​per te, insidie ​​che probabilmente hanno aiutato un PM a chiederti di sviluppare software "senza bug" (qualunque cosa significa anche), ma insidie ​​che si distinguono da sole.

  • Mancanza di un team di test separato. Anch'io sono uno sviluppatore web e " sono stato in team che eseguono i propri test e team che hanno un team QA dedicato per farlo per loro, e lascia che ti dica una cosa: quest'ultima impostazione è di gran lunga preferita. Come sviluppatore, semplicemente non sarai bravo a cogliere i tuoi errori, in particolare se stai scrivendo entro una scadenza, e in particolare se stai scrivendo un miglioramento molto specifico per una pagina o qualcosa tu. Anche in quelle squadre che facevano le cose "da soli", tendevamo a non testare le nostre cose; invece, abbiamo testato gli ambienti gli uni degli altri.

  • Mancanza di documentazione di progettazione specifica. Non credo che il design "privo di bug" sia affatto compatibile con le tecniche Agile perché l'intero punto di Agile è che raccogli i requisiti, costruisci qualcosa che pensi possa soddisfare quei requisiti e in una o due settimane parli con i tuoi stakeholder di quanto bene funzioni il trucco. Un widget che non fa esattamente ciò che i tuoi stakeholder stavano immaginando è una specie di bug (ed è parte del motivo per cui non capisco cosa significhi "senza bug") e l'unico modo per aggirare questo problema nel mio libro è richiedono una documentazione di progettazione complessa e completa che sia praticamente uno schema per l'applicazione web stessa.

  • Mancanza di un paradigma di sviluppo basato sui test. Certo, il TDD è una cosa che ho problemi a implementare, specialmente nel mondo dello sviluppo web. Tuttavia, è una buona idea fare il possibile per acquisire familiarità con il software di test disponibile, progettare test che non avranno successo finché non avrai terminato il miglioramento, quindi scrivere per avere successo. Se esegui continuamente questi test sulla tua app web e mantieni quelli vecchi in giro per assicurarti che tutto funzioni ancora, questo potenzialmente automatizza gran parte del lavoro che un team di test separato potrebbe fare e, cosa più importante, il fatto che il le stesse identiche cose vengono testate sempre nello stesso modo significa che c'è poco spazio per ignorare qualcosa.

Comunque, qualunque sia il caso, suona davvero per me come se il tuo PM stesse tagliando due gambe dal triangolo del progetto da sotto di te (in questo caso, richiede alcuni problemi molto specifici relativi al prodotto mentre non paga per le persone per il controllo qualità del tuo lavoro) ea loro modo ti sta preparando per fallimento. No, non va bene.

LiamHarries
2017-02-08 15:02:16 UTC
view on stackexchange narkive permalink

Sono un tester di software per una grande società di ingegneria e non posso sottolineare abbastanza quanto sia irragionevole il tuo capo.

Lo scopo fondamentale del test non è trovare problemi, ma ridurre il rischio di un prodotto. Questo può essere fatto cercando e trovando problemi, tuttavia per trovare ogni possibile problema, secondo l'International Software Testing Qualifications Board (ISTQB) è impossibile . Va tutto bene avere casi d'uso / accettazione che funzionano, tuttavia rimarrai sorpreso da come i clienti lo useranno. Non hanno una conoscenza di base del sistema, quindi useranno l'intuizione che li condurrà a problemi che TI PERDERÀ .

Il test è un processo continuo che mira a ridurre il rischio del sistema e si arresta solo quando viene raggiunto il livello di rischio concordato. Questo dovrebbe essere stabilito in un piano di test quando il progetto viene avviato e concordato con tutte le parti interessate al progetto.

Pertanto il tuo PM deve capire che nulla è privo di rischi e per assicurarsi che qualcosa sia privo di bug è impossibile, avvicinarsi il più possibile a un bug privo di bug richiederebbe test infiniti.

Deve concordare in che misura raggiungerà il test e definirlo nel piano di test del progetto.

Cerca un modello nel piano di test ISTQB.

sixtyfootersdude
2017-02-08 05:16:00 UTC
view on stackexchange narkive permalink

Questo è un tipico esempio di compromesso tra costi e benefici. Puoi fornire un tempo di attività più elevato (ad esempio: meno bug) ma costerà di più.

Maggiore è lo sforzo che dedichi alla progettazione / test / automazione / ecc., meno bug avrai. È tuo compito istruire il product manager su questo compromesso ed è il suo ruolo a decidere quanto tempo / denaro / impegno vuole investire nella riduzione dei bug.

È tuo compito spiegare al responsabile del prodotto quanto tempo / sforzo in più richiederebbe per avere meno bug e poi può determinare se è nell'interesse dell'azienda farlo.

Penso che la prossima domanda logica che dovrebbe seguire sia: quanti bug o quanto tempo di inattività puoi tollerare in un anno? Questo è generalmente misurato in nove.

  • 3 nove, ovvero una disponibilità del 99,9% significa che avrai 9 ore di inattività all'anno
  • 4 nove, ovvero una disponibilità del 99,99% significa che avrai 50 minuti di inattività all'anno
  • 5 nove, ovvero una disponibilità del 99,999% significa che avrai 5 minuti di inattività all'anno

Fonte

Un altro interessante articolo sul tempo di attività e se dovresti puntare a 5 9 secondi di tempo di attività: http://www.continuitycentral.com/feature0267.htm


Modifica: Un altro pensiero. Il desiderio di essere privi di bug non è abbastanza buono di per sé. Anche la NASA che mira ad avere il 100% di uptime e zero bug non è in grado di realizzarlo. Ci vuole tempo ed esperienza con l'ambiente, i clienti e i problemi attuali prima di poter comprendere i casi limite che incontrerai e come risolverli.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...