requisiti per la qualità del software per software sviluppato / condiviso internamente?

0

Negli ambienti in cui il software è sviluppato internamente da un team e poi quel software è utilizzato da altri team interni, come si può decidere quale dovrebbe essere la qualità richiesta per gli artefatti prodotti? Ad esempio:

  1. completezza e accuratezza della documentazione
  2. estensibilità / riutilizzabilità di artefatto (senza hacking al codice sorgente)
  3. difetti
  4. etc

Immagino che un aspetto da considerare sia la durata del tempo in un progetto prima che la qualità venga presa in considerazione. Dovrebbe essere più economico garantire che la qualità sia incorporata in un prodotto dall'inizio piuttosto che lasciarlo fino a un momento successivo nel ciclo di vita del progetto.

    
posta Chris Snow 15.02.2013 - 11:34
fonte

2 risposte

2

Ho lavorato per un team di programmazione che si è sviluppato su un framework costruito da un altro team di programmazione interno, quindi potrei condividere alcune informazioni che ho appreso.

Anche se è vero che entrambe le squadre sono interne, secondo la mia esperienza, ciò garantisce poca libertà in più che altrimenti avresti se l'obiettivo fosse quello di produrre codice in modo efficiente. Si applicano ancora le linee guida generali all'interno di un gruppo di programmazione: non commettere mai codice guasto, modificare in modo significativo le ramificazioni per disturbare il lavoro eseguito da altri programmatori, ecc.

Quando si tratta di utilizzare il codice che un altro team utilizzerà, come un prodotto finale, deve essere all'altezza in termini di test e funzionalità. La differenza è che se qualcosa è rotto, piuttosto che sconvolgere un cliente, stai sprecando tempo e denaro (e probabilmente stai programmando i programmatori piuttosto che i clienti). Dopo un po 'di prove ed errori, abbiamo capito che il modo migliore per gestire tali cose era che il framework fosse impegnato come se si trattasse di una release.

Ci sarebbe un repository di sorgenti trunk, che, piuttosto che essere il luogo in cui tutti i programmatori impegnano il loro codice ininterrotto quotidiano, sarebbe la versione definitiva testata e stabile che gli altri team di programmazione possono attingere. Il tronco "che cosa sarebbe stato" si trasforma in un ramo comune (che abbiamo chiamato il ramo di rilascio) dove vengono aggiunte nuove funzionalità e vengono risolti i bug. Nel punto in cui normalmente si diramano dal bagagliaio, si passa semplicemente dal ramo di rilascio e si uniscono nuovamente al ramo di rilascio quando si è finito. Una volta raggiunto il punto in cui sono state aggiunte importanti funzionalità / bug al ramo di rilascio, fai in modo che un programmatore impieghi un paio di giorni a testare accuratamente le funzionalità tutte (non appena aggiunte). Una volta fatto, il ramo stabile può diventare il nuovo trunk e viene creato un nuovo ramo di rilascio per la prossima versione.

Anche con questo sistema in atto, c'erano ancora molti problemi, ma non riesco a immaginare quanti più problemi avremmo avuto se il framework funzionasse a giorni alterni.

E per finire con un po 'di consigli, il vantaggio più grande che hai a lavorare con un team di programmazione interno è che hai comunicazione . Usalo.

    
risposta data 15.02.2013 - 11:55
fonte
1

how does one decide what the required quality should be for the produced artefacts?

Cerco sempre il meglio *, ma sappi che c'è una moltitudine di "cose" non codificanti che potrebbero intralciarti.

Possono includere creep di ambito, dipendenze da altri team / reparti, budget ridotti, personale che viene riassegnato, cambiamenti politici all'interno dell'azienda, manager / sviluppatori / BA / PM incompetenti.

* dove la parola "migliore" è arbitraria di per sé.

    
risposta data 15.02.2013 - 12:01
fonte

Leggi altre domande sui tag