Domanda

Che cosa fanno gli ingegneri del software incontro dopo l'altro stressfull release?Beh, la prima cosa che incontriamo nel nostro gruppo sono i bug che abbiamo rilasciato all'aperto.Il problema più grande che noi, come gli ingegneri del software incontro, dopo un stressfull rilascio spaghetti-code, chiamato anche il grande palla di fango.

Il tempo e il denaro per inseguire la perfezione sono raramente disponibili, né devono essere.Per sopravvivere, dobbiamo fare quello che ci vuole per ottenere il nostro software di lavoro e la puntualità.Infatti, se una squadra completa un progetto con il tempo di ricambio, i manager di oggi sono propensi a prendere come un segno di fornire meno tempo e meno soldi o meno persone la prossima volta intorno.

È necessario consegnare il software di qualità in tempo e nel budget

Costo:L'architettura è un investimento a lungo termine.È facile per le persone che stanno pagando le bollette per chiudere, a meno che non c'è un tangibile beneficio immediato, ad una tassa write-off, o se avanzo soldi e tempo disponibile.Tale è raramente il caso.Più spesso, il cliente ha bisogno di qualcosa a lavorare da domani.Spesso, le persone che controllo e la gestione del processo di sviluppo semplicemente non considerare l'architettura come una preoccupazione pressante. Se i programmatori sanno che la fattura è invisibile, e i gestori non vogliono pagare per esso in ogni caso, un circolo vizioso è nato.

Ma se questo era davvero il caso di ogni lungo termine del progetto software sarebbe alla fine portano sempre a una grande palla di fango.

Sappiamo che non sempre accade.Come mai?Perché l'affermazione che i gestori non considerare l'architettura come una pressante preoccupazione è falso.Almeno oggi.Manager nel settore, sappiamo benissimo che la manutenibilità è la chiave per il business.

business diventa dipendente su dati di guida è.Alcune imprese si sono criticamente dipendenti dai loro software e infrastrutture di calcolo.Ci sono numerosi sistemi mission critical, che deve essere "on air" twenty-quattro ore al giorno, sette giorni alla settimana.Se questi sistemi di scendere, rimanenze di magazzino non può essere controllato, i dipendenti non possono essere pagati, gli aeromobili non possono essere indirizzati, e così via.[..]

Quindi è il cuore del business a cercare modi per mantenere il sistema lontano dal grande palla di fango.Che il sistema è ancora gestibile.Che il sistema funziona davvero e che, come programmatore in grado di dimostrare che fa.Fa il manager chiedervi se avete finito di codifica oggi, non si chiede se il rilascio di correzioni A, B e C può essere fatto oggi o lei a chiedere se il software che verrà rilasciato in realtà funziona?E hai provato se funziona?Con che cosa?

Ora per la mia domanda:

Che modo dobbiamo dimostrare la nostra manager e/o portatori di interesse che il nostro software funziona?Sono quelle luci verdi del nostro software di unità di test abbastanza buono?Se sì, non solo dimostrare la nostra grande palla di fango continua a fare quello che ci aspettiamo di fare?Che il software è gestibile?Come si può dimostrare il vostro disegno è giusto?

[Aggiunto in seguito]

Chris Ghiaia la sua risposta sotto è di mettere la mia squadra sulla strada giusta.La Garanzia di Qualità, è sicuramente la cosa che stiamo cercando.Grazie Chris.Avere un sistema di qualità di criteri concordati con le parti interessate è che la logica conseguenza di quello che la mia squadra sta cercando.

Il follow-up domanda è che cosa dovrebbero essere tutti in che QA politica?

  • Visto che buildserver esecuzione visibile per i miei stakeholder
  • Avendo il buildserver non solo di 'costruire', ma l'aggiunta di esami che erano parte del QA politica
  • Avendo un contratto dalle mie parti interessate sul nostro processo di sviluppo (dove gli sviluppatori di revisione di ogni altro codice è parte)
  • di più..

Qualche informazione in più:I team sono primo è la costruzione di webservices che sono consumati da altri team di software.Che è il motivo per cui una rottura di webservice è immediatamente i soldi che costano.Quando gli sviluppatori di presentationlayer squadra, o il tester non può andare avanti siamo in immediata di stress e di fissare il bug al più presto, che a sua volta portare a rapida hack..

[ aggiunto in seguito ]

Grazie per tutte le risposte.È infatti sulla 'fiducia'.Noi non possiamo fare una release se il software non è di fiducia da parte degli stakeholder, che sono attivamente prova il nostro software di se stessi utilizzando il sito web che sta consumando il nostro webservice.Quando sorgono problemi, la prima domanda del nostro tester è:È un servicelayer problema o un presentationlayer problema?Che si dirige verso di me per avere un sistema di qualità che assicura che il nostro software è ok per i test che stanno facendo.

Così, l'unico modo che ho (per ora) envision attivazione di fiducia con il tester è:- Parlare con la corrente di prova di squadra, di andare oltre le prove che esse sono in grado di eseguire manualmente (dal loro test di script e di scenario) e assicurarsi che il nostro team è su questi test unit-test già controllato contro il nostro webservice.Che sarebbe un buon punto di partenza per una 'firma' prima di fare un comunicato che il presentationlayerteam deve integrarsi.Ci vorrà un po ' di sforzo per chiarire che la creazione di test automatici per tutti coloro scenario richiederà un certo tempo.Ma sarà sicuramente utile per garantire ciò che costruiamo è in realtà di lavoro.

È stato utile?

Soluzione

Si può dimostrare che al di là del campo di applicazione dei test, e se non c'è un proiettile specifica (che non c'è mai), quindi il test non prova nulla al di là dell'ovvio.

Che cosa si può fare come una squadra è un approccio il vostro software di progettazione in modo responsabile e non cedere alle tentazioni di scrivere male di codice, si prega di dirigenti, chiedendo le necessarie risorse e vincoli di tempo, e trattando l'intero processo di un mestiere come un lavoro.I migliori scultori del rinascimento sapeva che nessuno potrebbe vedere la effettua statue di essere collocato negli angoli delle cattedrali, ma ancora ha preso lo sforzo per assicurarsi che essi non erano di vendere se stessi breve.

Come una squadra, l'unico modo per dimostrare il vostro software è affidabile è quello di costruire un track record:fare le cose correttamente dall'inizio, correggere i bug prima di implementare nuove funzionalità, mai dare per la rapida hack fix, e assicurarsi che tutti condividono lo stesso entusiasmo e rispetto per il codice.

Altri suggerimenti

Faccio parte di un team di lavoro su un grande progetto per un governative client.Il primo modulo di fase 1 è stato un disastro, la squadra è stata "non gestito", c'erano vasti un team di QA e gli sviluppatori non erano motivati a lavorare meglio.Invece, il gestore continuava a gridare e deducendo i salari per le persone che non lavorano!!

Il client, eh, non chiedete di che, sono stati veramente incazzato, ma sono rimasti con la nostra società, perché sanno che nessuno capire il business come noi.

Quindi qual è la soluzione:

  • Prima cosa separate la gestione dei programmatori e di mettere a disposizione un team leader.
  • Secondo, ottenere un qualificato team di QA.Nelle prime settimane, i bug sono stati in 100s.
  • Terzo, mettere 2-3 sviluppatori del team di supporto, c'responsabilità è di non fare una nuova attività, a correggere i bug, lavorare direttamente con il QA.
  • Quarto, motivare i ragazzi, a volte la sua non è questione di soldi o di vacanze extra, a volte, una parola buona, perfetta.Piccolo esempio, dopo aver lavorato 3 giorni in fila per quasi 15 ore al giorno, il team leader di una nota del gestore.Due giorni dopo ho ricevuto una lettera dall'amministratore delegato ringraziare me, sul mio impegno e mi dà 2 giorni di vacanza.

Ci saranno presto liberi 4 ° modulo del sistema, e come uno dei team di supporto ho potuto dire la sua almeno il 95% privo di bug.Che è un enorme salto di qualità dai nostri primi moduli.

Oggi abbiamo un potente team di sviluppo, qualificato e di QA esperto bug fissatori.

Scusate per la lunga storia, ma questo è quanto la nostra squadra (corso di 4 mesi) si è dimostrato il gestore e cliente, che siamo affidabili, basta il giusto ambiente.

In tutti, ma banale casi, non è possibile "dimostrare" che il software è corretta.

Che ruolo ha User Uncceptance Tinteressante:per mostrare che un accettabile livello di utilità è stato raggiunto.

Penso che questo è mettere il carro davanti ai buoi.È equivalente ad un soldato di fanteria cercando di spiegare il generale quale battaglia manovre sono e perché proteggere i tuoi fianchi è importante.Se il management non può dire la differenza tra il codice di qualità e una grande palla di fango, si sta andando sempre al fine di fornire una grande palla di fango.

Purtroppo è del tutto impossibile, per "dimostrare" che il software è funzionante e senza bug (windows xp spot sempre infastidito da annunciare "la versione più sicura di windows di sempre", che è impossibile da dimostrare al momento del rilascio).Spetta all'amministrazione per l'installazione e l'applicazione di un processo di QA e di stabilire le metriche quanto deliverable prodotto effettivamente assomiglia e che a livello di bug o comportamenti imprevisti è accettabile nella release finale.

Detto questo, se sei un piccolo team e di impostare il proprio QA politiche con piccolo ingresso dal management penso che sarebbe vantaggioso per scrivere una base di controllo e di gestione firmare su di esso.Per la nostra web app attualmente supportiamo 4 browser, gestione e lo sa, quindi quando l'applicazione si rompe in qualche oscuro browser del palmare tutti, si capisce chiaramente che questo non è qualcosa che abbiamo progettato l'applicazione per il supporto.Esso fornisce anche una buona leva per l'assunzione di un ulteriore sviluppo o di test di risorse quando il management decide che vuole cominciare il test per la x.

Come Billy Joel, una volta dire, "È sempre stata una questione di fiducia".

È necessario capire che lo sviluppo del software è "magia nera" per tutti, ad eccezione di quelli che scrivono software.Non è evidente (in realtà, abbastanza intuitivo) per il resto della vostra azienda che molte delle vostre iniziative volte ad accrescere la qualità e riducendo il rischio di esecuzione nel tempo e/o di bilancio.

La chiave è quello di costruire un fiducioso e rispettoso rapporto tra sviluppo e in altre parti del business.Come si fa a costruire questa fiducia?Beh, questo è uno di quei permaloso-feely dei problemi della gente...avrete bisogno di sperimentare un po'.Io uso i seguenti strumenti spesso:

  1. Processo di visibilità - assicurarsi che tutti sanno che cosa si sta facendo e di come le cose stanno procedendo.Inoltre, assicurarsi che tutti possono vedere l'impatto dei cambiamenti che si verificano durante lo sviluppo.
  2. Punto le piccole vittorie - per costruire fiducia, di segnalare quando le cose sono andate esattamente come previsto.Cercare di trovare situazioni in cui si doveva dare un giudizio chiamare e usare il termine "mitigare il rischio" con la vostra gestione.
  3. Non dire "ve l'avevo detto." - diciamo che hai detto una gestione che ha impiegato 2 mesi per intraprendere alcune attività e dicono, "beh, hai solo tre settimane." Il risultato non è probabile che sia buona (supponendo che la tua stima è preciso).Una gestione consapevole del problema e documentare tutte le cose che si doveva fare per cercare di rispettare la scadenza.Quando la qualità è dimostrato di essere poveri, si può lavorare attraverso i problemi che avete dovuto affrontare (e registrato) in maniera professionale, piuttosto che puntare il dito e dire "ve l'avevo detto."

Se si dispone di un buon rapporto con il gestore, si può suggerire che hanno letto alcuni libri specifici per lo sviluppo di software in modo che possano capire le best practice di settore.

Inoltre, vorrei sottolineare al tuo capo che non consente di agire come un software professionale per gli sviluppatori di danneggiare la vostra carriera.Si vuole veramente lavorare da qualche parte che permette di crescere professionalmente, piuttosto che da qualche parte che fa di te un hacker.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top