Come bilanciare la qualità con la velocità durante il processo di sviluppo [chiuso]

6

Sono nel mondo dello sviluppo di software professionale da oltre 5 anni. Un'intensa frustrazione che ho avuto nel corso degli anni è quando un prodotto software su cui sto lavorando risulta instabile, fragile e compromesso. Ovviamente questo sembra sempre accadere quando mi affretto a sviluppare diverse nuove funzionalità e ad incontrare una scadenza molto aggressiva, apparentemente arbitraria.

Le nuove funzionalità richiedono un'attenta progettazione, uno sviluppo solido e test approfonditi. Tuttavia, l'importanza di rispettare la scadenza compromette ognuno di questi processi, risultando in un'applicazione estremamente fragile.

Sono fiducioso delle mie capacità e della mia esperienza come sviluppatore, e so di poter produrre un ottimo prodotto software in base all'ambiente giusto. Ma sembra che quando si presentano questi tipi di progetti, è impossibile per me fare bene il mio lavoro, e non posso sopportare il mio lavoro.

In che modo grandi aziende di software gestiscono questo problema in modo che il risultato finale sia un ottimo prodotto?

    
posta hgwhittle 21.09.2015 - 17:20
fonte

2 risposte

4

How do great software companies handle this problem so that the end result is a great product?

Diverse aziende gestiscono diversamente.

  • Il candidato più ovvio è che non hanno scadenze molto aggressive o arbitrarie.
  • Alcune aziende non danno troppa importanza alla produzione di ottimi prodotti software, dal momento che i consumatori stanno bene con quelli scadenti e / o quelli grandi costano troppo.
  • E alcune aziende richiedono una scadenza aggressiva perché il time to market è importante per loro. Tornano più tardi e pagano il debito tecnico.

Ma una cosa da notare è che ci sempre essere compromessi. Raramente avrai il tempo di cui hai bisogno per ottenere le cose perfette. Quasi sempre includi funzionalità che sembrano inutili.

Queste cose non dovrebbero rendere il tuo software instabile o fragile. Queste cose non dovrebbero comportare una marcia della morte fino alla scadenza. Questo non è un compromesso.

Il compromesso sta arrivando a una via di mezzo in cui vengono affrontate le esigenze di entrambe le parti .

    
risposta data 21.09.2015 - 17:38
fonte
2

Test.

Se esegui un test completo di ogni bit di codice che produci, puoi aver fiducia in esso.

Se il test fallisce, puoi dire definitivamente che c'è un difetto e che l'azienda può prendere una decisione di vivere con quell'errore, ma tu l'hai richiamato.

Se vuoi del tempo per scrivere altri test ma il business non ti consente di avere quel tempo, puoi legittimamente dire che non sei sicuro perché non è testato. (assicurati di poter elencare i test che vorresti eseguire prima di aver fiducia!)

Ma ad un certo punto devi avere un lavoro completato che sei felice di rispondere ai requisiti.

Naturalmente, mano nella mano, ci sono i requisiti. Penso che questo tende ad accadere perché agli sviluppatori viene detto di produrre cose che soddisfano requisiti elevati "dobbiamo supportare un miliardo di utenti!" quando davvero i requisiti effettivi sono molto più bassi. 'perché ci vuole così tanto tempo ?! Ho solo bisogno di qualcosa da dimostrare allo show la prossima settimana per 5 utenti! ' poi va in diretta e puoi essere catturato ", abbiamo detto un miliardo di utenti !! ed è caduto con solo 1.000.000! '

Una delle cose che un buon dev sarà in grado di fare è camminare sulla linea sottile tra la richiesta di requisiti che l'azienda non può dirti e sembrerà bellicosa e solo buttare giù qualcosa su quali demo vanno bene, ma non sarà un buon prodotto quando vivrai

    
risposta data 21.09.2015 - 17:58
fonte