Come viene determinato l'impatto di una modifica del requisito sul codice esistente?

6

In che modo le aziende che lavorano su progetti di grandi dimensioni valutano l'impatto di una singola modifica su un codice esistente?

Poiché la mia domanda probabilmente non è molto chiara, ecco un esempio:

Prendiamo un esempio di applicazione aziendale che si occupa delle attività. Nel database, ogni attività ha uno stato, 0 è "In sospeso", ... 5 - "Finito".

Un nuovo requisito aggiunge un nuovo stato, tra il 2 ° e il 3 °.

Significa che:

  • Un vincolo sui valori 1 - 5 nel database deve essere modificato,
  • I contratti di livello aziendale e di codice devono essere modificati per aggiungere un nuovo stato,
  • Il livello di accesso ai dati deve essere modificato per tenere conto che, ad esempio, lo stato StateReady ora è 6 anziché 5, ecc.
  • L'applicazione deve implementare visivamente un nuovo stato, aggiungere nuovi controlli, nuove stringhe localizzate per suggerimenti sugli strumenti, ecc.

Quando un'applicazione viene scritta di recente da uno sviluppatore, è più o meno facile prevedere ogni modifica da fare. D'altra parte, quando un'applicazione è stata scritta per anni da molte persone, nessuna persona può anticipare ogni cambiamento immediatamente, senza alcuna indagine.

Quindi, poiché questa situazione (tali cambiamenti nei requisiti) è molto frequente, immagino ci siano già alcune tecniche e metodi intelligenti per prevedere l'impatto. C'è qualche? Conosci qualche libro che tratta di questo argomento?

Nota: la mia domanda non è correlata a Come gestisci cambiando i requisiti? domanda. In effetti, non sono interessato a valutare il costo di un cambiamento, ma piuttosto il modo di prevedere le parti di un'applicazione che saranno interessate dal cambiamento. Quali saranno quelle modifiche e quanto sia difficile sono davvero non importa nella mia domanda.

    
posta Arseni Mourzenko 18.11.2010 - 19:50
fonte

4 risposte

4

Non penso che tu possa mai dire quanto un cambiamento influirà sul codice.

Ciò detto, tuttavia, se si conosce bene il framework dell'applicazione, in genere si può prevedere quanto tempo ci vorrà e che cosa si deve fare. Viene dall'esperienza, non dalle metriche. Sono sicuro che hai pensato ai casi in cui un utente pensava che un cambiamento sarebbe stato semplice ('Sta solo aggiungendo un'opzione di menu! Quanto può essere difficile ?!) ma in realtà era piuttosto complesso.

Ho due possibili soluzioni.

Il primo che ritengo sia critico: Documentazione. Essere in grado di leggere il layout generale di un'applicazione aiuterà molto qualcuno a determinare dove devono essere apportate modifiche. I documenti di livello inferiore su aree specifiche aiuteranno a realizzare effettivamente le modifiche.

Il secondo sarebbe quello di avere uno sviluppatore senior che guarda ad ogni richiesta poiché probabilmente può dire rapidamente cosa implicherà. Quindi può dare una stima di quanto tempo ci vorrà e che cosa deve accadere prima che venga assegnato a una persona o una squadra per lo sviluppo. Questo potrebbe non essere sempre pratico, quindi la documentazione è ancora estremamente critica.

    
risposta data 18.11.2010 - 20:05
fonte
1

Quanto di un impatto avrà non è un problema che può essere risolto meccanicamente. Dovrai valutare come si comporta il tuo sistema attuale, quale tipo di lavoro è necessario per implementarlo e quali rischi si accompagnano e richiederà un giudizio umano.

    
risposta data 18.11.2010 - 20:57
fonte
0

Apportare modifiche di livello molto basso per implementare la funzione, quindi correggere tutti gli errori che essa provoca. Inizia con gli errori di compilazione, quindi passa a testare e correggere tali errori, quindi rilasciali al cliente e consenti loro di parlare di tutti gli altri problemi.

Haha, solo serio .

    
risposta data 05.01.2011 - 00:25
fonte
0

Il modo in cui questo DEVE essere fatto è con un sistema di controllo del codice GOOD che costringe gli sviluppatori a commentare ed etichettare, e ti permette di tornare facilmente indietro nel tempo attraverso varie iterazioni di un deliverable.

    
risposta data 20.07.2011 - 04:03
fonte

Leggi altre domande sui tag