Che tipo di metodologia Big-M ti compra è che puoi assicurarti quanto segue:
- Comprendi ciò che il cliente desidera. (Ricorda, i clienti non sempre sanno cosa vogliono.)
- Il cliente sa esattamente cosa hai promesso di consegnare e quando.
- Sai cosa sarai in grado di consegnare e quando.
- Il cliente sarà in grado di vedere i progressi come succede.
- Non vengono trascurate le cose a cui il cliente importa (ad esempio le funzionalità), né le cose che ti interessano (ad esempio, la qualità).
- Puoi vedere il prima possibile se qualcosa ti impedisce di offrire ciò che hai promesso e quando e ti dà le opzioni che puoi fare prima che sia troppo tardi.
- Il sistema rimane in uno stato di qualità abbastanza elevata la maggior parte del tempo, anche se non tutte le funzioni sono presenti.
Queste sono le cose che separano un programmatore da un ingegnere. Un ingegnere costruisce cose con ordine di alta qualità, rispetto ai vincoli di tempo e di budget. L'aderenza a una metodologia mantiene il cliente nel processo e ti mantiene onesto e in linea.
Ora ecco lo sporco segreto.
I progetti degli studenti sono il momento migliore per seguire una di queste metodologie nella lettera, perché sono una delle pochissime situazioni del mondo reale in cui funzionano esattamente come pubblicizzato. La pratica effettiva dello sviluppo del software è sempre stata disordinata e sarà sempre caotica, perché le richieste sono disordinate.
Ti riferirò al classico articolo su questo argomento di David L. Parnas (chi altro?) e Paul Clement, Un processo di progettazione razionale: come e perché contraffarlo . Questo dovrebbe essere richiesto leggendo per ogni studente di ingegneria del software subito dopo hanno provato ad applicare una metodologia SDLC a un progetto. Il mondo è cambiato molto dal 1986, ma il consiglio non lo è.
Vedi, il mondo reale è su un continuum. Alcuni progetti sono così piccoli, così a basso rischio, o così skunkwork, che la "codifica dei cowboy" senza metodologia è un'opzione realistica. Dall'altra parte, con sistemi critici per la sicurezza o mission-critical, il rischio di fallimento è così alto che le metodologie sono rigidamente rispettate o altrimenti.
La maggior parte dello sviluppo del software è da qualche parte nel mezzo. Quindi l'idea è di sviluppare come è necessario, ma fallo sembrare come se hai seguito una Metodologia. No, questo non significa fare tutto il falso alla fine, devi farlo mentre vai. Se sei agile, ad esempio, una volta per sprint è comune.
Il processo di falsificazione ti costringe a fare il punteggia-di-io e il crossing-of-t che la Metodologia richiede. In cambio, ottieni il meglio di entrambi i mondi: la flessibilità della codifica dei cowboy e la qualità di una metodologia.