Come fai a sapere quando smettere di aggiungere funzionalità?

16

Qualche tempo fa ho scritto uno script python molto piccolo che periodicamente controllava un feed xml per nuove voci e avvisava l'utente di nuove voci quando presenti. L'ho scritto per me, quindi era essenzialmente un programma basato su console che chiunque avrebbe potuto utilizzare con un'interfaccia console.

Dopo un po 'ho deciso che poteva essere più utile ad altre persone e ho iniziato a riordinarlo, disinfettare gli input, rimuovere i bug. Mi è venuto in mente che, poiché avevo scritto la sceneggiatura, sapevo come usarla in modo efficiente, accurato, ecc. Altri no, quindi ho iniziato ad aggiungere una GUI. Questo è iniziato come un semplice menu, quindi è stato esteso a un'interfaccia grafica più completa con un'interfaccia e un menu di opzioni. Ho quindi aggiunto le preferenze utente memorizzate e anche l'archiviazione per i feed xml cercati in precedenza per velocizzare le ricerche ripetute.

Ho aggiunto la registrazione per aiutare a eseguire il debug dell'applicazione nel caso in cui le cose andassero male, ho portato l'applicazione all'ultima base di codice python stabile disponibile per la mia piattaforma scelta e le migliori funzionalità di dialogo.

Ho corretto i bug e ho commentato chiaramente il mio codice, eppure ho ancora cose che penso possano essere fatte per migliorare l'app prima di renderla disponibile agli alpha tester. È un grido molto lontano dal mio originale script di 20-30 righe. Quello che mi aspettavo mi avrebbe richiesto solo un'ora o due per passare da una bozza di concetto a un programma di uso accettabile, da 10 a 20 volte. (Sono ancora un noob, e la roba mi prende molto tempo, ma ancora ....)

Come fai a sapere quando smettere di aggiungere / aggiustare / aggiustare roba e lasciare che il tuo bambino striscia fuori all'aperto?

    
posta fearoffours 18.10.2010 - 10:32
fonte

9 risposte

8

When you hit the deadline.

Se non hai una scadenza, questo è il tuo problema ...

Ecco come lavoro:

  1. Aggiungo nuove funzionalità / bug nel mio backlog del prodotto.
  2. Assegno la priorità all'intero portafoglio di prodotti in base al valore aziendale e stimato (l'ultimo è facoltativo in caso di progetto personale).
  3. Alloco il tempo di lavoro a me stesso. La data di rilascio è la fine di quel tempo.
  4. Comincio con il primo della lista. Lavoro su un film per volta. Per essere completata, una funzionalità deve essere veramente completa, compresa la documentazione (al termine di una funzione, posso potenzialmente spedire il prodotto).
  5. Prendo quello successivo fino a quando il tempo assegnato non viene consumato.
  6. Se il tempo viene consumato mentre sto costruendo una funzione, la scarto temporaneamente.
  7. Quando il tempo assegnato viene consumato, prendo l'ultima build e ne faccio una versione.
  8. Ripeto il processo dal punto 1.
risposta data 18.10.2010 - 10:38
fonte
3

Crea un SRS quindi codifica in base ai requisiti. Quando hai raggiunto tutti gli obiettivi menzionati nello SRS, è ora di smettere e testare il tuo prodotto.

    
risposta data 18.10.2010 - 10:47
fonte
2

Nel breve termine, quando hai qualcosa che funziona in modo affidabile e non si blocca. Anche se non fa tutto che potrebbe fare se ci hai lavorato all'infinito. Spedizione come dice il proverbio è una funzione . Affidabilità e set di funzionalità limitate ti offrono l'opportunità di testare le funzionalità principali di persone reali nel mondo reale, che troveranno cose che non avresti mai pensato che infrangessero il tuo codice in modi che non ti avrebbero mai passato per la testa. Meno funzioni hai, a questo punto, più facile sarà risolvere quei primi problemi. Poiché la funzionalità di base funziona in modo più affidabile, puoi iniziare a implementare l'altro materiale "bello da avere" con la consapevolezza che il tuo codice più importante e centrale funziona ancora bene.

A lungo termine: quando hai completato e documentato il sistema plug-in che consentirà agli utenti (e naturalmente a te) di implementare nuove funzionalità in modo rapido e semplice se ne hai bisogno. Questa dovrebbe essere l'ultima funzione che devi aggiungere, dopodiché sono tutti i plug-in.

    
risposta data 18.10.2010 - 11:52
fonte
1

Quando sei sicuro della stabilità del tuo software, puoi fare una versione anche se possono esserci delle funzionalità in sospeso. La stabilità è più importante delle caratteristiche. Ottieni il feedback, incorporalo con le funzionalità esistenti e decidi su cosa deve essere consegnato dopo e quando!

    
risposta data 18.10.2010 - 10:52
fonte
1

Puoi sempre nutrire un progetto per sempre.

Una regola molto buona è che non dovresti mai aggiungere cose che non sono in un caso d'uso approvato. Questo assicura che non ti ritroverai con un sacco di cose che sarebbe bello avere, ma che nessuno usa. L'approvazione garantisce che gli altri concordino che ciò è necessario nel tuo progetto.

    
risposta data 18.10.2010 - 11:07
fonte
1

Dipende dal motivo per cui aggiungi funzionalità. I proprietari del progetto lo chiedono? gli utenti? QA? Programmatori?

  • Aggiungi le funzioni necessarie.
  • Passare al set di funzionalità importanti.
  • Ignora le funzionalità che sono carine da avere.

Concentrati sullo scopo del programma e focalizza il suo obiettivo. Richieste di caratteristiche che estendono il suo scopo dovrebbero essere interrogate a fondo prima che diventi un coltellino svizzero.

    
risposta data 18.10.2010 - 11:39
fonte
0

Non smetto di aggiungere più funzioni. Sto solo cercando di ottenere l'app là fuori al più presto e scrivere i file txt se ho bisogno di. Quindi posso decidere quando fermarmi e quando lavorare su qualcosa di diverso

Aiuta anche a mi piace fare il minimo possibile per ottenere qualcosa (senza ricorrere all'hacking).

    
risposta data 18.10.2010 - 11:26
fonte
0

Ti suggerisco di utilizzarlo. Regalati una settimana. Crea una lista di lavori da completare durante quella settimana e assicurati che se possiedi una funzione che non riesci a completare, puoi eseguirne il backup.

Alla fine della settimana rilasciarlo. Rilascia presto, rilascia spesso.

    
risposta data 18.10.2010 - 15:00
fonte
0

Quando hai qualcosa di affidabile e utile, rilascia. Non devi smettere di aggiungere funzionalità, ma se qualcuno sta usando ciò che hai fuori, avrai un'idea molto migliore di quali funzionalità sono richieste. Attualmente, stai indovinando.

    
risposta data 18.10.2010 - 16:26
fonte

Leggi altre domande sui tag